按下Java返回按钮

时间:2013-02-27 15:17:45

标签: java game-development

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

2 个答案:

答案 0 :(得分: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 。请阅读THIS TUTORIAL

答案 1 :(得分:0)

对于你输入的内容,我认为你写了类似的内容:

buttonProcess = new JButton("Process");
buttonProcess.set//bounds,actionlistener,etc.
if (e.getSource().equals(buttonProcess)){
 //do some stuff
 return buttonProcess;
}

您可以尝试使用UI类中Auxiliary classor中定义的静态变量。

e.g:

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
}