我有一个JTable,它有无法放入的记录,所以我决定添加滚动条。但是,滚动条没有出现。我做错了什么?
new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setBounds(10, 73, 850, 850);
根据答案,我现在是这样的:
JScrollPane panel = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
panel.setBounds(10, 73, 850, 850);
contentPane.add(table);
现在这张桌子甚至都没有显示。
contentPane.add(表);
您正在从滚动窗格中删除该表。
您必须将滚动窗格添加到框架中。代码应该是:
contentPane.add(panel);
此处:
table.setBounds(10, 73, 850, 850);
通过限制JTable的大小,防止它在需要时过期(从而显示JScrollPane的滚动条),这是在自食其果。
永远不要设置任何组件的绝对大小,避免空布局,而是让组件的首选大小和布局管理器为您这样做。你的错误是一个常见的新手错误,因为似乎通过自己设置事物的所有大小和位置来创建复杂的GUI应该更容易,但你很快就会发现这是一个谬论,当你这样做时,你不必要地限制了GUI的灵活性和可更新性,而且你会发现,除了你自己的平台和屏幕分辨率之外,它在所有平台和屏幕上都会看起来很糟糕。再次学习并使用布局管理器。