我正在Java中创建一个游戏,我有一个主菜单上的按钮,我需要以某种方式返回按下的按钮,以便我可以在不同的类中使用它。我不知道该怎么做。有人知道吗?
我在actionPerformed方法中使用e.getSource()获取按钮。我试着返回按钮,但不工作。
非常感谢。
下面是一些代码: 菜单类public void actionPerformed(ActionEvent e) {
Object button = e.getSource();
return button
}
其他类
public static void createGameScreen() {
if(Menu.button == Menu.button1) {
// do something here
}
}
您不会返回哪个按钮被按下,而是将代码分配给该操作(或者至少这是我如何解释你的问题)。对于那个按钮,像这样分配一个监听器。我喜欢这样做。也许有更好的办法。
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
buttonBoardActionPerformed(e);
}
});
public void buttonActionPerformed(ActionEvent e) {
// Do some stuff
}
基本上你将按钮直接链接到动作,而不是为整个事情分配一个单独的监听器。更容易调试IMO。也请阅读本教程。
我想你应该是这样写的:
buttonProcess = new JButton("Process");
buttonProcess.set//bounds,actionlistener,etc.
if (e.getSource().equals(buttonProcess)){
//do some stuff
return buttonProcess;
}
你可以尝试在UI的类中使用在辅助类中定义的静态变量。
例句:
public class AuxClass{
public static Object PROCESS_BUTTON; //YOu can replace Object by Component or JButton
}
//then in your first UI code
if (e.getSource().equals(buttonProcess)){
AuxClass.PROCESS_BUTTON = buttonProcess;
}
//then in your other UI:
if (AuxClass.PROCESS_BUTTON !null && AuxClass.PROCESS_BUTTON instanceof JButton){
//Do what you want here
}