首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器
admin
2009-01-15
64
问题
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。
import javax, swing. *
import java. awt. *
import java. awt. event. *
/*
<applet code= "ex4_2. class" width=800 height=400>
</applet>
*/
public class ex4_2 extends JApplet {
private JTextField jtf=new JTextField(15);
private JButton Hold = new JButton ("Hold"), resume = new JButton ( "Resume" );
private ex4_2th obj4_2th= new ex4_2th();
class ex4_2th extends Thread {
private int cnt=0;
private boolean bIsHold=false;
public ex4_2th() {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) {
obj4_2th. hold()
}
});
cp. add(Hold);
resume, addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e)
obj4_2th. fauxResume( )
}
});
cp. add(resume)
}
public static void main(String[] args) {
ex4_2 obj4_2 =new ex4_2()
String str= obj4_2. 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(obj4_2)
frm. setSize(300,200)
obj4_2. init()
obj4_2. start( );
frm. setVisible(true)
}
}
ex4_2. html
<HTML>
<HEAD>
<TITLE>ex4_2</TITLE>
</HEAD>
<BODY>
<applet code="ex4_2. 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()执行时被运用)。本题中,第一和第二处,应该在bIsHold为true时调用wait(),而在fauxResume()中调用notify();第三处,需要对int类型作转换才能够作为String类型输出,并且要对计数器变量 cnt做累加。
转载请注明原文地址:https://kaotiyun.com/show/VHnp777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
在考生文件夹下完成下列操作。(1)扩展基类ListBox,创建一个名为MyListBox的新类。新类保存在名为Myclasslib的类库中,该类库文件存放在考生文件夹下。设置新类的Height属性的默认值为130,Width属性的默认值为150。
在考生文件夹下创建一个顶层表单myform.scx,表单的标题为“考试”,然后创建并在表单中添加一个菜单,菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr,如下图所示。“统计”和“退出”菜单命令的访问键分别是“T”和“R”
在考生文件夹下完成如下基本操作:1.通过SQLINSERT语句插入元组("p7","PN7",1020)到“零件信息”表(注意不要重复执行插入操作),并将相应的SQL语句存储在文件one.prg中。2.通过SQLDELETE语句从“
1.建立一个表单文件myform,将employee表添加到表单的数据环境中,然后在表单中添加表格控件grid1,指定其记录源类型为“别名”、记录源为employee表文件,最后添加一个“退出”命令按钮控件command1,程序运行时单击该命令按钮将关闭表
在考生文件夹下新建一个名为mymenu.mnx的下拉式菜单,并生成菜单程序mymenu.mpr。运行该菜单程序则在当前VisualFoxPro系统菜单的末尾追加一个“考试”子菜单,如下图所示。考试菜单下的“计算”和“返回”命令的功能都是通过执
在考生文件夹下有一表单文件formone.scx,其中包含一个文本框和一个命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:1.将文本框和命令按钮两个控件设置为顶边对齐。2.将文本框的默认值设置为0。3.将表单的标
1.在考生文件夹下新建一个名为“学校”的数据库文件,并将自由表“教师表”、“课程表”和“学院表”依次添加到该数据库中。2.使用SQL语句ALTERTABLE…UNIQUE…将“课程表”中的“课程号”定义为候选索引,索引名是temp,并将该语句存储到
下列情况中,不会使线程返回所持有的对象锁的是
调用线程的下列方法,不会改变该线程在生命周期中状态的方法是
随机试题
儿化
()是指把抽象出来的事物属性推广到具有这些相同属性的一类事物上去,从而形成关于这一类事物的普遍概念。
应用文字进行健康教育的首要条件为()
1mol丙酮酸在线粒体内彻底氧化生成ATP的摩尔数量是
当订立合同双方对格式条款有两种以上的解释时,应()。
甲、乙签订一份租赁合同。合同约定,如果甲父死亡,则甲将房屋出租给乙居住。下列对该民事法律行为的表述中,正确的有()。
物流中心布局主要有哪几种?
下列词语中,字形读音全部正确的一项是()。
软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
Whatisthespeaker?
最新回复
(
0
)