如何使这个jtable可滚动

时间:2014-01-28 17:45:51

标签: java swing jtable jscrollpane

当我尝试在表格中放置一个垂直滚动窗格时,表格ctab就会消失。这是代码:

    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();

如何让这个表可滚动?

1 个答案:

答案 0 :(得分:3)

我在您发布的代码中没有看到您使用JScrollPane处理任何地方。而是您的代码显示您将JTable直接放入contentPane。

解决方案是

  • 将JTable放入JScrollPane的视口中。您可以通过将JTable传递给JScrollPane的构造函数,或者通过调用JScrollPane上的setViewportView(...)并传入JTable来完成此操作。
  • 然后将JScrollPane而不是JTable放入GUI中。
  • 了解并使用Swing布局管理器。使用null布局和setBounds的绝对定位将导致您难以升级GUI。

有用的教程链接: