首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
77
问题
下面是一个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全国计算机二级
相关试题推荐
为“客户”表建立普通索引,要求按“客户号”字段升序排列,如果客户号(C,4)相等,则按“订购日期”(D)升序排列,下列语句正确的是()。
下列关于SQL对表的定义的说法中,不正确的选项是()。
下列程序段的输出结果是()。Clearstore10toastore20tobsetudfparmstoreferencedoswapwitha,(b)?a,bprocedureswapparametersx
在考生文件夹下,打开学生数据库SDB,完成如下简单应用:(1)使用查询设计器设计一个名称为two的查询,查询每个同学的学号(来自student表)、姓名、课程名和成绩。查询结果先按课程名升序、再按成绩降序排序,查询去向是表,表名是two。设计完成后,运行
在考生文件夹下有一个名为myform的表单,表单中包括一个列表框和两个命令按钮。请在该表单中完成如下操作:①在表单设计器环境下设置列表框的数据源(RowSource)和数据源类型(RowSourceType)两个属性。设置RowSourceType属性
以下关于数据管理发展的描述错误的是
下列叙述中正确的是
在考生文件夹下,打开学生数据库sdb,完成如下简单应用:(1)使用报表向导建立一个简单报表。要求选择student表中所有字段;记录不分组;报表样式为“随意式”;列数为“1”,字段布局为“列”,方向为“纵向”;排序字段为“学号”(升序);报表标题为“学生
数据库应用系统中的核心问题是
使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形,边长为200像素,效果如下图所示。请结合程序整体框架,补充横线处代码。importturtleas①foriinrange(②):t.set
随机试题
文件系统对文件进行统一管理,目的是方便用户且保证文件的安全可靠。为此,面向用户文件系统实现的主要功能称为
工资率上升的收入效应导致闲暇消费的(),而其替代效应导致工作时间的()。
在计算稀释每股收益时,下列各项中,不属于潜在普通股的是()。
形成荒漠地貌的主要地质原因是()。
有一个人叫李智,研究生学历,考了三年终于考上公务员,到团委工作,担任团委书记,他的同事王强是副书记。刚参加工作时李智踏踏实实、勤勤恳恳。有一次,省委机关决定选拔一批处级干部,李智和王强笔试成绩都很高,并同时入围面试。为了准备面试,李智经常用工作时间学习,把
在长581米的道路两侧植树,假设该路段仅两端有路口,要求在道路路口15米范围内最多植1棵树,并且相邻两棵树间的距离为4米,问最多植多少棵树?()
关于Graves病时的代谢,下列哪项不正确
A.受检人群中每人口腔中平均龋、失、补牙数B.在调查期间某一人群中患龋病的频率,人口基数以百计算C.通常指至少在1年时间内,某人群新发生龋病的频率D.全口牙列均无龋的人数占全部受检查人数的百分率E.包括患根龋的数目和因根龋而充填的数目根龋数(
在我国,有权修改宪法的机关是()。
Completethenotesbelow.WriteONEWORDONLYforeachanswer.ChimpanzeebehavioursSpeciesWecanfindPanorPanTroglodytes
最新回复
(
0
)