2013-04-17 52 views
0

我正在做一个JTable,我有2个问题。 #1表格标题显示在表格的边上,#2滚动窗格不显示。这是我现在的一些代码。表头不显示在表顶部

String [] data = {"a", "b", "c", "d", "e"}; 
JFrame frame = new JFrame("String Table"); 
JPanel middlePanel = new JPanel();    
DefaultTableModel model = new DefaultTableModel(); 
model.addColumn("String", data); 
JTable table = new JTable(model); 
JScrollPane scrollPane = new JScrollPane(table);  


frame.getContentPane().add(middlePanel, BorderLayout.CENTER); 
middlePanel.add(scrollPane); 
middlePanel.add(table.getTableHeader()); 
middlePanel.add(table); 


frame.setSize(400, 200); 
frame.setVisible(true); 

回答

2
  1. 使用唯一的代码线middlePanel.add(scrollPane);

  2. JPanel (middlePanel)应由GridLayoutBorderLayout

  3. 删除代码行middlePanel.add(table.getTableHeader());middlePanel.add(table);

  4. 移动代码线被铺放3210 middlePanel.add(scrollPane);后,并可能是frame.add(middlePanel);如果JFrame

  5. 没有改变LayoutManager删除frame.setSize(400, 200);替换frame.pack(),并通过覆盖getPreferredSize确定适当的PreferredSizeJScrollPane

+0

我遇到了另一个问题。我的表格显示非常小,并且第一列中的元素相当长,所以我需要扩展表格和列1 – user2007843

+0

更多想法以查看[here](http://stackoverflow.com/a/10089138/714968)和[这里](http://stackoverflow.com/a/9164884/714968) – mKorbel