1
我在另一個actionlistener內部有一個actionlistener,當我在外部工作區內創建我的jspinner時,它在內部工作,但它不工作。這是我的代碼。問題會是什麼?JSpinner在行動監聽器中不工作
這是不起作用的代碼,如果我把sp和js放在內部動作監聽器中,它就可以工作。
menuItem = new JMenuItem("Insert Exams", KeyEvent.VK_E);
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
count = 0;
jt = new ArrayList[3];
for (int i = 0; i < 3; i++)
jt[i] = new ArrayList<JTextField>();
panel = new JPanel();
panel.setLocation(0, 0);
panel.setSize(d.width, d.height);
panel.setLayout(null);
JButton add = new JButton("add Exam");
add.setSize(120, 80);
add.setLocation(250, 100);
add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
sp = new SpinnerNumberModel(1, 1, 5, 1);
js = new JSpinner(sp);
js.setSize(100, 30);
js.setLocation(450, 80 + count * 50);
panel.add(js);
for (int i = 1; i < 3; i++) {
JTextField jt1 = new JTextField(20);
jt1.setSize(150, 30);
jt1.setLocation(450 + i * 200, 80 + count * 50);
jt[i].add(jt1);
panel.add(jt1);
}
count++;
repaint();
}
});
panel.add(add);
setContentPane(panel);
}
});
Java的圖形用戶界面可能需要在多個平臺上工作,在不同的屏幕分辨率和使用不同的PLAFs。因此,它們不利於組件的準確放置。爲了組織強大的圖形用戶界面,請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[空格]的佈局填充和邊框(http: //stackoverflow.com/q/17874717/418556)。 –