我的JScrollPane
有一个使用SpringLayout
的视图组件。
final JPanel panel = new JPanel(new SpringLayout());
// add stuff to panel here
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
getContentPane().add(scrollPane);
JScrollPane
似乎不起作用,我们将非常感谢任何帮助!
答案 0 :(得分:3)
除非您明确设置了滚动窗格的首选大小,否则滚动窗格会根据其九个组件的首选大小(视口,如果存在,还有两个滚动条,行和列标题,和四个角落)。最大的因素,也是大多数程序员关心的因素,是用于显示客户端的视口的大小。
因此您必须在setPreferedSize(Dimension d)
实例
JScrollPane
final JPanel panel = new JPanel(new SpringLayout());
// add stuff to panel here
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setPreferredSize(new Dimension(300, 300));
add(scrollPane);
或覆盖用作查看端口的getPreferredSize()
/组件的JPanel
final JPanel panel = new JPanel(new SpringLayout()) {
@Override
public Dimension getPreferredSize() {
return new Dimension(300, 300);
}
};
// add stuff to panel here
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
add(scrollPane);
其他说明:
不要不必要地延长JFrame
课程。
只需在add(..)
实例上调用JFrame
,因为呼叫转发到 contentPane 。