带计时器的做题器(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]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...
随机推荐
- Arrays常用API的事例
import java.util.ArrayList;import java.util.Arrays;import java.util.List; public class TestArrays { ...
- Unity NGUI根据高度自适应屏幕分辨率
Unity版本:4.5.1 NGUI版本:3.6.5 本文内容纯粹转载,转载保留参考链接和作者 参考链接:http://blog.csdn.net/asd237241291/article/detai ...
- (转载)PHP strtotime函数详解
(转载)http://www.jb51.net/article/21495.htm strtotime函数是一个很好的函数,灵活的运用它,会给你的工作带来不少方便.但PHP的手册中却对此函数的参数没作 ...
- 线段树(维护最大值):HDU Billboard
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- ZOJ 3675 Trim the Nails
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4918 DP+状态压缩. http://www.cnblogs.com/dgsr ...
- 暴力求解——UVA 572(简单的dfs)
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
- 《Mathematical Olympiad——数论》——整除
数论这个东西吧,虽说也是高中IMOer玩的数学游戏,颇具美学性的证明比较多.就目前所知,它在算法里是一些加密技术的基础,不多言,开始具体题目的分析. 问题一:已知数列{an},且a0 = 2 , a1 ...
- SRM 504.5(2-1000pt)
DIV2 1000pt 题意:一群人排队,每次操作由要骰子决定,只要没有人中奖,游戏就不结束.若摇骰子摇出4,则队列第一个人中奖:否则,若摇的是奇数,则第一个人排队到队伍末尾去:否则,第一个人出局.若 ...
- selenium grid java 资料
Grid TestNG: 使用Selenium Grid改进Web应用程序的测试: http://www.ithov.com/server/117464.shtml
- iOS状态栏颜色
下面截图给出修改 iOS 状态栏颜色的 4 种方式 Target.png Info.plist.png Storyboard.png code.png 其中第四张图中的代码,直接写在你的任何一个 Vi ...