?? stuaddquerysysframe.java
字號(hào):
package stuaddquerysys;import com.borland.jbcl.layout.*;import java.awt.*;import java.awt.event.*;import java.lang.*;import java.lang.Object.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;/** * Title: 學(xué)生地址查詢系統(tǒng)程序 * Description: 教學(xué)示范 * Copyright: Copyright (c) 2003 * Company: 北京師范大學(xué)計(jì)算機(jī)系 * @author 孫一林 * @version 1.0 */public class StuAddQuerySysFrame extends JFrame { private JPanel contentPane; private XYLayout xYLayout1 = new XYLayout(); // 構(gòu)造XYLayout布局管理器 // 創(chuàng)建顯示信息使用的組件 private Label label1 = new Label(); private TextField stunumField = new TextField(); private TextField nameField = new TextField(); private Label label2 = new Label(); private TextField ageField = new TextField(); private Label label3 = new Label(); private TextField sexField = new TextField(); private Label label4 = new Label(); private TextField departmentField = new TextField(); private Label label5 = new Label(); private TextField teleField = new TextField(); private Label label6 = new Label(); private TextField emailField = new TextField(); private Label label7 = new Label(); private Button addrecordButton = new Button(); private Button deleteButton = new Button(); private Button refreshButton = new Button(); private Button stunumqueryButton = new Button(); private Button allrecordButton = new Button(); Vector vector; // 聲明一個(gè)向量對(duì)象 String title[] = {"學(xué)號(hào)","姓名","年齡","性別","系名","電話","EMAIL"}; // 二維表列名 Connection connection = null; // 聲明Connection接口對(duì)象connection ResultSet rSet = null; // 定義數(shù)據(jù)庫(kù)查詢的結(jié)果集 Statement statement = null; // 定義查詢數(shù)據(jù)庫(kù)的Statement對(duì)象 AbstractTableModel tm; // 聲明一個(gè)AbstractTableModel類對(duì)象tm public StuAddQuerySysFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); // 初始化組件 label1.setText("學(xué)號(hào)"); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(571, 521)); this.setTitle("學(xué)生地址表查詢系統(tǒng)"); label2.setText("姓名"); label3.setText("年齡"); label4.setText("性別"); label5.setText("系名"); label6.setText("電話"); label7.setText("EMAIL地址"); addrecordButton.setLabel("添加"); deleteButton.setLabel("刪除"); refreshButton.setLabel("更新"); stunumqueryButton.setLabel("學(xué)號(hào)查詢"); allrecordButton.setLabel("全部記錄"); addrecordButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { addrecordButton_actionPerformed(e); } }); deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { deleteButton_actionPerformed(e); } }); refreshButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { refreshButton_actionPerformed(e); } }); stunumqueryButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { stunumqueryButton_actionPerformed(e); } }); allrecordButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { allrecordButton_actionPerformed(e); } }); contentPane.add(teleField, new XYConstraints(211, 370, 70, 29)); contentPane.add(label1, new XYConstraints(44, 315, 41, 29)); contentPane.add(stunumField, new XYConstraints(88, 315, 70, 29)); contentPane.add(label2, new XYConstraints(163, 315, 48, 29)); contentPane.add(nameField, new XYConstraints(212, 315, 70, 29)); contentPane.add(label3, new XYConstraints(293, 315, 35, 29)); contentPane.add(ageField, new XYConstraints(329, 315, 70, 29)); contentPane.add(label4, new XYConstraints(405, 315, 31, 29)); contentPane.add(sexField, new XYConstraints(440, 315, 70, 29)); contentPane.add(label5, new XYConstraints(42, 370, 44, 29)); contentPane.add(departmentField, new XYConstraints(89, 370, 70, 29)); contentPane.add(label6, new XYConstraints(163, 372, 49, 29)); contentPane.add(label7, new XYConstraints(292, 371, 67, 29)); contentPane.add(emailField, new XYConstraints(361, 370, 102, 29)); contentPane.add(addrecordButton, new XYConstraints(52, 416, 85, 32)); contentPane.add(deleteButton, new XYConstraints(147, 416, 85, 32)); contentPane.add(refreshButton, new XYConstraints(241, 416, 85, 32)); contentPane.add(stunumqueryButton, new XYConstraints(336, 416, 85, 32)); contentPane.add(allrecordButton, new XYConstraints(430, 416, 85, 32)); createtable(); // 在初始化函數(shù)中調(diào)用createtable()函數(shù)顯示表格 } void createtable() { // 定義createtable()函數(shù) JTable table; // 聲明一個(gè)JTable類對(duì)象table JScrollPane scroll; // 聲明一個(gè)滾動(dòng)杠對(duì)象scroll vector = new Vector(); // 創(chuàng)建向量對(duì)象 tm = new AbstractTableModel() { // 創(chuàng)建AbstractTableModel類對(duì)象tm public int getColumnCount() { // 取得表格列數(shù) return title.length; } public int getRowCount() { // 取得表格行數(shù) return vector.size(); } public Object getValueAt(int row, int column) { // 取得單元格中的屬性值 if(!vector.isEmpty()) { return ((Vector)vector.elementAt(row)).elementAt(column); } else { return null; } } public void setValueAt(Object value, int row, int column) { // 數(shù)據(jù)模型不可編輯,該方法設(shè)置為空 } public String getColumnName(int column) { // 取得表格列名 return title[column]; } public Class getColumnClass(int c) { // 取得列所屬對(duì)象類 return getValueAt(0,c).getClass(); } public boolean isCellEditable(int row, int column) { // 設(shè)置單元格不可編輯,為缺省實(shí)現(xiàn) return false; } }; table = new JTable(tm); // 生成自己的數(shù)據(jù)模型 table.setToolTipText("Display Query Result"); // 設(shè)置幫助提示 table.setAutoResizeMode(table.AUTO_RESIZE_OFF); // 設(shè)置表格調(diào)整尺寸模式 table.setCellSelectionEnabled(false); // 設(shè)置單元格選擇方式 table.setShowHorizontalLines(true); // 設(shè)置是否顯示單元格之間的分割線 table.setShowVerticalLines(true); scroll = new JScrollPane(table); // 給表格加上滾動(dòng)杠 scroll.setBounds(6,20,540,250); contentPane.add(scroll,new XYConstraints(6, 20, 540, 250)); } protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void addrecordButton_actionPerformed(ActionEvent e) {// 處理addrecordButton(添加按鈕)的ActionEvent try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 實(shí)例化JDBC-ODBC橋的驅(qū)動(dòng) String url = "jdbc:odbc:TestDbStu"; // 設(shè)置連接字符串 connection = DriverManager.getConnection(url); // 連接數(shù)據(jù)庫(kù) // 創(chuàng)建Statement接口對(duì)象 statement = connection.createStatement(); String sql1 = "insert into studentbase (學(xué)號(hào),姓名,年齡,性別,系名) values (" + Integer.parseInt(stunumField.getText()) +", '" + nameField.getText()+"'," +Integer.parseInt(ageField.getText())+",'"+sexField.getText()+"',"+"'"+departmentField.getText()+ "')"; String sql2 = "insert into studentaddress (電話,Email地址,學(xué)號(hào)) values (" + "'" + teleField.getText()+"','" + emailField.getText()+"',"+Integer.parseInt(stunumField.getText())+")"; statement.executeUpdate(sql2); // 執(zhí)行增加新的數(shù)據(jù)記錄語(yǔ)句,向studentaddress 表中添加記錄 statement.executeUpdate(sql1); // 執(zhí)行增加新的數(shù)據(jù)記錄語(yǔ)句,向studentbase表中添加記錄 // 清空信息框 stunumField.setText(""); nameField.setText(""); ageField.setText(""); sexField.setText(""); departmentField.setText(""); teleField.setText(""); emailField.setText(""); } catch(SQLException ex){ // 捕捉異常 System.out.println("\nERROR:----- SQLException -----\n"); while (ex != null) { System.out.println("Message: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("ErrorCode: " + ex.getErrorCode()); ex = ex.getNextException(); } } catch(Exception ex ) { ex.printStackTrace(); } finally { try { if(statement != null) { statement.close(); // 關(guān)閉Statement接口實(shí)例 } if(connection != null) { connection.close(); // 關(guān)閉Connection接口實(shí)例 } } catch (SQLException ex) { System.out.println("\nERROR:----- SQLException -----\n"); System.out.println("Message: " + ex.getMessage( )); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("ErrorCode: " + ex.getErrorCode()); } } }
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -