首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工
admin
2009-01-15
157
问题
下面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全国计算机二级
相关试题推荐
从上表可以看出,下列年份中,医院诊疗人次最多是____。卫生院接受诊疗人次在当年总诊疗人次中比率最高的年份是____。
负责全国政府信息公开工作的主管部门是()。
在预算的实际执行过程及年终的决算中,人们把()视为一种理想的财政平衡的标志。
对于实施西部大开发战略,下列叙述错误的是()。
一种固定下来适合和便于网络交往,判定行为者是否文明和礼貌的行为标准就是()。
孙某丈夫外出做买卖五年未归,也没有任何音讯,孙某欲改嫁,下面说法正确的是()。
以典人诗,是历代诗人常用的表现手法。这样可避免一览无余的直白.还可给读者在诗行间留下联想和思索的余地。下面诗句中没有涉及用典的是()。
{an}是一个等差数列,a3+a7一a10=8,a11一a4=4,则数列前13项之和是:
根据以下资料,回答以下问题。中国汽车工业协会发布的2009年4月份中国汽车产销数据显示,在其他闰家汽车销售进一步疲软的情况下,国内乘用车销量却持续上升,当月销量已达83.1万辆,比3月份增长7.59%,同比增长37.37%。乘用车细分为
实体法与程序法的划分标准是()。
随机试题
人非圣贤,没有人是十全十美的,结合自身经历谈谈你对直面错误的理解。
A.血小板计数正常B.网织红细胞显著减少C.出血时间延长D.凝血时间延长E.白细胞显著增高再生障碍性贫血的特点是
在下列影响饮水氯化消毒效果的因素中,错误的是
患者,女性,41岁。胆囊结石病史2年,主诉晚餐后突然出现右上腹阵发性剧烈疼痛,向右肩背部放射,伴有腹胀、恶心、呕吐等症状。体检示:体温38.9℃,脉搏112次/分钟,血压106/85mmHg。右上腹部有压痛、肌紧张、反跳痛。实验室检查:WBC10.5×10
某新建砖混结构住宅工程,其外墙采用贴釉面砖,每平方米建筑面积消耗量为1m2,釉面砖全费用单位为75元/m2,类似工程概算指标为60000元/100m2,外墙采用水泥砂浆磨面,每平方米建筑面积消耗量为1.5m2,水泥砂浆磨面全费用单位价为10/m2。对单
质量监督小组属于的管理方式属于()。
以下时间最短的是建筑物的()。
巴洛克时期重要的宗教类声乐体裁有()。
众所周知,高的血液胆固醇水平会增加由血液凝结而引起的中风的危险性。但是,最近的一篇报告指出,血液胆固醇水平低使人患其他致命类犁的中风(即脑溢血,由大脑的动脉血管破裂而引起)的危险性在增大。报告建议,因为血液胆固醇在维持细胞膜的韧性方面起着非常重要的作用,所
Tibetisagoodplacetoenjoytheuniqueandimposingscenerywhileadmiringthepurebluesky.
最新回复
(
0
)