几年前从高中毕业后,我总是被告知有两种方法可以将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
JPanel
和JTextArea
等组件分类并操纵它们并将它们从我的myButtonClass
发送回原来的班级?
如果是这样,你会介意帮我推一个例子吗?如何将myButtonClass
拨打到JButton
?
如果我的问题具有误导性或不清楚,请告诉我。
答案 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();
}
}
你需要通过构造函数传递类