import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ShowState extends JFrame implements ActionListener, Runnable{
JTextArea ta;
JButton button_start,button_interrupt,button_terminate;
JTextField text_state;
JLabel label;
Thread t;
public ShowState(){ super("演示线程状态"); this.setSize(450,300); this.setLocation(200,200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
ta=new JTextArea(); ta.setAutoscrolls(true); this.add(ta);
button_start=new JButton("启动");
button_start.addActionListener(this); button_interrupt=new JButton("中断");
button_interrupt.addActionListener(this);
button_terminate=new JButton("线程结束后");
button_terminate.addActionListener(this);
button_terminate.setEnabled(false);
button_interrupt.setEnabled(false);
t=new Thread(this); //创建线程对象,目标对象是当前对象
label=new JLabel("线程状态:");
text_state=new JTextField("u"+t.getState(),10);
text_state.setEditable(false); JPanel panel=new JPanel(); panel.setLayout(new FlowLayout(0)); panel.add(button_start); panel.add(button_interrupt); panel.add(button_terminate); panel.add(label); panel.add(text_state); this.add(panel,BorderLayout.SOUTH); this.setVisible(true);
}
public static void main(String args[]){
new ShowState();
}
public void actionPerformed(ActionEvent e){
//TODO自动生成方法存根
if(e.getSource()==button_start){ //单击启动按钮时
t=new Thread(this); //重新创建一个线程对象
t.start();
text_state.setText("…"+t.getState()); //显示线程状态 button_start.setEnabled(false); button_interrupt.setEnabled(true);
}
if(e.getSource()==button_interrupt){ //单击中断按钮时 t.interrupt(); //对线程设置中断标记 text_state.setText("“+t.getState());
button_start.setEnabled(true); button_terminate.setEnabled(true); button_interrupt.setEnabled(false);
}
if(e.getSource()==button_terminate){
//单击·线程终止后·按钮时,显示线程终止后的状态
text_state.setText("™"+t.getState());
}
}
public void run(){
//TODO自动生成方法存根
int i=1;
while(t.isAlive()&&!t.isInterrupted()){ //线程活动且没有中断
String str="a";
if(i%20==0)
str+="\n";
i++;
ta.append(str); try{
t.sleep(100);
}catch(InterruptedException e){
//TODO自动生成catch块
break; //退出循环
}
}
} //run()方法的执行结束,线程对象终止
}
没有合适的资源?快使用搜索试试~ 我知道了~
收起资源包目录
Java面向对象程序设计例题Chapter8.zip (69个子文件)
Example8.3
src
ShowState.java 3KB
out
production
BankAccount
ShowState.class 4KB
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
Example8.5
src
MultiWithDraw.java 955B
Account.java 698B
out
production
BankAccount
Account.class 807B
MultiWithDraw.class 2KB
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
Example8.1
src
PrintNumber.java 597B
PrintLetter.java 397B
out
production
BankAccount
PrintLetter.class 711B
PrintNumber.class 898B
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
Example8.2
src
PrintLetter.java 1013B
out
production
BankAccount
PrintLetter.class 732B
PrintNumber.class 1KB
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
Example.8.7
src
Procedure.java 2KB
Buffer.java 1KB
out
production
BankAccount
Procedure.class 1KB
Consumer.class 2KB
Buffer.class 470B
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
Example8.4
src
MultiWithDraw.java 851B
Account.java 698B
out
production
BankAccount
Account.class 807B
MultiWithDraw.class 2KB
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
Example8.6
src
Procedure.java 2KB
Buffer.java 330B
out
production
BankAccount
Procedure.class 1KB
Consumer.class 2KB
Buffer.class 470B
.idea
workspace.xml 3KB
misc.xml 269B
modules.xml 269B
.gitignore 190B
BankAccount.iml 433B
.gitignore 344B
共 69 条
- 1
资源推荐
资源预览
资源评论
113 浏览量
113 浏览量
111 浏览量
184 浏览量
151 浏览量
198 浏览量
2023-12-10 上传
186 浏览量
116 浏览量
2023-12-10 上传
2023-12-10 上传
2023-12-10 上传
162 浏览量
122 浏览量
195 浏览量
5星 · 资源好评率100%
101 浏览量
2010-09-27 上传
2009-11-14 上传
163 浏览量
5星 · 资源好评率100%
2010-05-07 上传
2011-12-22 上传
2008-10-24 上传
2015-02-28 上传
112 浏览量
5星 · 资源好评率100%
资源评论
iceslime
- 粉丝: 646
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 生活水供水合同.pdf
- 信息技术领域CIO知识全面测评
- 【DBC专题】.pdf
- MIPI AR0820 I2C 纯逻辑 配置
- 基于PyQt5-Socket通信的监控系统-粮仓管理系统.zip
- ETL-数据交互-kettle
- 机械设计辐条切割穿线机sw20可编辑全套技术资料100%好用.zip
- FTP下载工具,直接打开exe就可以使用
- 机械设计钢板卷形机sw13全套技术资料100%好用.zip
- Simulink感应电机负载 异步电动机负载故障的暂态仿真;分别模拟了感应电动机稳定运行、负载突变、过载、电源频率突变、电压突增、缺相仿真
- IT企业管理领域中合格CIO的关键素质与实践要求解析
- 机械设计钢板气割机sw21可编辑全套技术资料100%好用.zip
- 基于python和朴素贝叶斯中文垃圾邮件分类器+源码+数据集(毕业设计项目)
- 音乐风格数据集.zip
- 锂离子电池soc估计 采用simulink全模块搭建 可得到辨识估计端电压与仿真端电压曲线 模型估计精度较好,可以完好运行
- factoryio立式码垛机仿真程序 使用简单的梯形图与SCL语言编写,通俗易懂,起到抛砖引玉的作用,比较适合有动手能力的入门初学者 软件环境: 1、西门子编程软件:TIA Portal V15(博
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功