当前位置:  开发笔记 > 编程语言 > 正文

如何让程序等待Java中的按钮按下

如何解决《如何让程序等待Java中的按钮按下》经验,为你挑选了1个好方法。

现在,我不知道这是可能的,甚至来完成我想要做的最好的方式,但基本上我创建一个非常简单的Swing GUI的一个非常简单的模拟程序.

在每轮模拟之后,界面上的一些按钮被启用以供用户进行更改,然后用户可以按下"继续"按钮以再次开始模拟.模拟本身基本上是一个while循环,需要在继续之前等待用户操作.我的问题是如何让程序停止并等到用户按下"继续"按钮?如果不清楚我是否还能提供更多细节,请告诉我!

编辑:

我将在这里添加一些简化的代码,所以这可能会更有意义.该程序分为两部分,模拟类和视图.因此,当模拟在其类中进行时,要按下的按钮位于视图类中.

模拟类:

SimulationView view = new SimulationView(); // extends JFrame

while (!some_condition) {
    // code
    // need user action via button press here before continuing!
}

Greg Adamski.. 6

很可能最好的方法是在方法中包含一轮模拟,然后从附加到所需按钮的动作侦听器执行.

编辑后:有人需要首先控制模拟,因此您可以执行以下操作:

SimluationClass
{
    public int startSim()
    {
      ...
    }
}

class SimulationView
{

    SimulationClass sim = new SimulationClass();      

    private void init()
    {

      JButton button = new JButton("Start");
      button.addActionListener(new ActionListener() {
          void actionPerformed(...) 
          {
               sim.startSim()
          }
          });
    }
}

请记住,虽然这会冻结你的gui,因为sim方法将从事件线程执行.



1> Greg Adamski..:

很可能最好的方法是在方法中包含一轮模拟,然后从附加到所需按钮的动作侦听器执行.

编辑后:有人需要首先控制模拟,因此您可以执行以下操作:

SimluationClass
{
    public int startSim()
    {
      ...
    }
}

class SimulationView
{

    SimulationClass sim = new SimulationClass();      

    private void init()
    {

      JButton button = new JButton("Start");
      button.addActionListener(new ActionListener() {
          void actionPerformed(...) 
          {
               sim.startSim()
          }
          });
    }
}

请记住,虽然这会冻结你的gui,因为sim方法将从事件线程执行.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有