首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
54
问题
下面是一个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)在考生文件夹下利用查询设计器创建一个查询,从表中查询演唱“粤语”歌曲的歌手。查询结果包含歌手的姓名、语言和点歌码3个字段;各记录按“点歌码”降序排序,点歌码相同的再按“演唱者”升序排序;查询去向为表ta。最后将查询保存在
(1)modil.prg程序文件中SQLSELECT语句的功能是查询哪些零件(零件名称)目前用于三个项目,并将结果按升序存入文本文件results.txt。给出的SQLSELECT语句中在第1、3、5行各有一处错误,请改正并运行程序(不可以增、删语句或
在考生文件夹下完成下列操作:(1)使用SQL命令根据“教师”表产生一个结构和数据完全一致的“高校教师”表,并按职工号递增排序。(2)使用报表向导为“教师”表创建一个名为two的报表,选择“教师”表的所有字段,按“职工号”降序排列,标题为“教师情况报表”
在考生文件夹下完成下列操作:(1)在考生文件夹下利用查询设计器创建一个查询,从表中查询所属菜系为“川菜”和“粤菜”的厨师。查询结果包含姓名、年龄和性别3个字段;各记录按“年龄”降序排序,年龄相同的再按“性别”升序排序;查询去向为表ta。最后将查询保存在q
面向对象方法中,继承是指
一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是
数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下面图符名标识的图符不属于数据流图合法图符的是
在考生文件夹下创建一个顶层表单myform.scx(表单的标题为“考试”),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。效果如图3.8所示。(1)菜单命令“统计”和“退出"的功能都通过执行过程完成
数据库应用系统中的核心问题是
在Java中,所有类的根类是()。
随机试题
我国第一部编年体历史著作是()
论治过程的三个步骤是()
在工程咨询服务费用的计算中,关于成本加固定酬金的论述正确的是()。
《工伤保险条例》规定,工伤职工或者其近亲属骗取工伤保险待遇的,将被责令退还,并处()罚款。
李先生和李太太(陶女士)都是收入稳定的公务员,两人目前和李先生的母亲同住,没有孩子。最近,李先生和太太计划要一个小宝宝,同时还有一些其他的家庭目标需要进行规划,于是夫妇俩找到了金融理财规划师进行咨询。理财规划师就李先生的家庭状况进行了分析。一、案例成员
川菜在烹饪上的特点包括()。
土地革命战争时期,毛泽东同志以马克思主义为指导,发表了《中国的红色政权为什么能够存在》《井冈山的斗争》《星星之火、可以燎原》《反对本本主义》等重要著作。这些著作()。
林希冲在《南华经》中文文本的序言中说:“准备阅读一本书时,必须要弄清每一个字的意思,这样你才可以去分析句子;在弄清句子的结构之后,你才可以去理解文章的段落结构;只有这样,最后才可以抓住整个章节的核心思想。”根据材料。下列说法中最恰当的一项是:
根据以下资料,回答问题。2010年以来普通高中下降幅度最大与上一年相比下降了:
教学模式
最新回复
(
0
)