Java 在JScrollPane中调整JPanel的大小-永远不要小于viewport

Java 在JScrollPane中调整JPanel的大小-永远不要小于viewport,java,swing,jpanel,jscrollpane,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()

我创建了一个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);

我看到一个灰色的闪烁(视口的背景显示通过),这表明面板的大小是我想要的,但后来增长到视口的大小。如何停止此操作?

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

要控制JViewport内视图的大小,让它实现接口。如果没有,它总是强制调整视口的大小

谢谢,成功了。只需将所有内容设置为返回null/0/false。谢谢,这很有效。只需将所有内容设置为返回null/0/false。