如何使这个jtable可滚动



当我试图在表中放置垂直滚动窗格时,表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();

如何使此表可滚动?

在您发布的代码中,我看不到您在哪里处理JScrollPane。相反,您的代码显示您将JTable直接放置到contentPane中。

解决方案是

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

有用的教程链接:

  • Java教程
  • JScrollPane教程
  • 布局管理器教程
  • JTable教程

最新更新