線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3732
推到 Plurk!
推到 Facebook!

關於jtable更新問題,請各位指教.多謝

缺席
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-26 11:42:54 IP:202.175.xxx.xxx 訂閱
這是一個jtable的操作

import java.sql.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.io.*;
public class TT {
private static String[] RowCount,ColumnCount,ColumnName;//定義陣列,行數,欄數,欄位名稱
private static int Column=0;//定義欄數
private static DefaultTableModel DTM ;//定莪一個表格式
private static JTable JT ;//定莪一個表類別
static final String DB="sun.jdbc.odbc.JdbcOdbcDriver";
static final String URL="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};"
"DBQ=C:\\ABC.mdb";
/**
* @param args
*/

public TT(){
DTM=null;
JT=null;
Column=0;;
}

public static void main(String[] args) {
}

public static JTable CT(String SQL) {

try
{
//連接ado access
Class.forName(DB);
Connection Conn=DriverManager.getConnection(URL);//連接access
Statement SetQuery=Conn.createStatement();//產生一個query
ResultSet GetResult=SetQuery.executeQuery(SQL);//產生sql指令
ResultSetMetaData GetData=GetResult.getMetaData();//連收數據
//

Column=GetData.getColumnCount();//得出欄數
ColumnCount=new String[Column];//設定欄數

for(int i=0;i {
ColumnCount[i]=GetData.getColumnName(i 1);//得出table欄數名稱
}
DTM=new DefaultTableModel(ColumnCount,0);//初次設定表格式
JT=new JTable(DTM);//設定表為jtable類別
// JScrollPane s = new JScrollPane(JT);//產生一個ScrollPane
// F.add(s);
while (GetResult.next())//取出數據
{
RowCount=new String[Column];//設定每行欄數
for(int i=0;i {
RowCount[i]=GetResult.getString(i 1);//取出每行每欄數據
} //行數
DTM.insertRow(DTM.getRowCount(),RowCount);//插入每行數據
}
DTM.fireTableDataChanged();
JT.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}
catch(Exception e){System.out.println(e);}
// F.setLocation(200,200);//設定from的位置
// F.setSize(640,480);//設定from大小
// F.setVisible(true);//顯示from
return JT;
}
}


這是操作介面

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.JTable;
import javax.swing.event.*;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.sql.*;
import java.awt.event.*;
import java.awt.Dimension;
import java.awt.GridLayout;
public class ShowTableDemo extends JPanel {
public static JTextArea jTextArea= new JTextArea("select * from ABC ");
public static JButton jButton=new JButton("Select");
public static TT tt=new TT();
public static JScrollPane jScrollPane ;
public static JTable jTable;
public static JFrame jFrame = new JFrame("ShowTableDemo");


private class do1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
tt=new TT();
jTable=tt.CT(jTextArea.getText());
jTable.repaint();
jTable.updateUI();
repaint();
System.out.println("jButton onclick" '\n' jTextArea.getText());
}
}
public ShowTableDemo() {
super(new GridLayout(3,1));
tt=new TT();
jTable=tt.CT("select * from ABC ");
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
jScrollPane = new JScrollPane(jTable,v,h);
jButton.addActionListener(new do1());
add(jTextArea);
add(jScrollPane);
add(jButton);
}
private static void createAndShowGUI() {
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ShowTableDemo newContentPane = new ShowTableDemo();
newContentPane.setOpaque(true); //content panes must be opaque
jFrame.setContentPane(newContentPane);
jFrame.setBounds(300,300,500,200);
jFrame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}


我的問題是..我想動態更改sql指令令jtable更新.但我不知如何下手.
請各位指教.多謝
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-26 15:00:12 IP:202.175.xxx.xxx 訂閱
把操作介面更改如下就可以

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.JTable;
import javax.swing.event.*;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.sql.*;
import java.awt.event.*;
import java.awt.Dimension;
import java.awt.GridLayout;
public class ShowTableDemo extends JPanel {
public static JTextArea jTextArea= new JTextArea(" select * from abc ");
public static JButton jButton=new JButton("Select");
public static TT tt=new TT();
public static JScrollPane jScrollPane ;
public static JTable jTable;
public static JFrame jFrame = new JFrame("ShowTableDemo");
public static int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
public static int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;


private class do1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
tt=new TT();
jTable=tt.CT(jTextArea.getText());
jTable.validate();
jFrame.getContentPane().remove(1);
jScrollPane = new JScrollPane(jTable,v,h);
jFrame.getContentPane().add(jScrollPane,1);
jFrame.validate();

System.out.println("jButton onclick" '\n' jTextArea.getText());
}
}
public ShowTableDemo() {
super(new GridLayout(3,1));
tt=new TT();
jTable=tt.CT("select * from abc ");
jScrollPane = new JScrollPane(jTable,v,h);
jButton.addActionListener(new do1());
add(jTextArea);
add(jScrollPane);
add(jButton);
}
private static void createAndShowGUI() {
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ShowTableDemo newContentPane = new ShowTableDemo();
newContentPane.setOpaque(true); //content panes must be opaque
jFrame.setContentPane(newContentPane);
jFrame.setBounds(300,300,500,200);
jFrame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

給同我一樣的新手參考..望高手多多指教
系統時間:2024-05-06 9:09:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!