Java 使用多个面板、JScrollPane和setPreferredSize()时的经验法则

Java 使用多个面板、JScrollPane和setPreferredSize()时的经验法则,java,jscrollpane,Java,Jscrollpane,使用一个非常复杂的JFrame,在面板中的面板中有许多面板……你可以了解情况。如果它很简单,我会贴一个例子 主面板有4个面板,每个面板有6个左右其他面板,这些面板甚至可能有一些面板。主面板放置在JScrollPane中 JFrame会打开,当窗口变小时,滚动条就会出现,这很好,但窗口最初会打开约3/4的大小。 这意味着必须手动将窗口变大才能看到所有内容,因为滚动条只有在变小时才会出现 在处理如此多的面板层时,在此场景中工作时的经验法则是什么。setPreferredSize()应该在每个面板上执

使用一个非常复杂的JFrame,在面板中的面板中有许多面板……你可以了解情况。如果它很简单,我会贴一个例子

主面板有4个面板,每个面板有6个左右其他面板,这些面板甚至可能有一些面板。主面板放置在JScrollPane中

JFrame会打开,当窗口变小时,滚动条就会出现,这很好,但窗口最初会打开约3/4的大小。 这意味着必须手动将窗口变大才能看到所有内容,因为滚动条只有在变小时才会出现


在处理如此多的面板层时,在此场景中工作时的经验法则是什么。setPreferredSize()应该在每个面板上执行,还是只在父面板上执行,或者只在JScrollPane级别执行,或者是混合执行?

我发现在这个特定场景中,在最顶部的面板上使用setPreferredSize()解决了这个特定问题。在其他面板上调用了setPreferredSize()方法,这些方法被删除,只使用顶部面板上的调用,这似乎是关键

通常,setPreferredSize方法需要在所有不包含JComponents的最低级别JPanel上执行。如果您错过了一个,那么在主JPanel上设置首选大小将掩盖真正的问题。