gpt4 book ai didi

Java:使用actionlistener在另一个类中的对象上调用该类中的函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:49 25 4
gpt4 key购买 nike

基本上我想要做的是获得一个开始按钮来启动一个在另一个类中运行并作用于另一个对象的方法。

我的监听器代码:

button1a.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent event) {
// Figure out how to make this work
//sim.runCastleCrash();
}
} );

我的另一个类的代码:

public static void main(String[] args) {
CastleCrash sim;
sim = new CastleCrash();
}

public void runCastleCrash() {
System.out.println("Castle Crash is beginning...");
//Other method parts here to be added
}

我觉得这不会太难,但我漏掉了一 block 。

最佳答案

在匿名类中引用事物的一种方法是使用 final 关键字:

  public static void main(String[] args) {
final Object thingIWantToUse = "Hello";

JButton button = new JButton("Click");
button.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
System.out.println(thingIWantToUse);
}
});

JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

或者,您可以访问封闭类型的成员(变量或方法):

public class ActionListenerDemo2 {
private final JFrame frame = new JFrame();
private Object thingIWantToUse = "Hello";

public ActionListenerDemo2() {
JButton button = new JButton("Click");
button.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
thingIWantToUse = "Goodbye";
System.out.println(thingIWantToUse);
}
});
frame.setLayout(new FlowLayout());
frame.add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
new ActionListenerDemo2().frame.setVisible(true);
}
}

关于Java:使用actionlistener在另一个类中的对象上调用该类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com