小编Sum*_*mik的帖子

setDefaultLookAndFeelDecorated 影响 JFrame 调整大小行为

这是我的代码:

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class Test{


public static void main(String[] args){

    SwingUtilities.invokeLater(new Runnable(){

        @Override
        public void run() {

            JFrame.setDefaultLookAndFeelDecorated(true);

            JFrame frame = new JFrame();
            JPanel jp = new JPanel();

            jp.setMinimumSize(new Dimension(200, 200));
            jp.setPreferredSize(new Dimension(200, 200));

            //frame.getContentPane().setMinimumSize(new Dimension(200, 200));
            //frame.getContentPane().setPreferredSize(new Dimension(200, 200));

            frame.getContentPane().add(jp);

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        }
    });
}
}
Run Code Online (Sandbox Code Playgroud)

它的行为完全符合我的要求。用户可以调整大小,JFrame但它总是足够大以容纳 200px x 200px JPanel。但是当我删除时:

JFrame.setDefaultLookAndFeelDecorated(true);

用户可以调整JFrame到任何大小。

为什么默认外观和感觉装饰会影响调整大小?我怎样才能让它工作没有setDefaultLookAndFeelDecorated(true)?我知道我可以手动设置帧最小尺寸 ( JFrame#setMinimumSize(new Dimension dim)),如果没有更智能的解决方案,我会这样做。

我在 Windows 7 上使用 jdk …

java swing resize jframe look-and-feel

5
推荐指数
1
解决办法
2187
查看次数

标签 统计

java ×1

jframe ×1

look-and-feel ×1

resize ×1

swing ×1