首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
admin
2009-01-15
154
问题
下面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://www.kaotiyun.com/show/JIID777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
精准医疗是指以个体化医疗为基础,通过基因组、蛋白质组等技术,对大样本人群与特定疾病类型进行生物标记物的分析与鉴定、验证与应用,从而精确寻找到疾病的原因和治疗的靶点,最终实现对疾病和特定患者进行个性化精确治疗。根据上述定义,下列选项不属于精准医疗的是:
2006年度,江苏省医疗结构中,非营利性医疗机构比营利性医疗机构多____。2006年度.江苏省社区卫生服务站的数量是____。
在过去的工作经历里。你遇到的最紧急的事件是什么。你当时是怎么做的?
在全国人大闭会期间,全国人大常委会根据国务院总理的提名,有权决定的人选不包括l
关于国有资产管理,下列说法不正确的是()。
古人对于我国姓氏的来历有如下阐述“氏于国,则齐鲁秦吴;氏于谥,则文武成宜;氏于事,则乙匠淘……”由此可以推断,王、侯、公孙等姓氏应源自()。
下面能源中由太阳能转化而来的能源是()。
关于我国夏季气温分布的正确叙述是()。
行政行为作出后,非依法定程序不得随意变更或撤销,这是行政行为的()。
若x、y、z是三个连续的负整数,并且x>y>z,则下列表达式中属于正奇数的是:
随机试题
患者,男性,55岁。体检时胸部后前位片发现右上肺一块状阴影,其中有1.0cm×1.5cm的不规则偏心空洞。内壁凹凸不平,壁厚。首先应考虑
下列关于治疗高血压常用的血管紧张素转换酶抑制剂作用特点的叙述,错误的是
以授权经营方式获取国有建设用地使用权的国家控股公司,可以向其直属企业、控股企业、参股企业以作价出资(入股)或租赁方式配置土地,企业不需要办理变更土地登记手续。()
(2017年)两管道串联,管长相同,阻力系数相同且为常数。两者的管径比为1:2,不计局部损失,则其水头损失比为()。
国家注册机构自收到初审意见之日起()日内完成审查工作。
某企业下期财务杠杆系数为1.5,本期息税前利润为450万元,无优先股和固定租赁费,则本期实际利息费用为()。
小丽捡到一枚白色鹅卵石,这会不会是大理石呢?小丽将其放在食醋中,有气泡产生。小丽认为鹅卵石中可能含有碳酸盐。在此过程中,小丽没有应用的科学方法是()。
以下各项中,哪一年沿江八市的实际利用外商直接投资额最大( )。根据表格,以下说法错误的一项是( )。
信息系统项目完成后,最终产品或项目成果应置于(9)内,当需要在此基础上进行后续开发时,应将其转移到(10)后进行。
Ishallalwaysremembermytenthbirthday.Allmyfriendscame【C1】______mybirthdayparty.Whenthetime【C1】______nearfo
最新回复
(
0
)