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