首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
20
问题
下面是一个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全国计算机二级
相关试题推荐
(1)使用查询设计器设计完成:查询“吴”姓读者(客户名第一个字为“吴”)订购图书情况,查询结果包括客户名、订单号、图书名、单价、数量和签订日期字段的值,要求按客户名升序排序,并运行该查询将查询结果存储在表文件appone,查询文件也保存为appone。(
假设新建了一个程序文件myProc.prg(不存在同名的.exe、.app和.fxp文件),然后在命令窗口输入命令DOmyProc,执行该程序并获得正常的结果。现在用命令ERASEmyProc.prg删除该程序文件,然后再次执行命令DOmyProc,
设N=44,M=55,K="N+M",表达式1+&K的值是()。
(1)编写SELECT语句,从orders(订单)表中统计2007年各月份签订的订单数。统计结果依次包含“月份”和“订单数”两个字段,并按月份升序排序,统计结果存放在tableone表中。最后要执行该SELECT语句,并将该SELECT语句存放在命令文件p
(1)用SQLINSERT语句插入元组("p7","PN7",1020)到“零件信息”表(注意:不要重复执行插入操作),并将相应的SQL语句存储在文件one.prg中。(2)用SQLDELETE语句从“零件信息”表中删除单价小于600的所有记录,并将
①编写程序并执行,计算“01”组(歌手编号的前2位)歌手的得分并将结果存入自由表final.dbf中。final.dbf包含“歌手姓名”和“得分”两个字段,“得分”取各评委所打分数的平均值。final.dbf中的结果按“得分”降序、“歌手姓名”降序排列。请
在考生文件夹下创建一个顶层表单myform.scx(表单的标题为“考试”),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。效果如图3-29所示。菜单命令“统计”和“退出”的访问键分别为“T”和“R
设数据库表中有一个C型字段NAME。打开表文件后,要把内存变量NAME的字符串内容输入到当前记录的NAME字段,应当使用命令
假设某个表单中有一个复选框(CheckBox1)和一个命令按钮Command1,如果要在Command1的Click事件代码中取得复选框的值,以判断该复选框是否被用户选择,正确的表达式是
在考生文件夹下创建一个顶层表单myform.scx(表单的标题为“考试”),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。效果如图3.8所示。(1)菜单命令“统计”和“退出"的功能都通过执行过程完成
随机试题
微型计算机的CPU由______和______两部分组成。
A.决明子B.密蒙花C.夏枯草D.淡竹叶治疗乳痈肿痛,宜选用的药物是
重力式码头干地填土的填料应分层压实,每层填土虚铺厚度,对人工夯实不宜大于()。
下列合同和凭证应纳印花税的是()。
A公司的破产案件人民法院于2014年5月16日受理,管理人发现A公司于2013年4月8日向E信用社借款200万元,期限1年。甲公司以其所属厂房为该笔借款提供了抵押担保。2014年5月18日,A公司向E信用社偿还了其所欠200万元借款本金及其利息。经查,甲公
在大型游乐公园里,现场表演是刻意用来引导人群流动的。一般地说,午餐时间的表演是为了减轻公园餐馆的压力;傍晚时间的表演则有一个完全不同的目的:鼓励参观者留下来吃晚餐。表面上不同时间的表演有不同的目的,但这背后,却有一个统一的潜在目标,即:以下哪一选
自我障碍策略指的是当人们预期自己会失败的时候,常常会提前设置一些障碍来阻挠自己获得成功,以作为解释失败的借口,这种行为被称为自我障碍策略。根据上述定义,下列使用自我障碍策略的是()。
A、设计专业教师B、室内设计师C、室外设计师D、设计公司经理B记者介绍蔡老师时说他是国内资深室内设计师,所以选B。
Questions1-4Thetexthas6paragraphs(A-F).Whichparagraphcontainseachofthefollowingpiecesofinformation?*
Theyoungpeopleofthepresentdayarebeyondmycomprehension.
最新回复
(
0
)