【发布时间】:2013-08-02 02:50:06
【问题描述】:
我正在寻找一种让我的程序等到按下按钮以继续该功能的方法。在我的主要函数中,我正在调用一个函数,该函数使用 JPanel、按钮和标签显示我的基本 GUI。当然,它显示了 GUI 并结束了不允许我更改 GUI 的功能。
public static Player player = new Player();
public static Gui gui = new Gui();
public static boolean inMain = true;
public static boolean inBattle = false;
public static void main(String[] args){
showMainGui();
}
我认为我正在寻找的东西看起来像这样:
public static void main(String[] args){
showMainGui();
while(inBattle == false){
// wait until inBattle changes
}
}
while 循环将循环并等待,直到在 showMainGui 中创建的按钮将 inBattle 更改为 true。我怎么能做到这一点?这让我很困惑。我的目标是单击一个 JButton,按钮变为不同的按钮
我在 showMainGui() 上创建的按钮的动作监听器;
public class Hunt implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
MainClass.inBattle = true;
}
}
这是我的 showMainGui() 方法
public static void showMainGui(){
gui.panel.add(gui.healthLabel);
gui.panel.add(gui.pbsLabel);
gui.panel.add(gui.staminaLabel);
gui.panel.add(gui.levelLabel);
//Adding initial buttons
gui.panel.add(gui.exploreButton);
gui.panel.add(gui.huntButton);
gui.panel.add(gui.newsLabel);
gui.panel.add(gui.effectLabel);
updateGui();
}
【问题讨论】:
-
你能提供更多代码吗?您在 Battel 中更改的位置以及如何更改 + showMainGUI 方法
-
抱歉,showMainGUI 没有给我们任何信息。或许 updateGUI 可以...
-
updateGui 所做的只是将标签文本设置为变量
-
那么什么是调用 setVisible 方法?新的 Gui()?
-
是的,setVisible 在 gui 实例中
标签: java swing jpanel actionlistener jlabel