首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
81
问题
下面是一个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全国计算机二级
相关试题推荐
在VisualFoxPro中,使用LOCATEALLFOR命令按条件查找记录,执行该命令后,记录指针指向()。
假定系统日期是2007年12月31日,则执行命令RQ;MOD(YEAR(DATE()+1),10)后,RQ的值是()。
下列关于下拉菜单和快捷菜单的说法中,错误的是()。
考生文件夹下存在数据库“学籍”,其中包含course和score表,这两个表存在一对多的联系。对“学籍”数据库建立文件名为form2的表单,表单标题为“课程成绩查看”,其中包含两个表格控件。第一个表格控件用于显示“课程”表的记录,第二个表格控件用于显示与
(1)建立一个文件名和表单名均为two的表单,然后为表单two建立一个名为quit的新方法(单击选择表单后,从“表单”菜单中选择“新建方法程序”命令),并在该方法中写一条语句Thisform.release:最后向表单中添加一个命令按钮(Commandl)
在考生文件夹下,打开学生数据库sdb,完成如下简单应用:(1)使用查询设计器设计一个名称为svg的查询,查询每个“女”同学的学号(来自student表)、姓名、课程名、成绩和任课教师(来自teacher表的教师名),查询结果按学号升序排序并输出到表one
下面属于黑盒测试方法的是
在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是
下列叙述中正确的是
0x4DC0是一个十六进制数,它对应的Unicode编码是中国古老的《易经》六十四卦的第一卦,请输出第51卦(震卦)对应的Unicode编码的二进制、十进制、八进制和十六进制格式。print(’’二进制{①}、十进制{②}、八进制{③}、\十六进制{④}
随机试题
女性,52岁,反复呕血2年,1天前突然又呕血,胃镜确诊为食管静脉曲张出血。体格检查:贫血貌.血压80/60mmHg,蛙状腹,脾肋下3cm。肝功能检查:ALT120U(赖氏法),A/G比值为0.82:1,总胆红素(STB)35μmol/L。最宜采用
关于显微血管外科,哪一项是错误的
婴儿期每天能量及水的需要量约是
王某对县民政局的决定不服向法院提起行政诉讼,县民政局向法院提供了由民政部制定的规章和该局发布的文件证明其决定合法。法院审查后认为规章和文件均合法有效。有关法院在判决书对二者的适用和引用,下列哪一项说法是正确的?()
影响设备无形磨损的因素有()
在确立贷款意向后,银行需要向客户索取贷款申请资料,除借款申请书等借款人资料外,根据贷款类型的不同,还需要索取其他相关资料。如果为抵(质)押贷款,借款人还需要提供的资料包括()。
下列资本成本变动的影响因素中,属于内部因素的有()。
下列关于激光的说法错误的是:
发展经济_________可以为城市文化增加筹码,_________文化传承、文化内涵的提升以及文化事业的发展,_________不可或缺的,城市的文化含金量如何,并不在于能否造起几幢标志性建筑,而是取决于市民的文化素质。依次填入画横线部分最恰当的一项是(
计算机网络最突出的优点是
最新回复
(
0
)