java运行表单表更新问题表单应用程序

时间:2011-05-07 15:50:42

标签: java forms jtable jscrollpane

嘿,我需要你对code below的帮助。我使用netbeans,我有一个用户界面,我需要用我动态创建的那个表更新现有的滚动窗格,但我找不到最近3天的任何方法可以帮助我吗?

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 :(

我需要一种方法来重新填充将表重新绘制到现有滚动窗格的表格

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您是否尝试过查看JScrollPane documentation?我认为做这样的事情应该有效:

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

答案 1 :(得分:1)

如果我正确阅读了问题,海报想要更新“现有”滚动窗格。

如果是这种情况,那么你只需:

scrollPane.setViewportView( table );

但是,如果滚动窗格中已有表,则甚至不需要创建新的JTable。您需要做的就是更新表的模型:

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