带计时器的做题器(gui
新学
1
JCheckBox chckbxA = new JCheckBox("a");
JCheckBox的监听器接口ItemListener,响应方法itemStateChanged
boolean isSelect=a.isSelected();是否被选
a.setSelected(false);可以控制 是否选择
2
Timer类stop了,好像不用restart,直接start就可以了
package thread; import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader; import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea; public class MyWin extends JFrame implements ActionListener,ItemListener { private JPanel contentPane;
JButton xuantimu = new JButton("\u9009\u9898\u76EE");
JFileChooser file1=new JFileChooser();
File dir;
int MaxTime=8;
JLabel second = new JLabel("剩8秒 问题:");
JTextArea text = new JTextArea();
JLabel label2 = new JLabel("分数:");
JButton button = new JButton("再做一遍");
Timer timer1=new Timer(1000,this);
String daan=null;
FileReader fileReader;
BufferedReader in1;
int fenshu=0; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MyWin frame = new MyWin();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the frame.
*/
public MyWin() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 719, 145);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane); JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER); panel.add(xuantimu); panel.add(second); text.setColumns(17);
text.setRows(3);
panel.add(text); JCheckBox chckbxA = new JCheckBox("a");
panel.add(chckbxA); JCheckBox chckbxB = new JCheckBox("b");
panel.add(chckbxB); JCheckBox chckbxC = new JCheckBox("c");
panel.add(chckbxC); JCheckBox chckbxD = new JCheckBox("d");
panel.add(chckbxD); panel.add(label2); panel.add(button); chckbxA.addItemListener(this);
chckbxB.addItemListener(this);
chckbxC.addItemListener(this);
chckbxD.addItemListener(this); button.addActionListener(this);
xuantimu.addActionListener(this); } void readNext(){
try{
text.setText(null);
String s=null;
for(;(s=in1.readLine())!=null;){
if(!s.startsWith("-")){
text.append(s+"\n");
}
else{
s=s.replaceAll("-","");
daan=s;
break;
}
}
timer1.start();
}
catch(Exception e){
System.out.println("2222");
System.out.println(e.getMessage());
}
}
void setFile(){
int state=file1.showOpenDialog(this);
if(state==JFileChooser.APPROVE_OPTION){
try{
dir=file1.getSelectedFile();
fileReader=new FileReader(dir);
in1=new BufferedReader(fileReader);
readNext();
}
catch(Exception e1){
System.out.println("11111");
System.out.println(e1.getMessage());
}
}
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO 自动生成的方法存根
JCheckBox a=(JCheckBox)e.getItemSelectable();
String s=a.getText();
// System.out.println(s);
// System.out.println(daan);
boolean isSelect=a.isSelected();
if(s.equals(daan.trim())&&isSelect){
fenshu++;
label2.setText("分数"+fenshu);
timer1.stop();
MaxTime=8;
readNext();
a.setSelected(false);
}
} @Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if(e.getSource()==timer1){
second.setText("剩"+MaxTime+"秒"+",问题");
MaxTime--;
if(MaxTime<=0){
MaxTime=8;
readNext();
} }
else if(e.getSource()==button){
fenshu=0;
setFile();
}
else if(e.getActionCommand()=="选题目"){
setFile();
}
} }
带计时器的做题器(gui的更多相关文章
- CodeM美团点评编程大赛复赛 做题感悟&题解
[T1] [简要题意] 长度为N的括号序列,随机确定括号的方向:对于一个已确定的序列,每次消除相邻的左右括号(右左不行),消除后可以进一步合并和消除直到不能消为止.求剩下的括号的期望.\(N \l ...
- SDOI2016 R1做题笔记
SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...
- AtCoder Grand Contest 1~10 做题小记
原文链接https://www.cnblogs.com/zhouzhendong/p/AtCoder-Grand-Contest-from-1-to-10.html 考虑到博客内容较多,编辑不方便的情 ...
- Python基础(七) python自带的三个装饰器
说到装饰器,就不得不说python自带的三个装饰器: 1.@property 将某函数,做为属性使用 @property 修饰,就是将方法,变成一个属性来使用. class A(): @prope ...
- BZOJ做题记录[0512~?]
觉得做一道开一篇真不好...好多想找的东西都被刷下去了... 至于?的日期究竟到什么时候...还是看心情...但是估计不会超过七天吧 最后更新时间:05/19 10:42 [05/14 10:56]我 ...
- python中自带的三个装饰器
说到装饰器,就不得不说python自带的三个装饰器: 1.@property 将某函数,做为属性使用 @property 修饰,就是将方法,变成一个属性来使用. class A(): @propert ...
- NOIP2016考前做题(口胡)记录
NOIP以前可能会持续更新 写在前面 NOIP好像马上就要到了,感觉在校内训练里面经常被虐有一种要滚粗的感觉(雾.不管是普及组还是提高组,我都参加了好几年了,结果一个省一都没有,今年如果还没有的话感觉 ...
- 攻防世界web新手区做题记录
学校信安协会第一次培训结束后的作业,要求把攻防世界的web新手区题目做一遍并写题解. 第一题 view_source 查看源代码右键不能用,但是F12能用,于是找到源代码 输入到flag框即可 后来在 ...
- UOJ 做题记录
UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...
随机推荐
- C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)
/// <summary> /// DataGridView导出至Excel,解决问题:打开Excel文件格式与扩展名指定格式不一致 /// </summary> /// &l ...
- 深入浅出 Java Concurrency (2): 原子操作 part 1
转:http://www.blogjava.net/xylz/archive/2010/07/01/324988.html 从相对简单的Atomic入手(java.util.concurrent是基于 ...
- Java版将EXCEL表数据导入到数据库中
1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls ...
- AOP小结
AOP主要采用代理模式来实现的,静态代理(设计模式中的代理模式),动态代理(反射机制,实现InvocationHandler接口),cglib实现(采用继承方式,针对目标类生成子类,并覆盖方法进行增强 ...
- 老毛桃U盘启动盘制作工具V20140501完美贡献版
老毛桃U盘启动盘制作工具V20140501完美贡献版 下载地址:http://down.laomaotao.net:90/LaoMaoTao_V2014zhuangji.exe 老毛桃U盘装系统综合教 ...
- WallsEveryDay 必应桌面壁纸
软件名:WallsEveryday 陈述: 无聊时写着玩的一个桌面壁纸的软件,壁纸是自动从必应下载,所以每天都会有新的. 在ubuntu上测试通过,windows上找了台win7测试通过,其他没测试. ...
- 【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1810 题目大意: 一个长度为N的十进制数,R(i,j)表示将第i位到第j位翻转过来后的 ...
- 【二分】NEERC15 L Landscape Improved(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
题目链接: http://codeforces.com/gym/100851 题目大意: 一个宽度为N的网格图,i上有h[i]高的方块.现在你有W个方块,问怎么放使得最终的最高点最高. 只要一个格子的 ...
- prim模板题
题目链接:http://acm.hrbeu.edu.cn/index.php?act=problem&id=1223 #include <cstdio> #include < ...
- A - 棋盘问题
地图看起来不太大,可以试试深搜,试一下.. 还是比较简单的搜索,竟然一下就过................... #include<stdio.h> #include<) ...