2014-01-28 79 views
0

當我嘗試在表中放置一個垂直滾動窗格時,表ctab只是消失。這裏是代碼:如何使這個jtable可滾動

ctab = new JTable(); 
    ctab.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 



    ctab.setBounds(15, 97, 780, 347); 
    frmKusinaNiKambal.getContentPane().add(ctab); 
      ctab.setModel(new DefaultTableModel(
       new Object[][] { 
        {"", "", null, null, null, null, null, null, null}, 
       }, 
       new String[] { 
        "Contract #", "Engager", "Contact #", "Client Address", "Date", "Time", "Event Address", "Contract FilePath", "Referred By" 
       } 
      ) { 
       boolean[] columnEditables = new boolean[] { 
        false, false, false, false, false, false, false, false, false 
       }; 
       public boolean isCellEditable(int row, int column) { 
        return columnEditables[column]; 
       } 
      }); 
      ctab.getColumnModel().getColumn(3).setPreferredWidth(102); 
      ctab.getColumnModel().getColumn(4).setPreferredWidth(62); 
      ctab.getColumnModel().getColumn(5).setPreferredWidth(41); 
      ctab.getColumnModel().getColumn(6).setPreferredWidth(95); 
      ctab.isEnabled(); 

我怎樣才能得到這張表是可滾動的?

回答

3

我在您的發佈代碼中看不到您使用JScrollPane處理任何地方的地方。相反,您的代碼顯示您將JTable直接放入contentPane。

的解決方案是

  • 地方JTable中到一個JScrollPane的視口。您可以通過將JTable傳遞到JScrollPane的構造函數中,或通過在JScrollPane上調用setViewportView(...)並傳遞JTable來完成此操作。
  • 然後將JScrollPane,而不是JTable放到您的GUI中。
  • 瞭解和使用Swing佈局管理器。使用空佈局和setBounds進行絕對定位會導致難以升級GUI。

有用的教程鏈接:

+0

所以我declar在JTable之前首先使用Jscrollpane? – user3209957

+0

@ user3209957:不,聲明的順序與此無關。如果您還沒有閱讀JScrollPane教程,請儘快閱讀。 –

+0

@ user3209957:教程鏈接添加到答案。 –