[英]JScrollPane doesn't belong to JTable
我為我的JTable添加了JScrollPane。 它出現了,但不能滾動。
public class AddDepartment extends JFrame {
private static JPanel contentPane;
private Connection DBConnection;
static Connection conn = new DBConnection().connect();
static PreparedStatement pstmt = null;
static ResultSet rs = null;
static DefaultTableModel model = null;
private static JTable tableDepartments;
private static JScrollPane scrollPane;
public AddDepartment() throws SQLException {
model = new DefaultTableModel();
tableDepartments = new JTable(model);
tableDepartments.setRowSelectionAllowed(false);
tableDepartments.setEnabled(false);
tableDepartments.setSize(new Dimension(197, 66));
tableDepartments.setLocation(161, 34);
tableDepartments.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateDepartments();
}
private static void updateDepartments() throws SQLException {
try {
String sql = "SELECT Name FROM Departments";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
model.addColumn("Name");
while (rs.next()) {
String departmentName = rs.getString("Name");
model.addRow(new Object[] { departmentName });
}
if (tableDepartments.getRowCount() > 5) {
scrollPane = new JScrollPane(tableDepartments);
scrollPane.setSize(new Dimension(10, 50));
scrollPane.setLocation(360, 34);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
contentPane.add(scrollPane);
}
contentPane.add(tableDepartments);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
} finally {
rs.close();
pstmt.close();
}
}
}
部門表:
上圖顯示了它的外觀。 我無法向下滾動。
通過限制JTable的大小:
tableDepartments.setSize(new Dimension(197, 66));
您可以防止按需調整大小,從而防止滾動。 不要這樣做,而是讓它擴展到所需的大小。 如果這不能解決您的問題,那么您將需要創建並發布有效的sscce ,該程序沒有數據庫代碼,沒有與問題無關的代碼,並且可以為我們演示您的問題。
其他問題包括過度使用static修飾符,以及您設置的絕對大小和位置(以及可能使用空布局),但這是另一個問題
編輯
您將JTable 兩次添加到GUI,一次添加到JScrollPane(好的),又一次添加到contentPane(壞的),由於您只能將一個組件添加到一個容器,所以這很麻煩。 第二個添加是從jscrollpane中刪除jtable。 解決方案:不要這樣做。 將jscrollpane添加到contentPane, 而不是 JTable。
因此擺脫:
contentPane.add(tableDepartments);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.