不懂,请高手过来看下!!急!!!

kuan_ren 2008-02-23 03:49:25
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.Date;
import java.text.*;
import java.text.SimpleDateFormat;


public class NewFrame extends JFrame
{
JLabel lab1=new JLabel("设置日期:");
JLabel lab2=new JLabel("设置时间:");
JLabel lab3=new JLabel(" 标题:");
JTextField tf1=new JTextField();
JTextField tf2=new JTextField();
JTextField tf3=new JTextField();
JTextArea ta=new JTextArea();
JButton btnQue=new JButton("确定");
JButton btnCancle=new JButton("取消");
JLabel lab4=new JLabel(" ");
JLabel labCue = new JLabel("");


public NewFrame()
{
super();
setSize(500,600);
Container conn=getContentPane();
conn.setBounds(0,0,450,450);


lab1.setFont(new Font("宋体",Font.BOLD,15));
lab2.setFont(new Font("宋体",Font.BOLD,15));
lab3.setFont(new Font("宋体",Font.BOLD,15));

lab1.setBounds(20,20,90,20);
lab2.setBounds(20,60,90,20);
lab3.setBounds(20,100,90,20);
tf1.setBounds(100,20,200,20);
tf2.setBounds(100,60,200,20);
tf3.setBounds(100,100,200,20);
conn.add(lab1);
conn.add(tf1);
conn.add(lab2);
conn.add(tf2);
conn.add(lab3);
conn.add(tf3);
JScrollPane scroll=new JScrollPane(ta);
scroll.setBounds(20,150,400,200);
conn.add(scroll);
btnQue.setBounds(20,400,90,20);

ButtonHandler handler = new ButtonHandler();
btnQue.addActionListener(handler);
conn.add(btnQue);


btnCancle.setBounds(130,400,90,20);


conn.add(btnCancle);

conn.add(labCue);
labCue.setBounds(20,430,240,30);

lab4.setBounds(20,480,150,20);
conn.add(lab4);





SimpleDateFormat dateformatD=new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat dateformatT=new SimpleDateFormat("HH:mm:ss");
Date date=new Date();
String now=(dateformatD.format(date)).toString();
String now1=(dateformatT.format(date)).toString();
tf1.setText(now);
tf2.setText(now1);

btnCancle.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{

System.exit(0);
}
});
}
private class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnQue)
{

String sql=" ";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
JOptionPane.showMessageDialog(new Frame(),"确定");
String source="jdbc:odbc:xie";
Connection con=DriverManager.getConnection(source);
con.setAutoCommit(true);
Statement stmt=con.createStatement();

tf1.getText();
tf2.getText();
tf3.getText();
sql="INSERT INTO Table1(date, time, lab, thing) VALUES ('"+tf1.getText()+"', '"+tf2.getText()+"', '"+tf3.getText()+"', '"+ta.getText()+"')";
stmt.executeUpdate(sql);
labCue.setForeground(Color.green);
labCue.setText("数据插入成功");

long oldTime = System.currentTimeMillis();//现记录当前程序启动时的时间,然后启动线程
CountTime ct = new CountTime( oldTime );
//System.out.println( oldTime );
ct.start();



}catch(Exception ew)
{
labCue.setForeground(Color.RED);
labCue.setText("数据插入失败");
}
}
}
}


public void rePaint()
{
tf3.setText(" ");
ta.setText(" ");
}
public static void main(String[] args)
{
NewFrame newframe=new NewFrame();
newframe.setVisible(true);
}




class CountTime extends Thread
{
long oldTime = 0;

CountTime( long oldTime )
{
this.oldTime = oldTime;
}

public void run()
{
while(true)
{
//get recent system time
long newTime = System.currentTimeMillis();
//System.out.println( newTime );

if( newTime== Double.parseDouble(tf2.getText()))
{
JOptionPane.showMessageDialog( new Frame(), "TIME OUT" );
System.exit( 0 );
}
}
}
}

}
帮忙看下这段代码中的Thread类有没有写错?我要实现的功能是从tf2中得到要弹出提醒的时间,然后和系统当前时间对比,若相等则弹出提醒,帮忙!急用!!!
...全文
69 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kuan_ren 2008-02-23
恩.谢谢了.开始有点明白了.但你能不能以我的这个例子具体说下呢?这线程这部分我不太清楚啊,谢谢!
回复
chenchi1985 2008-02-23
看了你的代码,
CountTime的逻辑可以这样设计:每隔1秒钟
Tread.sleep(1000)
判断一次是否需要提醒,如果系统当前时间大于设置时间则需要提醒,另外你在设置时间时必须要求,设置的时间比当前时间大才行
另外,你在时间的解析方面也有错误,给你个例子
Date currDate = new Date(); 	//获取系统当前时间
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(currDate)); //打印出当前时间 2008-02-24 20:36:52

Date setDate = null;
try {
setDate = dateFormat.parse("2008-02-24 20:36:52");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//setDate较大时返回>0,较小时返回0,相等时返回0
setDate.compareTo(currDate);
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2008-02-23 03:49
社区公告
暂无公告