package swingExamples;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;
public class TestTimer{
private JFrame jf;
private JButton start;
private JButton clear;
private JLabel header;
private JPanel record;
private int record_num;
private JLabel clock;
GregorianCalendar c;
GregorianCalendar old_c;
int yyyy,MM,day,HH,mm,ss;
String timestr;
Timer timer ;
public static void main(String[] args){
new TestTimer().init();
}
private void init(){
jf = new JFrame("运动秒表");
start = new JButton("Start");
clear = new JButton("Clear");
header = new JLabel();
header.setOpaque(true);
header.setBackground(Color.yellow);
clock = new JLabel();
clock.setHorizontalAlignment(JLabel.CENTER);
clock.setOpaque(true);//将clock设置为不透明的,才能显示下面的红色
clock.setBackground(Color.red);
clock.setText("0000-00-00 00:00:00");
record = new JPanel(new FlowLayout(FlowLayout.LEFT));
//record = new JPanel();
//record.setLayout(new GridLayout(20,1));
record_num = 0;
header.setText("共有 "+record_num+" 个记录");
JPanel jpanel = new JPanel(new GridLayout(1,2));
jpanel.add(start);
jpanel.add(clear);
MyMonitor1 m1 = new MyMonitor1();
timer = new Timer(1000,m1);//每隔一秒触发m1;
MyMonitor2 m2 = new MyMonitor2();
start.addActionListener(m2);
MyMonitor3 m3 = new MyMonitor3();
clear.addActionListener(m3);//清空记录;
record.add(header);
jf.add(jpanel,"North");
jf.add(record,BorderLayout.CENTER);
jf.add(clock,"South");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(400,400,280,400);
jf.setVisible(true);
}
//nested class MyMonitor1
class MyMonitor1 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
c = new GregorianCalendar();
yyyy = c.get(GregorianCalendar.YEAR);
MM = c.get(GregorianCalendar.MONTH);
day = c.get(GregorianCalendar.DATE);
HH = c.get(GregorianCalendar.HOUR_OF_DAY);
mm = c.get(GregorianCalendar.MINUTE);
ss = c.get(GregorianCalendar.SECOND);
String ph = HH<10?"0":"";
String pm = mm<10?"0":"";
String ps = ss<10?"0":"";
timestr = String.valueOf(yyyy)+"-"+String.valueOf(MM)+"-"
+String.valueOf(day<10?"0"+day:day)+" "+ph+String.valueOf(HH)+":"+pm+String.valueOf(mm)+
":"+ps+String.valueOf(ss);
clock.setText(timestr);
}
}
//nested class MyMonitor2
class MyMonitor2 implements ActionListener{
private boolean running = false;//running用于判断定时器是否启动;
@Override
public void actionPerformed(ActionEvent e){
if(!running){ //开始计时
timer.setInitialDelay(0);//首次延迟为0
timer.start();//启动定时器
clock.setBackground(Color.green);
start.setText("Pause");//按钮变为暂停
timestr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());//timestr用在第一次显示时间,以后显示时间可从clock上直接读取;
old_c = new GregorianCalendar();//old_c为当前时间,也就是开始计时时间;
//System.out.println(old_c.toString());
JLabel jlabel = new JLabel("开始时间是"+timestr);
jlabel.setOpaque(true);
jlabel.setBackground(Color.green);
record.add(jlabel);
//System.out.println(clock.getText());
}else{//暂停,按钮变为重新开始
timer.stop();//定时器暂停
clock.setBackground(Color.red);
start.setText("Restart");
JLabel jlabel = new JLabel("结束时间是"+clock.getText()+" 成绩"+()+"秒");
//jlabel.setBackground(Color.red);
jlabel.setOpaque(true);
record.add(jlabel);
record_num++;
//header.repaint();
//System.out.println(header.getText());
header.setText("共有 "+record_num+" 个记录");
}
running = !running;
}
private int (){//计算成绩 用结束时间c减去开始计时时间old_c;
int s = (int)(c.getTimeInMillis()-old_c.getTimeInMillis())/1000;//
if(s == 0){ //如果成绩小于1秒,计为1;
return 1;
}
return s;
}
}
//nested class MyMonitor3
class MyMonitor3 implements ActionListener{
public void actionPerformed(ActionEvent e){
clock.setText("0000-00-00 00:00:00");
record_num = 0;
record.removeAll();
header.setText("共有 "+record_num+" 个记录");
record.add(header);
record.repaint();
}
}
}
实现一个运动秒表的功能,这里有一个问题,就是record会一直往下加记录,这样当记录很多的时候只有放大jf才能看到全部,我想把record放在一个JScrollPane中,这样拖动垂直滚动条就查看全部的记录,不需要水平滚动条。哪位高手帮我修改下谢谢。。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;
public class TestTimer{
private JFrame jf;
private JButton start;
private JButton clear;
private JLabel header;
private JPanel record;
private int record_num;
private JLabel clock;
GregorianCalendar c;
GregorianCalendar old_c;
int yyyy,MM,day,HH,mm,ss;
String timestr;
Timer timer ;
public static void main(String[] args){
new TestTimer().init();
}
private void init(){
jf = new JFrame("运动秒表");
start = new JButton("Start");
clear = new JButton("Clear");
header = new JLabel();
header.setOpaque(true);
header.setBackground(Color.yellow);
clock = new JLabel();
clock.setHorizontalAlignment(JLabel.CENTER);
clock.setOpaque(true);//将clock设置为不透明的,才能显示下面的红色
clock.setBackground(Color.red);
clock.setText("0000-00-00 00:00:00");
record = new JPanel(new FlowLayout(FlowLayout.LEFT));
//record = new JPanel();
//record.setLayout(new GridLayout(20,1));
record_num = 0;
header.setText("共有 "+record_num+" 个记录");
JPanel jpanel = new JPanel(new GridLayout(1,2));
jpanel.add(start);
jpanel.add(clear);
MyMonitor1 m1 = new MyMonitor1();
timer = new Timer(1000,m1);//每隔一秒触发m1;
MyMonitor2 m2 = new MyMonitor2();
start.addActionListener(m2);
MyMonitor3 m3 = new MyMonitor3();
clear.addActionListener(m3);//清空记录;
record.add(header);
jf.add(jpanel,"North");
jf.add(record,BorderLayout.CENTER);
jf.add(clock,"South");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(400,400,280,400);
jf.setVisible(true);
}
//nested class MyMonitor1
class MyMonitor1 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
c = new GregorianCalendar();
yyyy = c.get(GregorianCalendar.YEAR);
MM = c.get(GregorianCalendar.MONTH);
day = c.get(GregorianCalendar.DATE);
HH = c.get(GregorianCalendar.HOUR_OF_DAY);
mm = c.get(GregorianCalendar.MINUTE);
ss = c.get(GregorianCalendar.SECOND);
String ph = HH<10?"0":"";
String pm = mm<10?"0":"";
String ps = ss<10?"0":"";
timestr = String.valueOf(yyyy)+"-"+String.valueOf(MM)+"-"
+String.valueOf(day<10?"0"+day:day)+" "+ph+String.valueOf(HH)+":"+pm+String.valueOf(mm)+
":"+ps+String.valueOf(ss);
clock.setText(timestr);
}
}
//nested class MyMonitor2
class MyMonitor2 implements ActionListener{
private boolean running = false;//running用于判断定时器是否启动;
@Override
public void actionPerformed(ActionEvent e){
if(!running){ //开始计时
timer.setInitialDelay(0);//首次延迟为0
timer.start();//启动定时器
clock.setBackground(Color.green);
start.setText("Pause");//按钮变为暂停
timestr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());//timestr用在第一次显示时间,以后显示时间可从clock上直接读取;
old_c = new GregorianCalendar();//old_c为当前时间,也就是开始计时时间;
//System.out.println(old_c.toString());
JLabel jlabel = new JLabel("开始时间是"+timestr);
jlabel.setOpaque(true);
jlabel.setBackground(Color.green);
record.add(jlabel);
//System.out.println(clock.getText());
}else{//暂停,按钮变为重新开始
timer.stop();//定时器暂停
clock.setBackground(Color.red);
start.setText("Restart");
JLabel jlabel = new JLabel("结束时间是"+clock.getText()+" 成绩"+()+"秒");
//jlabel.setBackground(Color.red);
jlabel.setOpaque(true);
record.add(jlabel);
record_num++;
//header.repaint();
//System.out.println(header.getText());
header.setText("共有 "+record_num+" 个记录");
}
running = !running;
}
private int (){//计算成绩 用结束时间c减去开始计时时间old_c;
int s = (int)(c.getTimeInMillis()-old_c.getTimeInMillis())/1000;//
if(s == 0){ //如果成绩小于1秒,计为1;
return 1;
}
return s;
}
}
//nested class MyMonitor3
class MyMonitor3 implements ActionListener{
public void actionPerformed(ActionEvent e){
clock.setText("0000-00-00 00:00:00");
record_num = 0;
record.removeAll();
header.setText("共有 "+record_num+" 个记录");
record.add(header);
record.repaint();
}
}
}
实现一个运动秒表的功能,这里有一个问题,就是record会一直往下加记录,这样当记录很多的时候只有放大jf才能看到全部,我想把record放在一个JScrollPane中,这样拖动垂直滚动条就查看全部的记录,不需要水平滚动条。哪位高手帮我修改下谢谢。。
解决方案 »
- 关于对象的周期
- java如何提示内存不足
- netbeans-6.0.1安装问题?
- 请问可以 在一个包含图片的JLabel上显示另一个JLabel吗?
- 怎样将sessionid传递到服务端?
- html与自编java程序的连接问题
- 心情不好 连续散分~~4 :(
- 下载的JMF不知道怎么用??
- Symantec TreeView使用后,如何能在浏览器中让其运行
- java.lang.OutOfMemoryError: PermGen space
- ALL 在web.xml中加载applicationContext.xml,来生成bean,为啥总是提示空指针错误
- java基础知识。。。关于移位(不知道这样表达对不。。看题)
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.Timer;public class TestTimerT{
private JFrame jf;
private JButton start;
private JButton clear;
private JLabel header;
private JTextArea record;
// private JPanel record;
private int record_num;
private JLabel clock;
GregorianCalendar c;
GregorianCalendar old_c;
int yyyy,MM,day,HH,mm,ss;
String timestr;
Timer timer; public static void main(String[] args){
new TestTimerT().init();
} private void init(){
jf = new JFrame("运动秒表");
start = new JButton("Start");
clear = new JButton("Clear");
header = new JLabel();
header.setOpaque(true);
header.setBackground(Color.yellow);
clock = new JLabel();
clock.setHorizontalAlignment(JLabel.CENTER);
clock.setOpaque(true);// 将clock设置为不透明的,才能显示下面的红色
clock.setBackground(Color.red);
clock.setText("0000-00-00 00:00:00");
record = new JTextArea();
//record = new JPanel(new FlowLayout(FlowLayout.LEFT));
// record = new JPanel();
// record.setLayout(new GridLayout(20,1));
record_num = 0;
header.setText("共有 " + record_num + " 个记录");
JPanel jpanel = new JPanel(new GridLayout(2,2));
jpanel.add(start);
jpanel.add(clear);
jpanel.add(header);
MyMonitor1 m1 = new MyMonitor1();
timer = new Timer(1000,m1);// 每隔一秒触发m1;
MyMonitor2 m2 = new MyMonitor2();
start.addActionListener(m2);
MyMonitor3 m3 = new MyMonitor3();
clear.addActionListener(m3);// 清空记录;
// record.add(header);
jf.add(jpanel,"North");
JScrollPane scroller = new JScrollPane(record);
jf.add(scroller,BorderLayout.CENTER);
jf.add(clock,"South");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(400,400,280,400);
jf.setVisible(true); } // nested class MyMonitor1
class MyMonitor1 implements ActionListener{
public void actionPerformed(ActionEvent e){
c = new GregorianCalendar();
yyyy = c.get(GregorianCalendar.YEAR);
MM = c.get(GregorianCalendar.MONTH);
day = c.get(GregorianCalendar.DATE);
HH = c.get(GregorianCalendar.HOUR_OF_DAY);
mm = c.get(GregorianCalendar.MINUTE);
ss = c.get(GregorianCalendar.SECOND);
String ph = HH < 10 ? "0" : "";
String pm = mm < 10 ? "0" : "";
String ps = ss < 10 ? "0" : "";
timestr =
String.valueOf(yyyy) + "-" + String.valueOf(MM) + "-" + String.valueOf(day < 10 ? "0" + day : day)
+ " " + ph + String.valueOf(HH) + ":" + pm + String.valueOf(mm) + ":" + ps
+ String.valueOf(ss);
clock.setText(timestr); }
} // nested class MyMonitor2
class MyMonitor2 implements ActionListener{
private boolean running = false;// running用于判断定时器是否启动; public void actionPerformed(ActionEvent e){
if(!running){ // 开始计时
timer.setInitialDelay(0);// 首次延迟为0
timer.start();// 启动定时器
clock.setBackground(Color.green);
start.setText("Pause");// 按钮变为暂停
timestr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());// timestr用在第一次显示时间,以后显示时间可从clock上直接读取;
old_c = new GregorianCalendar();// old_c为当前时间,也就是开始计时时间;
// System.out.println(old_c.toString());
// JLabel jlabel = new JLabel("开始时间是" + timestr+"\n");
// jlabel.setOpaque(true);
// jlabel.setBackground(Color.green);
// record.add(jlabel);
record.append("开始时间是" + timestr+"\n");
// System.out.println(clock.getText());
}else{// 暂停,按钮变为重新开始
timer.stop();// 定时器暂停
clock.setBackground(Color.red);
start.setText("Restart");
// JLabel jlabel = new JLabel("结束时间是" + clock.getText() + " 成绩" + () + "秒 \n");
// jlabel.setBackground(Color.red);
// jlabel.setOpaque(true);
// record.add(jlabel);
record.append("结束时间是" + clock.getText() + " 成绩" + () + "秒 \n");
record_num++;
// header.repaint();
// System.out.println(header.getText());
header.setText("共有 " + record_num + " 个记录");
}
running = !running;
} private int (){// 计算成绩 用结束时间c减去开始计时时间old_c;
int s = (int) (c.getTimeInMillis() - old_c.getTimeInMillis()) / 1000;//
if(s == 0){ // 如果成绩小于1秒,计为1;
return 1;
}
return s; }
} // nested class MyMonitor3
class MyMonitor3 implements ActionListener{ public void actionPerformed(ActionEvent e){
clock.setText("0000-00-00 00:00:00");
record_num = 0;
record.removeAll();
header.setText("共有 " + record_num + " 个记录");
// record.add(header);
// record.repaint();
record.setText("");
}
}
}
package test;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;public class TestTimer {
private JFrame jf;
private JButton start;
private JButton clear;
private JLabel header;
JScrollPane sc;
private Box record;
private int record_num;
private JLabel clock;
GregorianCalendar c;
GregorianCalendar old_c;
int yyyy, MM, day, HH, mm, ss;
String timestr;
Timer timer; public static void main(String[] args) {
new TestTimer().init(); } private void init() {
jf = new JFrame("运动秒表");
start = new JButton("Start");
clear = new JButton("Clear");
header = new JLabel();
header.setOpaque(true);
header.setBackground(Color.yellow);
clock = new JLabel();
clock.setHorizontalAlignment(JLabel.CENTER);
clock.setOpaque(true);// 将clock设置为不透明的,才能显示下面的红色
clock.setBackground(Color.red);
clock.setText("0000-00-00 00:00:00");
record = new Box(BoxLayout.Y_AXIS);
// record = new JPanel();
// record.setLayout(new GridLayout(20,1));
record_num = 0;
header.setText("共有 " + record_num + " 个记录");
JPanel jpanel = new JPanel(new GridLayout(1, 2));
jpanel.add(start);
jpanel.add(clear);
MyMonitor1 m1 = new MyMonitor1();
timer = new Timer(1000, m1);// 每隔一秒触发m1;
MyMonitor2 m2 = new MyMonitor2();
start.addActionListener(m2);
MyMonitor3 m3 = new MyMonitor3();
clear.addActionListener(m3);// 清空记录;
record.add(header);
jf.add(jpanel, "North");
sc = new JScrollPane(record);
// sc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
sc.setBorder(BorderFactory.createLineBorder(Color.black));
jf.add(sc, BorderLayout.CENTER);
jf.add(clock, "South");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(400, 400, 280, 400);
jf.setVisible(true); } // nested class MyMonitor1
class MyMonitor1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
c = new GregorianCalendar();
yyyy = c.get(GregorianCalendar.YEAR);
MM = c.get(GregorianCalendar.MONTH);
day = c.get(GregorianCalendar.DATE);
HH = c.get(GregorianCalendar.HOUR_OF_DAY);
mm = c.get(GregorianCalendar.MINUTE);
ss = c.get(GregorianCalendar.SECOND);
String ph = HH < 10 ? "0" : "";
String pm = mm < 10 ? "0" : "";
String ps = ss < 10 ? "0" : "";
timestr = String.valueOf(yyyy) + "-" + String.valueOf(MM) + "-"
+ String.valueOf(day < 10 ? "0" + day : day) + " " + ph
+ String.valueOf(HH) + ":" + pm + String.valueOf(mm) + ":"
+ ps + String.valueOf(ss);
clock.setText(timestr); }
} // nested class MyMonitor2
class MyMonitor2 implements ActionListener {
private boolean running = false;// running用于判断定时器是否启动; @Override
public void actionPerformed(ActionEvent e) {
JLabel jlabel;
if (!running) { // 开始计时
timer.setInitialDelay(0);// 首次延迟为0
timer.start();// 启动定时器
clock.setBackground(Color.green);
start.setText("Pause");// 按钮变为暂停
timestr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date());// timestr用在第一次显示时间,以后显示时间可从clock上直接读取;
old_c = new GregorianCalendar();// old_c为当前时间,也就是开始计时时间;
// System.out.println(old_c.toString());
jlabel = new JLabel("开始时间是" + timestr);
jlabel.setOpaque(true);
jlabel.setBackground(Color.green);
record.add(jlabel);
// System.out.println(clock.getText());
} else {// 暂停,按钮变为重新开始
timer.stop();// 定时器暂停
clock.setBackground(Color.red);
start.setText("Restart");
jlabel = new JLabel("结束时间是" + clock.getText() + " 成绩" + ()
+ "秒");
// jlabel.setBackground(Color.red);
jlabel.setOpaque(true);
record.add(jlabel);
record_num++;
// header.repaint();
// System.out.println(header.getText());
header.setText("共有 " + record_num + " 个记录");
} record.scrollRectToVisible(record.getComponent(
record.getComponentCount() - 1).getBounds()); running = !running;
} private int () {// 计算成绩 用结束时间c减去开始计时时间old_c;
int s = (int) (c.getTimeInMillis() - old_c.getTimeInMillis()) / 1000;//
if (s == 0) { // 如果成绩小于1秒,计为1;
return 1;
}
return s; }
} // nested class MyMonitor3
class MyMonitor3 implements ActionListener { public void actionPerformed(ActionEvent e) {
clock.setText("0000-00-00 00:00:00");
record_num = 0;
record.removeAll();
header.setText("共有 " + record_num + " 个记录");
record.add(header);
record.repaint();
}
}
}
改动了你的一些东西。跑下看。
The method actionPerformed(ActionEvent) of type TestTimer.MyMonitor1 must
override a superclass method
package test;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;public class TestTimer {
private JFrame jf;
private JButton start;
private JButton clear;
private JLabel header;
JScrollPane sc;
private Box record;
private int record_num;
private JLabel clock;
GregorianCalendar c;
GregorianCalendar old_c;
int yyyy, MM, day, HH, mm, ss;
String timestr;
Timer timer; public static void main(String[] args) {
new TestTimer().init(); } private void init() {
jf = new JFrame("运动秒表");
start = new JButton("Start");
clear = new JButton("Clear");
header = new JLabel();
header.setOpaque(true);
header.setBackground(Color.yellow);
clock = new JLabel();
clock.setHorizontalAlignment(JLabel.CENTER);
clock.setOpaque(true);// 将clock设置为不透明的,才能显示下面的红色
clock.setBackground(Color.red);
clock.setText("0000-00-00 00:00:00");
record = new Box(BoxLayout.Y_AXIS);
// record = new JPanel();
// record.setLayout(new GridLayout(20,1));
record_num = 0;
header.setText("共有 " + record_num + " 个记录");
JPanel jpanel = new JPanel(new GridLayout(1, 2));
jpanel.add(start);
jpanel.add(clear);
MyMonitor1 m1 = new MyMonitor1();
timer = new Timer(1000, m1);// 每隔一秒触发m1;
MyMonitor2 m2 = new MyMonitor2();
start.addActionListener(m2);
MyMonitor3 m3 = new MyMonitor3();
clear.addActionListener(m3);// 清空记录;
record.add(header);
jf.add(jpanel, "North");
sc = new JScrollPane(record);
// sc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
sc.setBorder(BorderFactory.createLineBorder(Color.black));
jf.add(sc, BorderLayout.CENTER);
jf.add(clock, "South");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(400, 400, 280, 400);
jf.setVisible(true); } // nested class MyMonitor1
class MyMonitor1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
c = new GregorianCalendar();
yyyy = c.get(GregorianCalendar.YEAR);
MM = c.get(GregorianCalendar.MONTH);
day = c.get(GregorianCalendar.DATE);
HH = c.get(GregorianCalendar.HOUR_OF_DAY);
mm = c.get(GregorianCalendar.MINUTE);
ss = c.get(GregorianCalendar.SECOND);
String ph = HH < 10 ? "0" : "";
String pm = mm < 10 ? "0" : "";
String ps = ss < 10 ? "0" : "";
timestr = String.valueOf(yyyy) + "-" + String.valueOf(MM) + "-"
+ String.valueOf(day < 10 ? "0" + day : day) + " " + ph
+ String.valueOf(HH) + ":" + pm + String.valueOf(mm) + ":"
+ ps + String.valueOf(ss);
clock.setText(timestr); }
} // nested class MyMonitor2
class MyMonitor2 implements ActionListener {
private boolean running = false;// running用于判断定时器是否启动; @Override
public void actionPerformed(ActionEvent e) {
JLabel jlabel;
if (!running) { // 开始计时
timer.setInitialDelay(0);// 首次延迟为0
timer.start();// 启动定时器
clock.setBackground(Color.green);
start.setText("Pause");// 按钮变为暂停
timestr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date());// timestr用在第一次显示时间,以后显示时间可从clock上直接读取;
old_c = new GregorianCalendar();// old_c为当前时间,也就是开始计时时间;
// System.out.println(old_c.toString());
jlabel = new JLabel("开始时间是" + timestr);
jlabel.setOpaque(true);
jlabel.setBackground(Color.green);
record.add(jlabel);
// System.out.println(clock.getText());
} else {// 暂停,按钮变为重新开始
timer.stop();// 定时器暂停
clock.setBackground(Color.red);
start.setText("Restart");
jlabel = new JLabel("结束时间是" + clock.getText() + " 成绩" + ()
+ "秒");
// jlabel.setBackground(Color.red);
jlabel.setOpaque(true);
record.add(jlabel);
record_num++;
// header.repaint();
// System.out.println(header.getText());
header.setText("共有 " + record_num + " 个记录");
}
record.revalidate(); Rectangle bounds = record.getBounds();
bounds.y = bounds.height;
// bounds.y *= -1;
record.scrollRectToVisible(bounds);
// Rectangle r = sc.getVisibleRect();
// System.out.println("boundsrect " + record.getBounds());
// System.out.println("visiblerect " + r);
running = !running;
} private int () {// 计算成绩 用结束时间c减去开始计时时间old_c;
int s = (int) (c.getTimeInMillis() - old_c.getTimeInMillis()) / 1000;//
if (s == 0) { // 如果成绩小于1秒,计为1;
return 1;
}
return s; }
} // nested class MyMonitor3
class MyMonitor3 implements ActionListener { public void actionPerformed(ActionEvent e) {
clock.setText("0000-00-00 00:00:00");
record_num = 0;
record.removeAll();
header.setText("共有 " + record_num + " 个记录");
record.add(header);
record.repaint();
}
}
}
抱歉,滚动条那个地方写错了~~
重新贴一下
以前不知道用插入源代码,直接粘贴上来代码真难看,,以后用插入源代码了。。
在此谢谢大家。。