mysql> SET NAMES 'big5'; \\ Use this first
/*
* 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 colname;
private ArrayList data;
public MyTableModel(ResultSet rs)
{
try{
// 取得欄位數量
ResultSetMetaData rm = rs.getMetaData();
int cnum = rm.getColumnCount();
colname = new ArrayList(cnum);
// 取得欄位名稱
for(int i=1; i<=cnum; i++){
colname.add(rm.getColumnName(i));
}
// 取得列
data = new ArrayList();
while(rs.next()){
ArrayList rowdata = new ArrayList();
for(int i=1; i<=cnum; i++){
rowdata.add(rs.getObject(i).toString());
}
data.add(rowdata);
}
}
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;
// ?useUnicode=true&characterEncoding=big5 very important
String url = "jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=big5";
String user = "testuser";
String password = "test623";
try {
conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
String qry = "SELECT * FROM tabaco";
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
}
Reference :
- http://www.javaworld.com.tw/jute/post/view?bid=21&id=35895&sty=1&tpg=1&age=0
0 意見:
張貼留言