原题要求:1、 设计一个GUI界面,包括一个“显示”按钮,一个“查询”按钮,一个多行文本区域(JTextArea),布局随意,强调美观、可观性强。
2、 完成“显示”按钮和“查询”按钮的事件处理,当点击“显示”按钮时,把数据库中的所有的学生信息都显示在多行文本框中。
3、 对于“查询”按钮能完成多线程,对于每一次按下事件,可以弹出一个输入的对话框,在对话框中输入要查询学生的学号,然后在主界面中显示查询出的某个学生的整体信息。
其中一些细节方面的考虑以符合一般的查询为目标,作到合乎常规操作。
4、 要求用JDBC连接数据库,数据库类型不限,既可以用ACCESS也可以用SQLSERVER。
5、 数据库中要求有数据库名,一张数据库表,访问权限,访问密码。
6、 数据库表中的信息有:学号(int)、姓名(char[])、年龄(int)、籍贯(char[])、平均成绩(float)。package ckc;import java.awt.BorderLayout;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import java.awt.*;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import java.sql.*;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Frame1 extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = null;
    JTextArea jTextArea1 = new JTextArea();
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
    JButton jButton3 = new JButton();    public Frame1() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
        setSize(new Dimension(400, 344));
        setTitle("Frame Title");
        jTextArea1.setText("jTextArea1");
        jTextArea1.setBounds(new Rectangle(28, 74, 351, 189));
        jButton1.setBounds(new Rectangle(26, 35, 73, 32));
        jButton1.setText("显示");
        jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
        jButton2.setBounds(new Rectangle(302, 36, 71, 32));
        jButton2.setText("查询");
        jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
        jButton3.setBounds(new Rectangle(132, 266, 149, 29));
        jButton3.setText("退出系统");
        jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this));
        contentPane.add(jButton2);
        contentPane.add(jButton1);
        contentPane.add(jButton3);
        contentPane.add(jTextArea1);
    jTextArea1.setText("学号   姓名   年龄   籍贯   平均成绩"+"\n");
    }    public void jButton1_actionPerformed(ActionEvent e) {
        try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con=DriverManager.getConnection("jdbc:odbc:test","try","123");
                Statement stmt=con.createStatement() ;
                ResultSet rs=stmt.executeQuery("Select * from student");
                String ss="学号   姓名   年龄   籍贯   平均成绩"+"\n";
   while(rs.next()){      ss+=rs.getString(2)+"     ";
      ss+=rs.getString(3)+"     ";
      ss+=rs.getString(4)+"     ";
      ss+=rs.getString(5)+"     ";
      ss+=rs.getString(6)+"     \n";       jTextArea1.setText(ss);   }}catch(Exception ed){}
}    public void jButton3_actionPerformed(ActionEvent e) {
System.exit(0);
    }    public void jButton2_actionPerformed(ActionEvent e) {
  new func().start();    }
    class Frame1_jButton1_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {        adaptee.jButton1_actionPerformed(e);
    }
}
  class func extends Thread{
       public void run ()
      {
boolean flag=true;
          javax.swing.JOptionPane info=new JOptionPane();
       int sno1=Integer.parseInt(info.showInputDialog("输入您要查的学生学号!"));
       try{
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              Connection con=DriverManager.getConnection("jdbc:odbc:test","try","123");
              Statement stmt=con.createStatement() ;
              ResultSet rs=stmt.executeQuery("Select * from student");
   while(rs.next()){
       int temp2 = rs.getInt("sno");
       if(sno1==temp2){           String  ss="学号   姓名   年龄   籍贯   平均成绩"+"\n";
           System.out.println(rs.getString("name"));
            System.out.println(rs.getString("age"));
               System.out.println(rs.getString("home"));
                System.out.println(rs.getString("score"));
                 System.out.println(rs.getString("sno"));
         //  System.out.println(rs.getString(2));
         //  jTextArea1.setText("学号   姓名   年龄   籍贯   平均成绩"+"\n" +rs.getString("name") + "     "+rs.getString("age")+ "     ");
         ss += rs.getString("sno") + "     ";
         ss += rs.getString("name") + "     ";
         ss += rs.getString("age") + "     ";
         ss += rs.getString("home") + "     ";
         ss += rs.getString("score") + "     \n";
         jTextArea1.setText(ss);
        // System.out.println("sno"); 
           flag=false;
       }
        }
              if(flag){
       info.showMessageDialog(contentPane,"你输入的学号不存在!");
       }      }  catch (Exception exception) { }   }
}
}
class Frame1_jButton2_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton2_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {        adaptee.jButton2_actionPerformed(e);
    }
}
class Frame1_jButton3_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton3_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {
        adaptee.jButton3_actionPerformed(e);
    }}

解决方案 »

  1.   

    怎么没有人回复,这是csdn吗,真是让人失望啊
      

  2.   

    你的数据库是否连接成功了?怎么不关闭那?在有最好是字符串比较,一般读出来的都是STRING型的
      

  3.   

    try{}
    catch(Exception exception) 
    {
      //不要在此为空,捕获一下异常。看数据库链接是不是就抛出异常了。 
    }或者
    Connection con=DriverManager.getConnection("jdbc:odbc:test","try","123");
    System.out.println("Connection = "+con);   //看看是不是Connection = nul?
    Statement stmt=con.createStatement() ;
      

  4.   

    我最近也在做这个,你首先要保证肯定能连上数据库了,还有异常最好捕捉下,Connection和Statement可能为null的.
      

  5.   

    推荐一个
    这里http://1shome.ebok.cn/
    JM1.3.1
    会看到你要的
      

  6.   

    BorderLayout borderLayout1 = null;
        JTextArea jTextArea1 = new JTextArea();
        JButton jButton1 = new JButton();
        JButton jButton2 = new JButton();
        JButton jButton3 = new JButton();这什么编程习惯啊....
    你真要找个神人来给你看代码或者你以为用个IDE拉拉控件就能做出软件来了??