[英]Best way to make a thread start from a jbutton?
我有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();
如果您希望運行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()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.