在JScrollPane中调整JPanel的大小 - 从不小于视口

时间:2012-07-09 04:23:55

标签: java swing jpanel jscrollpane

我已经像这样创建了一个JPanel和JScrollPane:

JPanel panel = new JPanel();
panel.setPreferredSize(5000, 5000);
JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPanel.getViewport().setBackground(Color.GRAY); //panel is white

我将使用事件处理程序动态调整面板大小。问题是,有时面板小于视口。我将面板的大小设置为:

panel.setPreferredSize(10, 10); //Just an example

但面板永远不会小于视口。我尝试使用

panel.setSize(10, 10);

我看到一个灰色的闪烁(视口的背景显示通过),这表明面板 的大小与我想要的大小相同,但随后增长到了视口的大小。我怎么能阻止这个?

1 个答案:

答案 0 :(得分:3)

要控制JViewport内部视图的大小调整,请让它实现Scrollable接口。没有,它总是被强制到视口的大小。