?? countermultithread.java
字號:
//CounterMultiThread.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class CounterSubTask extends Thread
{
private TextField textField;
public CounterSubTask(TextField argTextField)
{
textField = argTextField;
}
public void run()
{
//循環(huán)50次,每次遞增1。
for (int i = 0; i < 50; i++)
{
try
{
textField.setText(Integer.toString(i));
//暫時(shí)停止當(dāng)前線程50毫秒。
Thread.sleep(50);
}
catch (InterruptedException e)
{
}
}
}
}
public class CounterMultiThread
{
public static void main(String[] args)
{
JFrame frame = new CounterFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class CounterFrame extends JFrame
{
public static final int WIDTH = 400;
public static final int HEIGHT = 300;
JPanel textPanel = new JPanel();
int number = 0; //已經(jīng)在窗口中顯示的文本框的數(shù)目。
public CounterFrame()
{
setSize(WIDTH, HEIGHT);
setTitle("Counter");
Container contentPane = getContentPane();
JPanel buttonPanel = new JPanel();
//增加記數(shù)文本框的按鈕。
addButton(buttonPanel, "Add",
new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
addSubTask();
}
}
);
//停止記數(shù)按鈕,并退出程序。
addButton(buttonPanel, "Close",
new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
System.exit(0);
}
}
);
contentPane.add(textPanel, BorderLayout.NORTH);
contentPane.add(buttonPanel, BorderLayout.SOUTH);
}
public void addButton(Container c, String title, ActionListener
listener)
{
JButton button = new JButton(title);
c.add(button);
button.addActionListener(listener);
}
//增加一個(gè)文本框,啟動(dòng)一個(gè)記數(shù)線程。
public void addSubTask()
{
//受屏幕大小限制,控制能夠增加的文本框的數(shù)量為16個(gè)。
if(number >= 16)
{
return;
}
number++;
//記數(shù)顯示文本。
TextField textField = new TextField(20);
textPanel.add(textField);
//當(dāng)增加一個(gè)文本框后,需要重新顯示窗口。
show();
//創(chuàng)建記數(shù)線程對象。
CounterSubTask cst=new CounterSubTask(textField);
//通過調(diào)用線程的start方法啟動(dòng)線程,start方法會自動(dòng)執(zhí)行run方法。
cst.start();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -