首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
admin
2009-01-15
133
问题
下面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://kaotiyun.com/show/JIID777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
阅读文字资料,回答下列问题:2006年是“十一五”的开局之年。江苏省各级卫生部门在省委、省政府的领导下,紧紧围绕富民强省、“两个率先”目标,全面落实科学发展观,重点加强基层、基础工作。大力发展农村卫生、公共卫生、社区卫生。全面推进中医药、卫生监督
关于当代国家的政体,下列说法正确的是()。
把长江分为上游、中游、下游的两个城市是()。
秦、隋虽然是两个短命王朝,但分别为汉、唐盛世奠定了基础,它们共同的历史贡献是()。
下列叙述中,错误的是()。
剧烈运动后,人们常常满脸通红,大汗淋漓,这主要是因为皮肤的()功能。
一个等差数列的第1项是2001前7项的和为10500,那么这个数列的第10项是多少?
①在无意义面前,大脑由于寻找不到答案而引发焦虑,当然这是积累到固定阈值之后的事情②权利是伴随选择而产生的,譬如电视机的频道转换器就给了观众看与不看的权利③人的大脑有一种无法改变的功能,即不断地追索词语以及所有事情的意义④如果在
(Ⅰ)当a,b为何值时,β不可由α1,α2,α3线性表示;(Ⅱ)当a,b为何值时,β可由α1,α2,α3线性表示,写出表达式.
设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为()。
随机试题
某大型国有企业实行会计电算化后,按照会计电算化的特点和要求及《会计电算化工作规范》中提出建立会计电算化岗位责任制的原则,要加强对会计电算化系统的使用人员和维护人员的管理,明确系统内部人员的职责、权限,建立健全岗位责任制。实现会计电算化后,企业为建立和健全岗
水准测量仪型号DS05,其中数字表示每公里往返高差中数的误差为()。
计算收缩期左室射血分数的公式是
()是决定建筑物价格的最基本的因素。
下列选项中不属于文明施工基本要求的有()。
下列关于施工任务委托的表述中,不正确的是()。
按照上海证券交易所法人结算模式,登记结算机构根据各证券公司T日的清算数据文件中的实际收付金额在T+1规定的时间进行()交易的资金交收。
当政府实行扩张性的财政政策,往往会造成利率上升,进而会在一定程度上抑制私人投资,这种情况被称为()。
无论经历多少艰难、付出多大牺牲,都不能忘了为什么出发,不能忘了肩负的使命任务,始终信念如磐、意志如铁、________,做到“千磨万击还坚劲,任尔东西南北风”。在见世面中强大内心,既能容得下征途顺利时的春风得意,谦虚谨慎、再接再厉、再创佳绩,也能容得下前进
Forwhatreasondidthefarmergotoseeadoctorinthetown?
最新回复
(
0
)