2014-01-07 82 views
0

你好我在JScrollPane中顯示我的JTable時出現問題。Java jTable在jScrollPane中不可見

這是我的代碼:

table = new JTable(); 
    table.setBounds(16, 203, 362, 16); 
    //getContentPane().add(table); 
    table.setShowHorizontalLines(true); 
    table.setShowVerticalLines(true); 
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    table.setModel(new DefaultTableModel(
     new Object[][] { 
      {"2", "DN Korina", "200"}, 
     }, 
     new String[] { 
      "QTY", "Item Code", "Amount" 
     } 
    )); 
    table.getColumnModel().getColumn(0).setPreferredWidth(105); 
    table.getColumnModel().getColumn(1).setPreferredWidth(244); 
    table.getColumnModel().getColumn(2).setPreferredWidth(220); 
    table.setBackground(Color.PINK); 
    JTableHeader header = table.getTableHeader(); 
    header.setBackground(Color.yellow); 
    JScrollPane scrollPane = new JScrollPane(table); 
    scrollPane.setBounds(16, 480, 359, -240); 
    getContentPane().add(scrollPane); 

我使用windowbuilder親,我無法看到JScrollPane的設計視圖。如果我刪除JScrollPane並讓JTable單獨運行,則JTable是可見的。但我看不到標題。我讀過這個來查看JTable的頭文件,JTable必須放在JScrollPane中。任何想法爲什麼我看不到我的JScrollPane和JTable?謝謝。

+1

使用佈局管理器,你的問題將消失 – Reimeus

+1

@Reimeus我使用AbsoluteLayout。這有什麼問題嗎? – Dunkey

+0

不要設置邊界。一個佈局_other_比AbsoluteLayout –

回答

1

最後,我得到它的工作!

我爲JTable和JScrollPane設置了相同的邊界。

table = new JTable(); 
table.setBounds(16, 203, 362, 16); 


scrollPane.setBounds(16, 203, 362, 266); 
+1

將容器的佈局設置爲BorderLayout,沒有更多問題 – MadProgrammer

+0

@MadProgrammer對於此應用程序,我使用的是AbsoluteLayout。 – Dunkey

+1

'LayoutManager'旨在克服開發GUI應用程序時出現的問題。您無法控制字體,也無法控制這些字體在不同系統上的顯示效果,其中最明顯的就是這些字體。雖然絕對佈局經理「看起來」很好開始,準備花費你的餘生調整它... – MadProgrammer