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