JButton ActionListener一般查询

时间:2013-05-21 11:06:41

标签: java swing class jbutton actionlistener

几年前从高中毕业后,我总是被告知有两种方法可以将ActionListener添加到JButton。一种方式是这样的:

JButton myButton = new JButton("My Button!");
myButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        //actions here
    }
});

另一种方式是这样的:

JButton myButton = new JButton("My Button");
myButton.addActionListener(new myButtonAction());

然后在我的代码底部的某处,我会添加:

class myButtonAction implements ActionListener{
    public void actionPerformed(ActionEvent e) {
        //actions here
    }
}

我今天的问题是,无论如何我可以写另一个源文件(.java)并在那里编写我的整个方法吗?我希望能够从原始class文件执行操作,为了这个示例,我们将其称为myButtonClass。我是否可以使用int double String等变量以及我原来的Properties JProgressBar JPanelJTextArea等组件分类并操纵它们并将它们从我的myButtonClass发送回原来的班级?

如果是这样,你会介意帮我推一个例子吗?如何将myButtonClass拨打到JButton

如果我的问题具有误导性或不清楚,请告诉我。

1 个答案:

答案 0 :(得分:2)

我认为这就是你想要的:

public class MyClass {

    public void myMethod() {

        JButton myButton = new JButton("My Button");
        myButton.addActionListener(new myButtonAction(this));
    }

    public void anotherMethod() {

    }

}

public class myButtonAction implements ActionListener{

    private MyClass mc;

    public myButtonAction(MyClass mc) {
        this.mc = mc;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
      mc.anotherMethod();
    }
}

你需要通过构造函数传递类