首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
admin
2009-01-15
99
问题
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="ex7_3.class" width=800 height=400 >
</applet>
*/
public class ex7_3 extends JApplet {
private JTextField jtf = new JTextField(15);
private JButton Hold = new JButton("Hold"),resume = new JButton("Resume");
private ex7_3th obj7_3th = new ex7_3th();
class ex7_3th extends Thread {
private int cnt = 0;
private boolean bIsHold = false;
public ex7_3th() { start(); }
public void hold() {
bIsHold = true;
}
public synchronized void fauxResume() {
bIsHold = false;
wait();
}
public void run() {
while (true) {
try {
sleep(150);
synchronized(this) {
while (bIsHold)
not i fy ( );
}
} catch(InterruptedException ie) {
System.err.println("Interrupted");
}
jtf.setText(cnt);
}
}
public void init() {
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jtf);
Hold.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ae) {
obj7_3th.hold();
}
});
cp.add(Hold);
resume.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e){
obj7_3th.fauxResume();
}
});
cp.add(resume);
public static void main(String[] args) {
ex7_3 obj7_3=new ex7_3();
String str= obi7_3.getClass().toString();
if(str.indexOf("class") != -1)
str= str.substring(6);
JFrame frm = new JFrame(str);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(O);
}
});
frm.getContentPane().add(obj7_3);
frm.setSize(300, 200);
obj7_3.init();
obi7_3.start();
frm.setVisible(true);
}
}
ex7_3.html
<HTML>
<HEAD>
<TITLE>ex7_3</TITLE>
</HEAD>
<BODY>
<applet code="ex7_3.class"width=800 height=400>
</applet>
</BODY>
</HTML>
选项
答案
notify() wait() jtf.setText(Integer.toString(cnt++))
解析
本题主要考查图形用户界面,swing以及线程同步、共享、死锁相结合的综合应用。解题关键是熟悉wait()方法和notify()方法的含义,wait()必须被声明为synchronized,这样它才能拥有对象锁。fauxResume()把bIsHold标志设为false,并调用notify(),为了唤醒synchronized子句中的wait(),所以notify()也必须被声明为synchronized,这样才能在调用notify()之前获得对象锁 (然后该对象锁才能在wait()执行时被运用)。本题中,第一和第二处,应该在bIsHold为true时调用wait(),而在fauxResume()中调用notify();第三处,需要对int类型作转换才能够作为String类型输出,并且要对计数器变量cnt做累加。
转载请注明原文地址:https://jikaoti.com/ti/nkkiFFFM
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
下列选项中错误的是()。
在市场经济条件下,资源配置的主要方式是()。
由于某化肥厂长期排污,该地域内两个村庄几年来多人患有罕见的严重疾病,根据《环境保护法》的规定,下列哪一选项是错误的?()
下列叙述正确的是()。
如果政府把经济增长作为宏观调控的正常目标,通常要实行扩张性的财政政策和货币政策,以刺激总需求,一般情况下,这会导致()。
王某潜入某工厂仓库盗窃,将仓库货物(价值2万元)扔到院墙外,准备一会儿翻墙出去再捡,偶尔经过此处的刘某发现该货物无人看管,遂将其拿走,据为己有。10分钟后,王某来到院墙外,发现货物已无踪影。对于王某、刘某行为定性,下列哪一选项是正确的?()
行政复议是监督行政的一种制度化、规范化的(),也是国家行政机关系统内部为依法行政而进行自我约束的重要机制。
下面能源中由太阳能转化而来的能源是()。
栈中允许进行插入和删除的一端称为()。
Applet的默认布局管理器是()。
随机试题
A、valueB、dueC、clueD、continueC选项C画线字母读[u:],其他选项画线字母读[ju:]。
A.茯苓B.滑石C.茵陈D.厚朴E.藿香
下列属于依法治国的价值、基本原则的是()
()对于南宋相当于西游记对于()
某单位计划期需要采购某种物资200吨,甲、乙两个供应商供应的物资质量均符合企业的要求,信誉也比较好。距企业比较近的甲供应商的报价为320元/吨,运费为5元/吨,订购费用(采购中的固定费用)支出为200元;距企业比较远的乙供应商的报价为300形吨,运费为30
老年人的脉压比年轻人大,这主要是由于()。
教育与社会诸多因素有密切联系,其中,决定教育领导权和受教育权的是()。
小张、小王二人同时从甲地出发,驾车匀速在甲乙两地之间往返行驶。小张的车速比小王快,两人出发后第一次和第二次相遇都在同一地点,那么小张的车速是小王的多少倍?
甲、乙签订买卖合同,约定:甲于9月30日交货,乙于10月5日付款。9月30日甲得知乙经营状况严重恶化,遂通知乙暂不交货。甲行使的是()。
ResponseTimeIsCriticalYou,yesyou,areresponsibleforensuringthatyouareaninteresting,funpersontohave【C1】__
最新回复
(
0
)