问题 问答题

本题是一个计时器。窗口中有1个文字标签和3个按钮,名为“复位”、“开始”和“暂停”,初始状态时只有“开始”按钮可用,单击该按钮开始计时,并且“开始”按钮的标签变为“继续”且不可用,“暂停”按钮变为可用,单击“暂停”按钮后“暂停”按钮变为不可用,“复位”和“继续”按钮变为可用,此时如果单击“复位”按钮将恢复到初始状态,如果单击“继续”按钮,则继续进行计数。
import java.awt.*;
import java.awt.event.*;
public class java3 extends Frame extends Runnable
Label timeDisp=new Label("0:0",Label.CENTER);
Thread timerThread;
int time=0;
Button btReset=new Button("复位");
Button btStart=new Button("开始");
Button btStop=new Button("暂停");
java3()
super("java3");
Panel p=new Panel(new GridLayout(1,0));
btReset.setEnabled(false);
btStop.setEnabled(true);
addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);

);
btReset.addActionListener(new ResetListener());
btStop.addActionListener(new StopListener());
btStart.addActionListener(new StartListener());
p.add(btReset);
p.add(btStart);
p.add(btStop);
add(p,BorderLayout.SOUTH);
timeDisp.setFont(new Font("Courier",Font.BOLD,60));
add(timeDisp,BorderLayout.CENTER);
pack();
show();

void stop()
Thread t=timerThread;
if(t!=null)
timerThread=null;
tryt.join();catch(Exception e)


public void run()
while(timerThread==Thread.currentThread())
timeDisp.setText(""+time/10+":"+time%10+"0");
time++;
tryThread.sleep(100);catch(Exception e);


class ResetListener implements ActionListener
public void actionPerformed(ActionEvent evt)
this.stop();
timeDisp.setText("0:0");
time=0;
btReset.setEnabled(false);
btStart.setEnabled(true);
btStop.setEnabled(false);
btStart.setLabel("开始");


class StopListener implements ActionListener
public void actionPerformed(ActionEvent evt)
java3.this.stop();
btReset.setEnabled(true);
btStart.setEnabled(true);
btStop.setEnabled(false);
btStart.setLabel("继续");


class StartListener implements ActionListener
public void actionPerforrned(ActionEvent evt)
timerThread=new Thread(java3.this);
timerThread.start();
btReset.setEnabled(false);
btStart.setEnabled(false);
btStop.setEnabled(true);
btStart.setLabel("继续");


static public void main(String[]args)
new java3();

答案

参考答案:第1处:public class java3 extends Frame
第2处:btStop.setEnabled(false)
第3处:java3.this.stop()

解析: 第1处定义一个继承了Frame窗口类的java3类;第2处暂停按钮stStop的setEnable属性为false,不可用;第3处是单击“复位”调用stop()方法停止计时;ResetListener主要作用是当用户单击“复位”时,它首先停止计时然后将时间清零,最后修改各个按钮的状态,即是否可用的状态修改。

填空题
问答题 简答题