原题要求: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);
}}
catch(Exception exception)
{
//不要在此为空,捕获一下异常。看数据库链接是不是就抛出异常了。
}或者
Connection con=DriverManager.getConnection("jdbc:odbc:test","try","123");
System.out.println("Connection = "+con); //看看是不是Connection = nul?
Statement stmt=con.createStatement() ;
这里http://1shome.ebok.cn/
JM1.3.1
会看到你要的
JTextArea jTextArea1 = new JTextArea();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();这什么编程习惯啊....
你真要找个神人来给你看代码或者你以为用个IDE拉拉控件就能做出软件来了??