1

我决定启动我的 java 应用程序的第 3 版,并想知道我是否以正确的方式启动应用程序。我之前问过很多不同的答案。

我刚刚启动了一个 netbeans Java 应用程序,并在 JFrame 中绘制了我的所有组件。在我的第 2 版中,我是这样启动程序的

代码:(这也是目前的版本 3)

public class theApp {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) 
{
    final CLSuiteMain theMainFrame = new CLSuiteMain();

    EventQueue.invokeLater
    (
        new Runnable() 
        {
                @Override
            public void run() 
            {
                try {
                        try 
                        {
                            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                        } catch (UnsupportedLookAndFeelException ex) 
                        {
                            Logger.getLogger(theApp.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    } 
                catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) {}  

                theMainFrame.setVisible(true);
            }

        }
    );
}
}

我将其创建为一个 Windows 应用程序,我希望能够在其中(安全地)启动一个线程,该线程通过 Robot 类模拟用户操作。我希望能够允许用户按下 CLSuiteMain 对象上的切换按钮并启动和暂停该线程。当主 JFrame 退出时,也安全退出线程。

所以首先,我是否安全地启动了这个线程来做我想做的事情?我怎样才能正确和安全地在应用程序中实现另一个可以按描述执行的线程?

  • 即我想启动应用程序,单击切换按钮,线程开始循环并继续执行相同的步骤,直到用户再次点击切换,此时它停止执行循环并继续执行另一个单击切换按钮。(奖励,我如何将线程执行重置为其循环的开头?)

我不是在寻找完整的代码或其他东西,如果可能的话,也许是伪代码中的一个简单示例,如果没有任何其他帮助,我们将不胜感激。

4

1 回答 1

1

即我想启动应用程序,单击切换按钮,线程开始循环并继续执行相同的步骤,直到用户再次点击切换,此时它停止执行循环并继续执行另一个单击切换按钮。(奖励,我如何将线程执行重置为其循环的开头?)

行。

创建所有的 GUI 组件。您的 JFrame 必须设置这些方法。

    frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    frame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent event) {
            exitProcedure();
        }
    });

退出过程方法如下所示。

public void exitProcedure() {
    thread.stopProcessing();
    frame.dispose();
    System.exit(0);
}

您可以在持有切换按钮的 JPanel 中的任何位置创建新线程。线程实例应该是 GUI 数据模型的一部分。您可以将 GUI 数据模型的实例传递给您的所有视图组件。

您将在切换按钮的动作侦听器中启动您的线程,并在那里暂停您的线程。

对于您的奖励问题,您将必须有另一个常规 JButton 来重新启动您的线程,并将您的切换按钮设置为其动作侦听器中的线程运行状态。

您的线程类必须进行编码,以便可以重新启动、暂停和停止。

于 2013-03-28T13:34:54.577 回答