用三个面板构建了一个小型测试SWING应用程序.一个主要的JPanel,包含两个较小的JPanel.一个在左侧(板面板),另一个在右侧(侧面板).通过调用min,preferred和max size方法将两个内部面板设置为请求的特定大小.右侧面板中的按钮将父JFrame设置为不可重新调整大小.一切看起来很棒,直到父框架设置为不可调整大小,这会导致(?!)框架和主面板的调整大小变大.
寻找调整大小的原因,以及可以采取哪些措施来保持主面板和框架的大小仅包围两个内部面板,并且一旦框架被冻结就不再需要.
突出显示了面板边框并添加了绘制事件记录以调试调整大小问题.
感谢您的帮助和见解!
编辑:
这个问题出现在JRE 8中.在JRE 9中它消失了,但引入了扩展问题.整个应用程序在我的4k显示器上放大,运行Windows 10.
package org.fubar;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import