如何将此ActionListener
转换为特定JButton
的方法?
(我知道它可以把它全部扔进一个方法但是......嗯。)
myJButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
//do stuff
}
});
thx y' all,
编辑:感谢大家的快速回复,我的解释并不是很清楚。
我研究了lambdas的使用,这几乎是我想到的,尽管其他方法也很好知道。
myButton.addActionListener(e -> myButtonMethod());
public void myButtonMethod() {
// code
}
再次感谢大家。
我下次会尝试更清晰,更快捷。
答案 0 :(得分:2)
同样,你的问题仍然不清楚。您在上面的代码一个方法,可以将代码放入:
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
public class InputHandler extends Gui implements EventHandler<ActionEvent>{
@Override
public void handle(ActionEvent event) {
if(event.getSource()== add){
System.out.println("InputHandler works");
}
}
}
或者您可以从该方法调用外部类的方法:
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// you can call any code you want here
}
});
或者你可以从该代码中调用内部匿名类的方法
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button1Method();
}
});
// elsewhere
private void button1Method() {
// TODO fill with code
}
或者你可以使用lambdas:
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button1Method();
}
private void button1Method() {
// TODO fill with code
}
});
或者您可以使用方法参考:
button2.addActionListener(e -> button2Method());
// elsewhere
private void button2Method() {
// TODO fill with code
}
由您决定要明确您正在尝试做什么以及阻止您做什么。