将JTable添加到JTabbedPane?

时间:2012-08-07 16:34:21

标签: java swing jtable jtabbedpane

我正在尝试将JTable添加到JTabbedPane。它很好,然而,列的标题是不可见的。

这是我的代码的相关部分:

JTabbedPane jp = new JTabbedPane();
static JTable t1 = new JTable();
static MainFrame f = new MainFrame();
static DefaultTableModel model = new javax.swing.table.DefaultTableModel(); 

    f.scroll.add(jp);
    f.scroll.setViewportView(jp);
    jp.addTab("Tab 1", null, t1, "");
    t1.setModel(model);

    model.addColumn("Description");
    model.addColumn("Change");
    model.setRowCount(1);
    model.fireTableStructureChanged();

其中f是JFrame,f.scroll是JScrollPane

2 个答案:

答案 0 :(得分:2)

  1. JTable添加到JScrollPane,然后TableHeader应该可见,然后将JScrollPane添加到JTabedpane,否则必须添加TableHeader 1}}以编程方式

  2. 请勿致电model.fireTableStructureChanged();,此事件已在使用的DefaultTableModel

  3. 中正确实施
  4. 最好是创建列,添加行,这两个值放在DefaultTableModelObjectVector

  5. 将此模型添加到JTable,例如table = new JTable(myModel);

答案 1 :(得分:0)

不是将JTabbedPane添加到滚动窗格,然后将表格添加到tabbedpane,只需将tabbedpane添加到框架(f),然后将滚动窗格添加到其中的选项卡1,然后将表格设置为滚动窗格的视口。

结构:

JFrame {
    JTabbedPane {
        Tab 1 {
            JScrollPane {
                JTable
            }
        }
        Tab 2 {

        }
        tab 3 {

        }
    }
}