将JButton setActionCommand函数转换为JSpinner

时间:2015-01-07 21:18:10

标签: java swing events jspinner

我使用了JButton setActionCommand(String str)函数来检测特定按钮的事件。 我想为JSpinner类型的变量做同样的事情,所以我将能够听一个我知道的微调器。

此代码适用于JButton

JButton myButton = new JButton("O.k");
myButton.setActionCommand("ok");

我如何将上述代码翻译成JSpinner contexte。

1 个答案:

答案 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();
    }
}