【发布时间】:2011-10-28 03:26:13
【问题描述】:
谁能解释为什么 pack() 在这个 JFrame 上不起作用?
里面有一个 JPanel(实际上是一个扩展 JPanel 的类 - inner)。
这是我正在使用的代码:
inner.setPreferredSize(new Dimension(800, 600));
add(inner);
pack();
setResizable(false);
setLocationRelativeTo(null); // to center the JFrame on screen
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
额外的空间似乎是 JFrame 装饰的确切宽度和高度(即 JFrame 的尺寸减去 JPanel 的尺寸)。
【问题讨论】:
-
多余的空间在 JFrame 的底部和右侧以灰色显示。如果对比度太低,我可以再发一张。
-
你试过切换
setUndecorated(boolean v)吗? -
我想保留装饰。但如果你好奇的话,未装饰窗口的大小会更准确(不过,奇怪的是,根据我的测量,偏差了几个像素)。
-
“我可以再发一张图片。” 在考虑之前,请查看How do I create ScreenShots? 中的提示,尤其是关于“alt+printscreen”和 400x300 时的提示显示效果!
-
@AndrewThompson 我贴的截图有问题吗?
标签: java rendering jframe jpanel bufferedimage