我做了一個按鈕,當你點擊時,它會呼叫一個函式,它有一個很大的 for 回圈。當 for 處于活動狀態時,您無法單擊視窗中的任何其他內容。我想做一個 STOP/EXIT 按鈕,當你點擊它時,它會退出程式(System.exit(0))。但是當for處于活動狀態時,你不能點擊它們,所以基本上它是沒用的。
我怎么解決這個問題?
uj5u.com熱心網友回復:
將帶有大 for 回圈的函式放入執行緒中,并在按下按鈕時終止執行緒。
uj5u.com熱心網友回復:
所以我閱讀了每個鏈接,但我不明白。我做了一個示例代碼,我的程式幾乎做到了這一點,只是更大了。有人可以編輯這段代碼,看看我需要做什么嗎?
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class stackoverflow
{
private static JTextField txtNumber;
public static void loop (int number)
{
for(int i = 0;i<number;i )
{
txtNumber.setText(i "");
}
}
public static void main(String[] args)
{
JFrame frm = new JFrame();
frm.setBounds(100,100,409,274);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.getContentPane().setLayout(null);
JButton btnStart = new JButton("START");
btnStart.setBounds(50, 171, 89, 23);
frm.getContentPane().add(btnStart);
JButton btnSTOP = new JButton("STOP");
btnSTOP.setBounds(227, 171, 89, 23);
frm.getContentPane().add(btnSTOP);
txtNumber = new JTextField();
txtNumber.setEditable(false);
txtNumber.setBounds(143, 91, 86, 20);
frm.getContentPane().add(txtNumber);
txtNumber.setColumns(10);
btnStart.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
loop(100000);
}
});
frm.setVisible(true);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/434904.html
上一篇:我們如何比較兩個字串并獲取重復值
