【问题标题】:Confusion about Layout Managers to use对布局管理器的使用感到困惑
【发布时间】:2012-09-21 08:23:01
【问题描述】:

我正在使用 Java 创建一个简单的游戏。我使用 JFrame 创建了游戏菜单。我对用于将菜单按钮(开始、高分、说明、退出)放置在中心的布局感到困惑。我有一个方法是: 创建一个三列的网格布局,并在中间列中添加一个位于该列中心的框布局(具有菜单按钮)。

我应该使用这种方法吗?如果没有,请告诉我解决方案。

【问题讨论】:

标签: java swing user-interface awt layout-manager


【解决方案1】:

使用GridBagLayout

JButton startButton = new JButton("Start");
JButton scoreButton = new JButton("High Score");
JButton instructButton = new JButton("Instructions");
JButton exitButton = new JButton("Exit");

GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = java.awt.gbc.HORIZONTAL;
gbc.insets = new java.awt.Insets(2, 2, 2, 2);
gbc.gridx = 0;
gbc.gridy = 0;
getContentPane().add(startButton, gbc);

gbc.gridy = 1;
getContentPane().add(scoreButton, gbc);

gbc.gridy = 2;
getContentPane().add(instructButton, gbc);

gbc.gridy = 3;
getContentPane().add(exitButton, gbc);

【讨论】:

  • 感谢它确实有效,但我在理解与这些布局相关的一些术语时有些困惑。但我认为 MADProgrammer 而不是 gbc.insets = java.awt.gbc.HORIZONTAL,应该是 gbc.insets = GridBagLaoutConstraints.HORIZONTAL,再次感谢您的帮助
  • 疯狂的程序员!你的按钮外观和感觉与我的不同。矩形按钮正在显示,但我必须做些什么才能获得上述外观。
  • 我使用默认的系统外观(在本例中为 Windows),即 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
【解决方案2】:

Madprogrammer 是对的,使用 gridbaglayout。我自己实际上懒得和布局管理器混在一起,所以我使用 WindowBuilder for Eclipse SDK。在谷歌上搜索它。 WindowBuilder 具有双向代码生成功能(即,它可以解析 swing 代码,然后根据您在 gui 中执行的操作生成它),并且全部拖放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2012-03-04
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    相关资源
    最近更新 更多