首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
admin
2009-01-15
94
问题
下面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全国计算机二级
相关试题推荐
下列事件按时间先后顺序排列正确的是:①中国女排获得里约奥运会女排比赛冠军②中国(上海)自由贸易试验区正式设立③第九届金砖国家领导人会晤在厦门举行④我国举行纪念中国人民抗日战争暨世界反法西斯战争胜利70周年阅兵式
根据《产品质量法》,下列说法正确的是()。
小明在单亲家庭中长大,现在上高二。一次放学途中小明被李刚欺负,双方动起手来。混乱中小明抄起瓜摊的西瓜刀扎向李刚,结果李刚因伤势过重在送往医院的途中死亡。对此案,法官应判定()。
我国北斗卫星导航系统是继美国GPS、俄罗斯格洛纳斯、欧洲伽利略之后,全球第四大卫星导航系统。按照北斗卫星导航系统的“三步走”发展战略,下列错误的是()。
下列叙述中,错误的是()。
在我国,自然人的计算机软件著作权的保护期限是()。
(Ⅰ)设有一块平板竖放在比重为p的液体中,选择位于液体表面的某点为原点D,沿铅直线向下方向为Ox轴正方向,深度为x的地方平板宽度为f(x),平板浸入液体的最小深度和最大深度分别为a和b,试用微元法导出整块平板所受的液体的侧压力的积分表达式.(Ⅱ)
设f(x)在x=x0的某邻域内有定义,则“f′(x)存在且等于A”是“f′(x0)存在且等于A”的()
当使用SomeThreadt=newSomeThread()创建一个线程时,下列叙述中正确的是()。
在考生文件夹下有“公司.mdb”数据库。(1)以部门人员表为数据源,创建“部门人员”窗体,布局为“纵栏表”,样式为“标准”。(2)以工资表为数据源,创建“工资表”窗体,布局为“纵栏表”,样式为“标准”。(3)创建宏“查询工资”,
随机试题
会计规范体系的基础内容是_____。
用于治疗肾阳不足,肠燥津枯便秘的药物是()
A.异种抗原B.同种异型抗原C.异嗜性抗原D.自身抗原E.肿瘤相关抗原HLA-DR是
处方审核结果分为合理处方和不合理处方,下列情形应判定为不合理处方的有(
[2014年,第85题]图7.2-45所示变压器空载运行电路中,设变压器为理想器件,若,则此时()。
按照《城市用地分类与规划建设用地标准》规定,居住用地人均指标为______m2,占城市设用地的比例为______,下列选项正确的为()。
符合公开招标条件,有下列()情形之一的,经批准可以邀请招标。
在二级市场的净值报价上,ETF每()秒提供一个基金参考净值报价。
根据城镇土地使用税的有关规定,纳税人如发生土地使用权属转换,应从()起,按规定期限办理申报变更登记。
A、Heishavinganinterviewwithaskydiver.B、HeisclimbingtheMountQomolangma.C、Heiswritinganarticleaboutskydiving.
最新回复
(
0
)