带计时器的做题器(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]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...
随机推荐
- JPA学习笔记
一.JPA基础1.1 JPA基础JPA: java persistence api 支持XML.JDK5.0注解俩种元数据的形式,是SUN公司引入的JPA ORM规范 元数据:对象和表之间的映射关系 ...
- Java switch-case
首先从原理上来阐述这个问题: switch(表达式){case 常量表达式1:语句1;....case 常量表达式2:语句2;default:语句;}1.default就是如果没有符合的case就执行 ...
- Git skills in reseting files
How to uncommit files that were committed long time a ago?Note: Since all changes in the current wor ...
- ♫【JS】offsetParent
This property will return null on Webkit if the element is hidden (the style.display of this element ...
- HDOJ(HDU) 2107 Founding of HDU(找最大值)
Problem Description 经过慎重的考虑,XHD,8600, LL,Linle以及RPG等ACM队员集体退役,甚至正在酝酿退学. 为什么?要考研?那也不用退学呀- 当然不是!真正的原因是 ...
- postgresql使用文档之一 初始化数据存储区
17.2. 创建一个数据库集群(Database Cluster) 在你能做任何事情之前,你必须在磁盘上初始化一块存储空间.我们称这为一个数据库集群(database cluster). 一个Data ...
- 最小生成树问题(Kruskal 算法)(克鲁斯卡尔)
如图就是Kuskal算法 将图中的每条边按照权值从小到大排序,每次加起来就行,注意的是不要形成回路: 重点是如何用代码实现不能形成回路 看代码; #include <cstdio> #in ...
- SCOI2014 方伯伯的OJ onlinejudge
终于用自己的方法水过去了. 本地测慢的一组要三四秒,一共要十几秒,BZOJ貌似一共只让跑6s,于是就还T着的. 一开始没看n<=1e8,想的直接splay+map(splay维护名次,map维护 ...
- TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)
ISFP是服务中断的指令包,创建ISR的三种情况: 1.一个ISFP包的8条指令就能够满足ISR watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl5ZW ...
- PHP安全编程:会话数据注入 比会话劫持更强大的攻击(转)
一个与会话暴露类似的问题是会话注入.此类攻击是基于你的WEB服务器除了对会话存储目录有读取权限外,还有写入权限.因此,存在着编写一段允许其他用户添加,编辑或删除会话的脚本的可能.下例显示了一个允许用户 ...