2012-08-14 105 views
1

我有显示Jtable取决于从数据库的特定列和最后两列在我的jtable是图像fields.How可以动态改变列而不影响最后两列。请告诉我该怎么做。如何从数据库直接向数据填充数据

+0

dupllicate这个例子吗? http://stackoverflow.com/questions/2192764/how-to-fill-data-in-a-jtable-with-database?rq=1 – keuleJ 2012-08-14 05:42:40

回答

1

TableModel.setValueAt(Objet value, int row, int col)

3

使用Vectorjava.util.Collection

请参阅从http://www.roseindia.com

import java.sql.*; 
import java.util.*; 
import javax.swing.*; 
import javax.swing.table.TableColumn; 

public class JTableResultSet { 
    public static void main(String[] args) { 
     Vector columnNames = new Vector(); 
     Vector data = new Vector(); 
     JPanel panel = new JPanel(); // 
     try { 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      Connection con = DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/test", "root", "root"); 
      String sql = "Select name,address from user"; 
      Statement statement = con.createStatement(); 
      ResultSet resultSet = statement.executeQuery(sql); 
      ResultSetMetaData metaData = resultSet.getMetaData(); 
      int columns = metaData.getColumnCount(); 
      for (int i = 1; i <= columns; i++) { 
       columnNames.addElement(metaData.getColumnName(i)); 
      } 
      while (resultSet.next()) { 
       Vector row = new Vector(columns); 
       for (int i = 1; i <= columns; i++) { 
        row.addElement(resultSet.getObject(i)); 
       } 
       data.addElement(row); 
      } 
      resultSet.close(); 
      statement.close(); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
     JTable table = new JTable(data, columnNames); 
     TableColumn column; 
     for (int i = 0; i < table.getColumnCount(); i++) { 
      column = table.getColumnModel().getColumn(i); 
      column.setMaxWidth(250); 
     } 
     JScrollPane scrollPane = new JScrollPane(table);  panel.add(scrollPane);    
     JFrame frame = new JFrame(); 
     frame.add(panel);   //adding panel to the frame 
     frame.setSize(600, 400); //setting frame size 
     frame.setVisible(true); //setting visibility true 
    } 
} 
+0

嗨,谢谢你,先生 – kanna 2012-08-14 05:48:52