我使用了JButton setActionCommand(String str)函数来检测特定按钮的事件。 我想为JSpinner类型的变量做同样的事情,所以我将能够听一个我知道的微调器。
此代码适用于JButton
JButton myButton = new JButton("O.k");
myButton.setActionCommand("ok");
我如何将上述代码翻译成JSpinner contexte。
答案 0 :(得分:2)
这是一个完整的例子,因为#MadProgrammer说你不能直接设置动作命令,我使用了setName
方法,它就像一个技巧而且有效。
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JSpinner;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class MultiSpinner extends JFrame implements ChangeListener{
JSpinner []sp ;
public MultiSpinner(){
sp = new JSpinner[10];
//initialize spinners
for(int i=0; i<sp.length; i++){
sp[i] = new JSpinner();
//this is important, i will be like and id of
//each spinner
sp[i].setName(String.valueOf(i));
sp[i].addChangeListener(this);
add(sp[i]);
}
this.getContentPane().setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS));
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setLocationRelativeTo(null);
}
public void stateChanged(ChangeEvent e) {
JSpinner temp = (JSpinner)e.getSource();
int i = Integer.parseInt(temp.getName());//remmember? Name was like and ID
System.out.println("Spinner "+i+" was clicked");
//do whatever you want
}
public static void main(String[]argS){
new MultiSpinner();
}
}