首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
admin
2009-01-15
104
问题
下面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年空气质量达到及好于二级的天数占全年的比重最高是( )按从高到低排序,2006年南京空气中二氧化硫含量在表内所列城市中的排名是( )
阅读文字资料,回答下列问题:2006年是“十一五”的开局之年。江苏省各级卫生部门在省委、省政府的领导下,紧紧围绕富民强省、“两个率先”目标,全面落实科学发展观,重点加强基层、基础工作。大力发展农村卫生、公共卫生、社区卫生。全面推进中医药、卫生监督
小王从农贸市场买来一条金鱼,没过几天鱼就死了。下列最有可能导致金鱼死亡的原因是()。
以下历史事件发生的先后顺序不正确的是()。
2014年中央一号文件指出,2014年及今后一个时期,农业农村工作的总要求是()。
张某系某市人民政府办公室工作人员,在2006年年度考核中被定为不称职,张某对该考核结果不服,他可以采取的救济措施是()。
一个箱子里有四种不同颜色的小球,每次拿出2个,要保证有10次所拿的结果是一样的,至少要拿()次。
一般来说,贯穿于教育活动全过程,以改进工作为目标的教育评价是()
实体法与程序法的划分标准是()。
设f(x)在x=x0的某邻域内有定义,则“f′(x)存在且等于A”是“f′(x0)存在且等于A”的()
随机试题
人的身高是生物学性状之一。一直以来,人们认为身高主要是遗传、饮食和环境因素综合决定的。但是,在人类认识了基因的作用后,开始认为基因在决定身高中占主要作用,于是在人类基因组计划完成后,开始寻找与身高相关的基因,并获得其与健康、疾病等有关的信息和知识。接下来
You______cometomeetmehereatthestation.Thetubeisquiteconvenientinthiscity.
经脉循行中,不与目内眦或目外眦发生联系的是
A.SMB.PZAC.EMBD.RFPE.PAS能引起可损害第Ⅷ对颅神经的是
冬虫夏草主产于蛤蚧的主产地是
患儿,1岁半,因拒食、啼哭就诊,查体:颊黏膜、齿龈、舌面处出现成簇小水疱,部分破溃成溃疡,颌下淋巴结肿大,咽充血,诊断为疱疹性口腔炎,护士健康指导不正确的是()。
负有安全生产监督管理职责的部门的工作人员存在违反安全生产法的行为的,对其适用的法律责任有()。
内存的存储容量为256MB的含义是()。
()应当对私募基金管理人和私募基金信息严格保密,除法律法规另有规定外,不得对外披露。
我国古代培养“君子”的目的决定了以“四书”“五经”作为基本教育内容。这是教育目的()的具体表现。
最新回复
(
0
)