0

几年前从高中毕业时,我一直被教导两种ActionListenerJButton. 一种方法是这样的:

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
    }
}

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

如果是这样,您介意帮助我并举一个例子吗?我将如何myButtonClass调用JButton

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

4

1 回答 1

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

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

于 2013-05-21T11:16:39.077 回答