/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* test2.java
*
* Created on 2011/7/11, 下午 11:39:40
*/
package test;
import java.util.*;
import javax.swing.table.*;
import java.sql.*;
/**
*
* @author luke
*/
public class test21 extends javax.swing.JFrame {
/** Creates new form test2 */
public test21() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
data_jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("列出");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
data_jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null},
{null, null}
},
new String [] {
"ID", "Name"
}
) {
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, true
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(data_jTable1);
data_jTable1.getColumnModel().getColumn(0).setResizable(false);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(jButton1)
.addGap(31, 31, 31)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE)
.addGap(204, 204, 204))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE)
.addComponent(jButton1))
.addGap(220, 220, 220))
);
pack();
}//
// 模組類別 (AbstractTableModel)import javax.swing.table.*;
class MyTableModel extends AbstractTableModel // 設定好模組
{
// import java.util.*;
private ArrayList
private ArrayList
public MyTableModel(ResultSet rs)
{
try{
// 取得欄位數量
ResultSetMetaData rm = rs.getMetaData();
int cnum = rm.getColumnCount();
colname = new ArrayList
// 取得欄位名稱
for(int i=1; i<=cnum; i++){
colname.add(rm.getColumnName(i)); //儲存欄位名稱
}
// 取得列
data = new ArrayList
while(rs.next()){
ArrayList
for(int i=1; i<=cnum; i++){
rowdata.add(rs.getObject(i).toString()); //儲存各個資料
}
data.add(rowdata); //Save data step by step
}
}
catch(Exception e){
e.printStackTrace();
}
}
public int getRowCount() //傳回列數方法
{
return data.size();
}
public int getColumnCount() //傳回欄位數方法
{
return colname.size();
}
public Object getValueAt(int row, int column) //傳回各個儲存格值的方法
{
ArrayList rowdata = (ArrayList)data.get(row);
return rowdata.get(column);
}
public String getColumnName(int column) //傳回欄位名稱的方法
{
return (String) colname.get(column);
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/testdb";
String user = "testuser";
String password = "test623";
try {
conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
String qry = "SELECT * FROM Authors";
// 進行查詢
ResultSet rs = st.executeQuery(qry);
data_jTable1.setModel(new MyTableModel(rs));
// 關閉連線
rs.close();
st.close();
conn.close();
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new test21().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTable data_jTable1;
private javax.swing.JButton jButton1;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
0 意見:
張貼留言