首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
78
问题
下面是一个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)根据“班级学生”库中的表用SQLSELECT命令查询学生的学号、姓名、课程号和成绩,结果按“课程号”降序排序,“课程号”相同时按“成绩”降序排序,并将查询结果存储到cjb表中,将使用的SQL语句保存到mysql.txt中。(2)使用表单向导选择“
软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于
假定一个表单里有一个文本框Text1和一个命令按钮组CommandGroup1。命令按钮组是一个容器对象,其中包含Command1和Command2两个命令按钮。如果要在Command1命令按钮的某个方法中访问文本框的Value属性值,不正确的表达式是
创建一个名为student的新类,保存新类的类库名称是mylib,新类的父类是Person,正确的命令是
一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为
下列关于二叉树的叙述中,正确的是
随机试题
A.输尿管结石B.前列腺增生C.盆腔肿瘤D.外伤性脾破裂E.氨基糖苷类抗生素可引起肾性肾衰竭的是()
A.前导链B.随从链C.模板链D.冈崎片段以5′→3′DNA链为模板合成的5′→3′DNA片段是
A.EB病毒B.人乳头瘤病毒C.乙肝病毒D.幽门螺旋杆菌E.丙肝病毒与宫颈癌相关的是
易引起低血糖的药物有
长期卧床的患者的站立训练应先进行
下列有关企业所得税的税收优惠规定,表述正确的是()。
甲、乙签订买卖合同后,甲向乙背书转让3万元的汇票作为价款。后乙又将该汇票背书转让给丙。如果在乙履行合同前,甲、乙协议解除合同。甲的下列行为中,符合票据法律制度规定的是()。
材料:学生张琼进入青春期后,非常关注自己的相貌。但她认为自己长相难看,不被人喜爱。看到同学聚在一块咯咯地笑,她就认为她们在笑话自己;在寝室里,若听到同学在谈论某某长得漂亮,会以为是在影射自己;上课未被老师点名发言,也会认为老师嫌自己难看不愿意点自己……所
设y1(x),y2(x)是微分方程yˊˊ+pyˊ+qy=0的解,则由y1(x),y2(x)能构成方程通解的充分条件是().
Theconceptofmanversusmachineisatleastasoldastheindustrialrevolution,butthisphenomenontendstobemostacutely
最新回复
(
0
)