首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面程序是一个计时器,从1000秒开始倒计时,直到为0结束。在界面上有两个按钮,一个可以暂停计时,另一个可以继续已经暂停的计时。请更正题中带下划线的部分。 注意:不改动程序的结构,不得增行或删行 import java.awt.*; im
下面程序是一个计时器,从1000秒开始倒计时,直到为0结束。在界面上有两个按钮,一个可以暂停计时,另一个可以继续已经暂停的计时。请更正题中带下划线的部分。 注意:不改动程序的结构,不得增行或删行 import java.awt.*; im
admin
2009-01-15
82
问题
下面程序是一个计时器,从1000秒开始倒计时,直到为0结束。在界面上有两个按钮,一个可以暂停计时,另一个可以继续已经暂停的计时。请更正题中带下划线的部分。
注意:不改动程序的结构,不得增行或删行
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Example3_4 extends Applet
{
public Color color = Color.red;
private int num= 1000;
public Counter theCounter;
private Button stop;
private Button start;
public void init()
{
stop = new Button("暂停");
start = new Button ("继续");
theCounter = new Counter(this);
stop.addActionListener(new Lst() implements ActionListener{
public void actionPerformed(ActionEvent e)
{
theCounter.sus();
}
});
start.addActionListener(new SuspenListener());
add(start);
add(stop);
theCounter.start();
}
public void paint(Graphics g)
{
g.setCotor(color);
g.drawString(String.valueOf(num),50,50);
}
public void setInt(int i)
{
num=i;
}
class SuspenListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
theCounter.conti ();
}
}
}
public class Counter extends Thread
{
Example3_4 example;
boolean isHold;
Counter (Example3_4 ex)
{
this.example = ex;
isHold = false;
}
public void sus()
{
isHold = true;
}
public synchronized void conti()
{
isHold = false;
notify();
}
public void run()
{
for (int i = 1000; i>0; i--)
{
if (i%2 == 1)
example.color = Color.red;
else
example.color = Color.blue;
example.setInt(i);
example.repaint();
try
{
sleep(1000);
synchronized {
while(isHold)
wait ( );
}
}
catch (InterruptedException ie)
{}
}
}
}
<HTML>
<HEAD>
<TITLE>Example3_4</TITLE>
</HEAD>
<BODY>
<applet code="Example3_4.class" width=300 height=400>
</applet>
</BODY>
</HTML>
选项
答案
①stop.addActionListener(new ActionListener(){ ②class Counter extends Thread ③synchronized(this)
解析
本程序使用线程类“Counter”来实现计时的功能,该线程的线程体每1000毫秒循环一次,并在每次循环的开始显示剩余的时间。计时器的暂停和继续通过线程的同步与共享来完成,每次循环结束时,判断标志暂停的变量“isHold”是否为真,如果为真则进入挂起状态。当用户按下“暂停”按钮,程序调用Counter类的sus()方法,将变量“isHold”设为真。当用户按下“继续”按钮,程序调用Counter类的conti()方法,将变量“isHold”设为假,并使用notify()取消线程的挂起状态。
本题第1个错误是考查对匿名类的使用。匿名类是Java语言中比较特殊的一种类,这种类不存在类名,而且只能在声明的时候被实例化一次。匿名类必须继承于一个父类或实现一个接口。第1条横线处,原程序打算声明一个新类 Lst实现ActionListener接口,并同时实例化一个新对象。但是只有匿名类才能在声明时创建一个新的类对象。因此此处应改用匿名类实现程序的目的。
第2个错误处考查Java源程序的结构。任何一个“java”文件中有且只有一个被声明为public的类,这个类的名字必须与“java”文件的文件名相同。因此在第2个错误位置处必须去掉 public声明。
synchronized用来定义一个同步块。
synchronized的定义格式是synchronized (expression)statement,expression是对象或类的名字,系统将为该对象设置唯一的锁;statement可以是一个方法定义,也可以是一个语句块,在同一时刻只能有一个线程执行这个块中的操作。因此第3个错误处必须指明同步的对象,本题中的同步对象是当前的Counter实例。
运行结果如下图所示。
转载请注明原文地址:https://kaotiyun.com/show/41np777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
在VisualFoxPro中,程序中不需要用PUBLIC等命令明确声明和建立,可直接使用的内存变量是
要将一个弹出式菜单作为某个控件的快捷菜单,需要在该控件的某事件代码中调用弹出式菜单程序的命令。这个事件是
数据库设计过程不包括
在关系数据库中,用来表示实体间联系的是
下列描述中错误的是
设有关系歌手(歌手号,姓名,最后得分)和关系评分(歌手号,分数,评委号),每个歌手的最后得分是所有评委给出的分数的平均值,则计算歌手“最后得分”的SQL语句是
与“SELECTDISTINCT产品号FROM产品WHERE单价>=ALL(SELECT单价FROM产品WHERESUBSTR(产品号,1,1)="2")”等价的SQL命令是
在黑盒测试方法中,设计测试用例的主要根据是
下列代表八进制整数的是
下列数据中是八进制数的是______。
随机试题
(1)Ourrecentresearchindicatesthatpatientsarereluctanttousehealthcareprovidedbymedicalartificialintelligenceeve
悉尼大学商学院的核心科目“商学的批判性思维”,期末考试有1200名学生参加,却有400多人不及格,其中有八成是中国留学生。悉尼大学解释说:“中国学生缺乏批判性思维,英语水平欠佳。”学生代表L对此申诉说:“学校录取的学生,英语水平都是通过学校认可的,商学院入
讯问笔录写作和使用中应注意哪些问题?
男性,37岁,间断便血10年,肠镜发现结肠多发息肉,直径0.5~3.0cm,有结肠性腺瘤性息肉病家族史。该患者最可能存在的胚系基因突变是
根据《商品房屋租赁管理办法》,房屋租赁合同登记备案证明遗失,应到原登记本案部门()。
经纬仪的主要功能是测量()。
甲公司拥有乙公司80%的有表决权股份,能够控制乙公司的财务和经营决策。2015年9月甲公司以800万元(不含增值税税额)将一批自产产品销售给乙公司,该批产品在甲公司的生产成本为600万元。至2015年12月31日,乙公司对外销售该批商品的40%,假定涉及的
2015年全年全国粮食总产量62143万吨,增长2.4%。谷物产量57225万吨,比上年增长2.7%。棉花产量560.5万吨,比上年下降9.3%。全年猪牛羊禽肉产量8454万吨,比上年下降1.0%,其中猪肉产量5487万吨,下降3.3%,而上年同期为增长3
行政指导是指行政主体在其所管辖的权限内,为适应复杂多变的经济和社会需要,依据国家法律或政策,适时灵活地采取引导、劝告、建议、协商、示范、制定导向性政策、发布有关信息等非强制性手段,在行政相对方的同意或协助下,实现一定行政目的的行为。根据上述定义,下列属于行
Whyisitthattherichersomepeoplebecome,themoreunhappytheyare?Writeyouropinionsonthistopicin160—180wordson
最新回复
(
0
)