2013-04-17 85 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