【发布时间】:2015-08-07 18:39:04
【问题描述】:
我的应用程序包含丰富的 JPanel 和其他显示某些内容的 Swing 组件。我希望这些 JComponents 的尺寸独立于屏幕尺寸,例如我的 GUI 在不同的分辨率下都可以。我想在我的代码中做这样的事情
public class myPanel extends JPanel {
//constructors and other useful methods
@Override
public Dimension getPreferredSize() {
Dimension screen_size=Toolkit.getDefaultToolkit().getScreenSize();
return new Dimension (0.50*screen_size.width, 0.30*screen_size.height); }
简而言之,以屏幕尺寸的百分比为 JPanel 提供尺寸。这样好吗?没有快速的方法吗?因为我应该对我使用的每个 JComponent 都这样做。我该怎么办? PS:假设我使用了符合首选尺寸的管理器布局。
【问题讨论】:
-
您的解决方案有什么问题? “快”是什么意思——执行时间短还是编码时间短?
-
AFAIK 的首选方式是使用布局管理器并让他们决定组件的大小。屏幕大小只会影响窗口大小,布局管理器会将其传播到所有组件。如果您无法使用内置布局管理器执行您想要的操作,请查看 MigLayout 等第三方库,您可以在其中定义面板以占据 50% 的窗口宽度和 30% 的高度。跨度>
标签: java swing dimension preferredsize