2012-08-07 101 views
2

我想添加一个JTable到JTabbedPane。它很好,但是,列的标题是不可见的。将JTable添加到JTabbedPane?

这里是我的代码relavent点点滴滴:

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
  1. 添加JTableJScrollPane然后TableHeader应该是可见的,然后将JScrollPane添加到JTabedpane,否则必须以编程方式添加TableHeader

  2. 不叫model.fireTableStructureChanged();,这一事件在使用DefaultTableModel

  3. 更好的可能是创建列,添加行,这两个值付诸DefaultTableModelObjectVector

  4. 补充的是正确实现此型号为JTable,例如table = new JTable(myModel);

0

而不是增加你的JTabbedPane中的滚动面板,然后你的表为tabbedpane的,只是增加你的选项卡窗格到您的帧(F),然后滚动面板添加到该选项卡1,然后设置该表是滚动窗格的视口。

结构:

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

     } 
     tab 3 { 

     } 
    } 
}