首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
50
问题
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="ex19_3.class" width=800 height=400>
</applet>
*/
public class ex19_3 extends JApplet
{
private JTextField jtf=new JTextField(15);
private JButton Hold=new JButton("Hold");
private JButton resume=new JButton("Resume");
private ex19_3th obj19_3th=new ex19_3th();
class ex19_3th extends Thread
{
private int cnt=0;
private boolean bIsHold=false;
public ex19_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)
notify();
}
}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)
{
obj19_3th.hold ( );
}
});
cp.add(Hold);
resume.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
obj19_3th.fauxResume();
}
});
cp.add(resume);
}
public static void main(String args[])
{
ex19_3 obj19_3=new ex19_3();
String str= obj19_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(0);
}
});
frm.getContentPane().add(obj19_3);
frm.setSize(300, 200);
obj19_3.init();
obj19_3.start{);
frm.setVisible(true);
}
}
ex19_3.html
<HTML>
<HEAD>
<TITLE>ex19_3</TITLE>
</HEAD>
<BODY>
<applet code="ex19_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()执行时被运用。本题中,第1和第2处,应该在bIsHold为true时调用wait(),而在 fauxResume()中调用notify();第3处,需要对 int类型做转换才能够作为String类型输出,并且要对计数器变量cnt做累加。程序运行结果如下。
转载请注明原文地址:https://kaotiyun.com/show/SJnp777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
要从字符串“全国计算机等级考试”中取出子串“等级考试”,应该使用函数()。
对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()。
在考生文件夹下完成如下综合应用:(1)建立数据库“订单管理”。(2)将表order、goods和orderitem添加到“订单管理”数据库。(3)在“订单管理”数据库中创建视图orderview,该视图包含信息:客户名、订单号、图书名、数量、单价和金
设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为()。
在考生文件夹下有一个名为myform的表单,表单中包括一个列表框和两个命令按钮。请在该表单中完成如下操作:①在表单设计器环境下设置列表框的数据源(RowSource)和数据源类型(RowSourceType)两个属性。设置RowSourceType属性
在VisualFoxPro中,下面关于属性、方法和事件的叙述错误的是
SQL语言的查询语句是
下列排序方法中,最坏情况下比较次数最少的是
在考生文件夹下的“雇员管理”数据库中完成如下操作:为“雇员”表增加一个字段名为EMAIL、类型为“字符型”、宽度为20的字段。
对如下二叉树进行后序遍历的结果为
随机试题
A.口腔黏膜可见边界清楚的红斑,伴口角黏膜糜烂、皲裂B.有服用大剂量抗生素病史,表现舌黏膜发红、乳头萎缩,灼痛明显C.舌背中央后部黏膜出现菱形的丝状乳头萎缩区,基底黏膜充血发红,表面可出现结节状增生D.多见于婴幼儿及老年体弱者表现为充血的口腔黏膜上出
心搏骤停病人首选的复苏药物是
形成级差地租I的两个条件是()。
建设工程项目竣工质量验收的基本对象是()
企业应当在资产负债表日对应收款项的账面价值进行检查,有客观证据表明该应收款项发生减值的,应当将该应收款项的账面价值减记至预计未来现金流量现值,减记的金额确认减值损失,计提坏账准备。()
按照现行《房屋完损等级评定标准》,出现()等情况的,可评定为基本完好房。
台湾作家柏杨认为:中国文化似一条壮观伟大的河流,但是到了14世纪,“它终于淤塞成一个酱缸,构成一个庞大而可哀的时代。”形成“酱缸”现象的主要因素是()。
社会主义思想道德建设的重点是()。
Itwouldbeinterestingtodiscoverhowmanyyoungpeoplegotouniversitywithoutanyclearideaofwhattheyaregoingtodoa
(2010下集管)关于计算机机房安全保护方案的设计,以下说法错误的是______。
最新回复
(
0
)