下面的程序麻烦大家帮我改改下面的程序:package booktest;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;
public class clock {
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
clockframe cf = new clockframe("Title");
cf.setVisible(true);
cf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class clockframe extends JFrame implements ActionListener
{
final JTextField tf = new JTextField(10);
final JTextField tf1 = new JTextField(3);
final JTextField tf2 = new JTextField(3);
final JTextField tf3 = new JTextField(3);
clockframe(String str)
{
super(str);
setBounds(200, 100, 300, 200);
setLayout(new BorderLayout());
setBackground(Color.WHITE);
add("South",createSouthpanel());
add("Center",createCenterpanel());
}
JPanel createSouthpanel()
{
/**
* 输入时间的块内容。
*/
JPanel panel =new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("输入时,分,秒");
panel.add(label);
panel.add(tf1);
panel.add(tf2);
panel.add(tf3);
return panel;
}
JPanel createCenterpanel()
{
JPanel panel =new JPanel();
panel.setLayout(new FlowLayout());
JButton jb = new JButton("开始计时");
tf.setEditable(false);
panel.add(tf);
panel.add(jb);
jb.addActionListener(this);
return panel;
}
@Override
public void actionPerformed(ActionEvent e) {
int Hour = Integer.valueOf(tf1.getText());
int Minute = Integer.valueOf(tf2.getText());
int Second = Integer.valueOf(tf3.getText());
thread t= new thread();
t.run(Hour,Minute,Second);
}
private class thread extends Thread
{
public void run(int h,int m,int s)
{
for( int i=0 ; i<1 ; i++)
{
for(int x=h;x<=24;x++)
for(int y=m;y<=60;y++)
for(int z=s;z<=60;z++)
{ /* try {
sleep(999);
} catch (InterruptedException e) {
e.printStackTrace();
}
*/
x=x%24;y=y%60;z=z%60;
tf.setText(x+":"+y+":"+z);
}
}
}
}
}
程序思路是输入时分秒后,点击按钮开始计时。
注释段去掉之后会出现问题,还有就是程序里没有抛出输入输出的异常。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;
public class clock {
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
clockframe cf = new clockframe("Title");
cf.setVisible(true);
cf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class clockframe extends JFrame implements ActionListener
{
final JTextField tf = new JTextField(10);
final JTextField tf1 = new JTextField(3);
final JTextField tf2 = new JTextField(3);
final JTextField tf3 = new JTextField(3);
clockframe(String str)
{
super(str);
setBounds(200, 100, 300, 200);
setLayout(new BorderLayout());
setBackground(Color.WHITE);
add("South",createSouthpanel());
add("Center",createCenterpanel());
}
JPanel createSouthpanel()
{
/**
* 输入时间的块内容。
*/
JPanel panel =new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("输入时,分,秒");
panel.add(label);
panel.add(tf1);
panel.add(tf2);
panel.add(tf3);
return panel;
}
JPanel createCenterpanel()
{
JPanel panel =new JPanel();
panel.setLayout(new FlowLayout());
JButton jb = new JButton("开始计时");
tf.setEditable(false);
panel.add(tf);
panel.add(jb);
jb.addActionListener(this);
return panel;
}
@Override
public void actionPerformed(ActionEvent e) {
int Hour = Integer.valueOf(tf1.getText());
int Minute = Integer.valueOf(tf2.getText());
int Second = Integer.valueOf(tf3.getText());
thread t= new thread();
t.run(Hour,Minute,Second);
}
private class thread extends Thread
{
public void run(int h,int m,int s)
{
for( int i=0 ; i<1 ; i++)
{
for(int x=h;x<=24;x++)
for(int y=m;y<=60;y++)
for(int z=s;z<=60;z++)
{ /* try {
sleep(999);
} catch (InterruptedException e) {
e.printStackTrace();
}
*/
x=x%24;y=y%60;z=z%60;
tf.setText(x+":"+y+":"+z);
}
}
}
}
}
程序思路是输入时分秒后,点击按钮开始计时。
注释段去掉之后会出现问题,还有就是程序里没有抛出输入输出的异常。
package test;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;public class clock {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
clockframe cf = new clockframe("Title");
cf.setVisible(true);
cf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}class clockframe extends JFrame implements ActionListener {
final JTextField tf = new JTextField(10); final JTextField tf1 = new JTextField(3); final JTextField tf2 = new JTextField(3); final JTextField tf3 = new JTextField(3); clockframe(String str) {
super(str);
setBounds(200, 100, 300, 200);
setLayout(new BorderLayout());
setBackground(Color.WHITE);
add("South", createSouthpanel());
add("Center", createCenterpanel());
} JPanel createSouthpanel() {
/**
* 输入时间的块内容。
*/
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("输入时,分,秒");
panel.add(label);
panel.add(tf1);
panel.add(tf2);
panel.add(tf3);
return panel;
} JPanel createCenterpanel() {
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JButton jb = new JButton("开始计时");
tf.setEditable(false);
panel.add(tf);
panel.add(jb);
jb.addActionListener(this);
return panel;
} // @Override
public void actionPerformed(ActionEvent e) {
int Hour = Integer.valueOf(tf1.getText());
int Minute = Integer.valueOf(tf2.getText());
int Second = Integer.valueOf(tf3.getText()); thread t = new thread(Hour,Minute,Second);
t.start();
//(Hour, Minute, Second);
} private class thread extends Thread {
private int h = 0;
private int m = 0;
private int s = 0;
thread(int h, int m, int s){
this.h = h;
this.m = m;
this.s = s;
}
public void run(){
startToRun(h,m,s);
}
public void startToRun(int h, int m, int s) {
for (int i = 0; i < 1; i++) {
for (int x = h; x <= 24; x++)
for (int y = m; y <= 60; y++)
for (int z = s; z <= 60; z++) { try {
sleep(999);
} catch (InterruptedException e) {
e.printStackTrace();
} x = x % 24;
y = y % 60;
z = z % 60;
tf.setText(x + ":" + y + ":" + z);
}
}
}
}
}
基础的只是,就是多了个线程类而已,LZ要多多加油