从jbutton开始创建线程的最佳方法是什么?

时间:2016-07-04 04:58:47

标签: java

我有15个不同的线程运行所有来自用户的动态输入。我需要这些线程才能在我的JButton被按下时运行。我知道我没有提供按钮的代码,但它只是一个简单的减速。

JButton JButton_Button1 = new JButton("Start");

再次阐明我只想在单击JButton_Button1时启动线程

new Thread() {
        int counter = 10;
        public void run() {
            while(counter >= 0) {
                JLabel_MistyvaleLoot.setText("Test" + (counter--));
                try{
                    Thread.sleep(1000);
                } catch(Exception e) {}
            }
        }
    }.start();

1 个答案:

答案 0 :(得分:0)

如果您希望运行15个线程,但除了按下JButton之外,您希望它们不执行任何操作,请考虑使用固定大小的线程池。尝试使用:

private ExecutorService threadPool = Executors.newFixedThreadPool(15);

这构造了15个处理线程,这些线程将在您提交任务之前空闲。如果您想在按下JButton时提交任务,则应添加ActionListener。也就是说,试试这个:

JButton jButton1 = new JButton("Start");
jButton1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
        threadPool.submit(new Runnable(){
            int counter = 10;
            public void run() {
                while(counter >= 0) {
                    JLabel_MistyvaleLoot.setText("Test" + (counter--));
                    try {
                        Thread.sleep(1000);
                    } catch(InterruptedException e) {

                    }
               }
            }
        });
    }
});

要获得运行任务的十五个主题中的一个,请致电threadPool.submit()并按下按钮以响应点击,然后拨打jButton1.addActionListener()