📄 exam10_7.java
字号:
/*这是一个输入速度计数的测试程序示例
*程序名为: Exam10_7.java
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Exam10_7 extends JFrame implements Runnable,ActionListener
{
JLabel time=new JLabel("90");
int time_count=90;
int answer_count=0;
JTextField no = new JTextField(10);
JTextField result = new JTextField(10);
JButton next=new JButton("下一个");
JButton start_end=new JButton("开始");
static Thread thread1;
public Exam10_7()
{
Container pane=getContentPane(); //获得摆放组件的窗口容器
pane.setLayout(new GridLayout(0,2)); //在容器上以网格布局摆放组件
pane.add(new JLabel("总的测试时间90分钟,剩余时间:"));
pane.add(time);
pane.add(new JLabel("学号")); //将组件摆放到窗格上
pane.add(no); //......
pane.add(new JLabel("成绩")); //......
pane.add(result); //......
pane.add(start_end); //......
pane.add(next); //......
start_end.addActionListener(this); //注册exit按钮的监听对象
next.addActionListener(this); //注册next按钮的监听对象
next.setEnabled(false); //设置组件不可操作
no.setEditable(false); //设置组件不可操作
result.setEditable(false); //设置组件不可操作
setSize(400,120); //设置窗口的大小
setVisible(true);
setDefaultCloseOperation(3);
}
/************main()*************/
public static void main(String [] args)
{
thread1=new Thread(new Exam10_7());
}
/*********ActionListener接口方法*************/
public void actionPerformed(ActionEvent e) //实现单击按钮事件
{
Object obj=e.getSource(); //获取事件源
if(obj==next) //设置下一个
{
answer_count++;
no.setText("");
result.setText("");
no.requestFocus(); //定位输入位置
}
else if(obj==start_end) //开始或退出
{
if(time_count>0) //开始
{
no.setEditable(true); //设置组件可操作
result.setEditable(true); //设置组件可操作
next.setEnabled(true); //设置组件可操作
start_end.setEnabled(false); //设置组件不可操作
thread1.setDaemon(true); //设置线程为守护线程
thread1.start(); //启动线程
}
else System.exit(0); //结束程序
}
}
/*********Runnable接口方法*************/
public void run()
{
try
{
while(true)
{
time.setText(time_count+""); //显示倒计时
time_count--;
if(time_count<0) //测试时间到
{
next.setEnabled(false); //设置组件不可操作
no.setEditable(false); //设置组件不可操作
result.setEditable(false); //设置组件不可操作
start_end.setEnabled(true); //设置组件可操作
start_end.setText("结束");
time.setText("时间到,输入"+answer_count+"个");
thread1.interrupt(); //中断线程的运行
}
thread1.sleep(600L); //休眠1分钟
}
}
catch(InterruptedException e) { System.out.println(e.toString()); }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -