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(" shijian");

public NewFrame()
{
super();
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);
    
    lab4.setBounds(20,440,20,10);
    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)  
        {
            
            String sql="";
            try{
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             String source="jdbc:odbc:design";
             Connection  con=DriverManager.getConnection(source);
             Statement stmt=con.createStatement();
            
             tf1.setText(tf1.getText());
             tf2.setText(tf2.getText());
             tf3.setText(tf3.getText());
                sql="INSERT INTO Th1(date,time,lab,thing) VALUES(tf1.getText(),tf2.getText(),tf3.getText(),ta.getText())";
             stmt.executeUpdate(sql);
            
            
            
            }catch(Exception ew)
            {
             ;
            }
        }
    }
    

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

}编译无错,但数据库连接不上,晕死!那个btnQue按钮也点击不了,真想撞死!!!
帮忙!高手!!

解决方案 »

  1.   

    ButtonHandler中的actionPerformed方法这么写private   class   ButtonHandler   implements   ActionListener{   
            public   void   actionPerformed(ActionEvent   e)     
                    { 
                        if(e.getSource()==btnQue) //注意:加上这句
                        {    
                            String   sql=""; 
                            try{ 
                            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
                            String   source="jdbc:odbc:design"; 
                            Connection     con=DriverManager.getConnection(source); 
                            Statement   stmt=con.createStatement(); 
                            
                            tf1.setText(tf1.getText()); 
                            tf2.setText(tf2.getText()); 
                            tf3.setText(tf3.getText()); 
                                  sql="INSERT   INTO   Th1(date,time,lab,thing)   VALUES(tf1.getText(),tf2.getText(),tf3.getText(),ta.getText())"; 
                            stmt.executeUpdate(sql); 
                            
                            
                            
                            }catch(Exception   ew) 
                            { 
                            ; 
                            } 
                         }
                    } 
            } 
      

  2.   

    试了一下,你的btnQue单击事件是可以执行的
    private   class   ButtonHandler   implements   ActionListener{   
            public   void   actionPerformed(ActionEvent   e)     
                    { 
                            
                            String   sql=""; 
                            try{ 
                            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
                            JOptionPane.showMessageDialog(new Frame(),"确定");
                            String   source="jdbc:odbc:design"; 
                            Connection     con=DriverManager.getConnection(source); 
                            Statement   stmt=con.createStatement(); 
                            
                            tf1.setText(tf1.getText()); 
                            tf2.setText(tf2.getText()); 
                            tf3.setText(tf3.getText()); 
                                  sql="INSERT   INTO   Th1(date,time,lab,thing)   VALUES(tf1.getText(),tf2.getText(),tf3.getText(),ta.getText())"; 
                            stmt.executeUpdate(sql); 
                            
                            
                            
                            }catch(Exception   ew) 
                            { 
                            ; 
                            } 
                    } 
            } 
    加了一句JOptionPane.showMessageDialog(new Frame(),"确定");测试一下
    另外,不知道你连ORACLE的字符串是什么意思,source="jdbc:odbc:design";
    你可以试试用thin方式连,试试看
      

  3.   

    3楼的, source="jdbc:odbc:design"这句是连接数据库design,还有我连的是Server2000;
      

  4.   

    落地鸟兄,我加了那句后提示有错:就是加的那句提示cannot resolve symbol
      

  5.   

    那个sql="INSERT       INTO       Th1(date,time,lab,thing)       VALUES(tf1.getText(),tf2.getText(),tf3.getText(),ta.getText())";  这句都好像没有用一样,都不能把我想要的东西加到数据库中,但是具体的值却可以,温下如何将从JTextField中得到的字符串加到数据库中? 
      

  6.   

    第一,那个按钮能按下去
    第二,
    } catch (Exception ew) {
            ew.printStackTrace(); // 这里打印异常看看,里面有发生错误的原因
            ;
          }
      

  7.   

    数据表里的那四个字段类型都是String么?
      

  8.   

    看看这一句吧
    sql="INSERT   INTO   Th1(date,time,lab,thing)   VALUES(tf1.getText(),tf2.getText(),tf3.getText(),ta.getText())";
      

  9.   

    我连了下我的mysql 没问题
      

  10.   

    异常原因是:未发现数据源并未指定默认驱动程序.这该怎么改?
    --------数据源有没有配对,一类驱动需要配数据源 tf1.setText(tf1.getText()); 
     tf2.setText(tf2.getText()); 
     tf3.setText(tf3.getText()); 
    这三句是干什么的 ?把文本框里的数取出来再放进去?
      

  11.   

    我的意思是想把文本框里的东西改了后再放进文本框里===================================?
    如果是通过客户端来改文本框,那么悄你直接getText()就行了啊
    没必要再setText了
      

  12.   

    控制面板—》管理工具—》数据源(odbc)—》—》系统DSN—》添加—》选中最后一个即SQL Server—完成
    然后输入你的数据源名称,描述不用写,之后填写你的服务器名称,如果为本机则填为(local)
    —》下一步—》下一步——》选中“更改默认的数据库”(选中你的数据库)—》下一步—》完成
    这就好了,之后可以点击一下“测试数据源”,提示检测成功就ok了
      

  13.   

    服务器是本机吗?是的话local要加括号的
    如果是其他机器
    我没试过~
    不过应该输入IP就可以了吧~
      

  14.   

    那个配置是成功了,可是我又运行了下程序,还是提醒有错误:  java.sql.SQLException:[microsoft][ODBE SQL Server Driver][SQL Server]第一行:':'附近有语法错误.这是怎么回事啊?应该上哪去改?
      

  15.   

    程序已帮你改正.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("shijian");

    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);

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


    JScrollPane scroll = new JScrollPane(ta);
    scroll.setBounds(40, 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); lab4.setBounds(20, 440, 20, 10);
    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");
    String source = "jdbc:odbc:design";
    Connection con = DriverManager.getConnection(source);
    Statement stmt = con.createStatement();

    tf1.setText(tf1.getText());
    tf2.setText(tf2.getText());
    tf3.setText(tf3.getText());
    sql = "insert into Th1 " +
    "values('" + tf1.getText() + "','" + tf2.getText() + "','" + tf3.getText() + "','" + ta.getText() + "')";

    stmt.executeUpdate(sql);
    labCue.setForeground(Color.green);
    labCue.setText("数据插入成功");


    } 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);
    }}
    // 更改处已用红色字体标实