2011-05-07 56 views
0

嘿,我需要你的幫助code below。我使用NetBeans,我有一個用戶界面,我需要更新一個現有的滾動表與我動態創建的表,但我無法找到任何方式來做這最後3天,你能幫我在這一點?java運行表格表更新問題表格應用程序

dbcon.Connect(); 

String[] columnNames = {"First Name", 
      "Last Name", 
      "Sport", 
      "# of Years", 
      "Vegetarian"}; 
Object[][] data = { 
    {"Kathy", "Smith", 
    "Snowboarding", new Integer(5), new Boolean(false)}, 
    {"John", "Doe", 
    "Rowing", new Integer(3), new Boolean(true)}, 
    {"Sue", "Black", 
    "Knitting", new Integer(2), new Boolean(false)}, 
    {"Jane", "White", 
    "Speed reading", new Integer(20), new Boolean(true)}, 
    {"Joe", "Brown", 
    "Pool", new Integer(10), new Boolean(false)}}; 

DefaultTableModel dtm = new DefaultTableModel(data,columnNames); 
JTable table = new JTable(dtm); 
// i created this table and can't update an existing Jscrollpane :(

正是我需要一種方法來填充重繪新表到現有的滾動窗格

任何想法的表?

+0

的[示例](http://download.oracle.com/javase/tutorial/uiswing/examples/components/SimpleTableDemoProject/src/components/ SimpleTableDemo.java)從其中(大部分)被複制工作正常。如果這是一個真正的問題,請澄清。 – trashgod 2011-05-07 17:43:53

回答

1

如果我正確地閱讀這個問題,海報要更新「現有」滾動窗格。

如果是這種情況,那麼你就去做:

scrollPane.setViewportView(table); 

但是,如果你已經在滾動有一個表,那麼你甚至都不需要創建一個新的JTable。所有你需要做的是更新表的模型:

DefaultTableModel model = new DefaultTableModel(...); 
table.setModel(model): 
+0

是是是這就是我想要的。 非常感謝我的朋友:)) – 2011-05-08 09:04:28

2

您是否嘗試過查看JScrollPane documentation?我認爲應該這樣做這樣應該工作:

DefaultTableModel dtm = new DefaultTableModel(data,columnNames); 
table = new JTable(dtm); 
JScrollPane scrollPane = new JScrollPane(table); 
this.add(scrollPane, BorderLayout.CENTER); 
+0

多數民衆贊成多數民衆贊成在多數民衆贊成在這個問題上,我不能使用netbeans tis.add它不允許我這樣做,因爲我自動craete UI代碼,我需要更新現有的滾動條或表 – 2011-05-07 17:35:11

+0

@Utku如果IDE的「功能」阻礙你,不要使用它;-) @Kyle不是解決問題的方法,因爲我理解(​​當然,我的理解可能是錯的):它是關於動態更新/設置_data_在這種情況下重新創建視圖是錯誤的。 – kleopatra 2011-05-08 11:20:55