-1

我正在用 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
    }
}
4

2 回答 2

1

您不会返回按下哪个按钮,而是将代码分配给该操作(或者至少这就是我解释您的问题的方式)。为那个按钮分配一个像这样的监听器。这就是我喜欢这样做的方式。可能有更好的方法。

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。阅读本教程,也。

于 2013-02-27T15:24:25.527 回答
0

对于您键入的内容,我认为您写了如下内容:

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
}
于 2013-02-27T15:28:26.243 回答