java - 如何使面板中的按钮居中

标签 java position jpanel jbutton

虽然我使用的是 BorderLayout.CENTER,但我的按钮组似乎仍然与面板的北部对齐。如果我使用 BorderLayout.SOUTH,它们的相对位置与 BorderLayout.CENTER 相同,但在面板的南边。

如何让它们位于面板中间?

我所做的事情有明显错误吗?

public void createExecuteArea() {

      JButton connectButton = new JButton("Connect");
      connectButton.setPreferredSize(new Dimension(100, 40));
      JButton disconnectButton = new JButton("Disconnect");
      disconnectButton.setPreferredSize(new Dimension(100, 40));
      JButton abortButton = new JButton("Abort");
      abortButton.setPreferredSize(new Dimension(100, 40));

      executePanel = new JPanel();
      executePanel.setLayout(new BorderLayout());

      JPanel buttonPanel = new JPanel();

      buttonPanel.add(connectButton);
      buttonPanel.add(disconnectButton);
      buttonPanel.add(abortButton);

      executePanel.add(buttonPanel, BorderLayout.CENTER);
   }

对我的代码进行以下更改解决了我的问题。

public void createExecuteArea() {

      JButton connectButton = new JButton("Connect");
      connectButton.setPreferredSize(new Dimension(100, 40));
      JButton disconnectButton = new JButton("Disconnect");
      disconnectButton.setPreferredSize(new Dimension(100, 40));
      JButton abortButton = new JButton("Abort");
      abortButton.setPreferredSize(new Dimension(100, 40));

      executePanel = new JPanel(new GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();

      JPanel buttonPanel = new JPanel();

      buttonPanel.add(connectButton);
      buttonPanel.add(disconnectButton);
      buttonPanel.add(abortButton);

      executePanel.add(buttonPanel, c);
   }

最佳答案

问题在于executePanel 及其使用的布局。您没有给它明确的布局,因此它默认使用 BorderLayout。如果您想在此 JPanel 中居中放置按钮,请考虑使用不同的布局,也许是 GridBagLayout。

如需更具体的帮助,请考虑创建并发布 minimal example program .

关于java - 如何使面板中的按钮居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709232/

相关文章:

javascript - 如何在滚动时在浏览器顶部制​​作粘性菜单?

javascript - 在固定位置 Div 中水平居中文本

html - 与 float 和 margin 相关的奇怪行为

java - JFrame中如何排列多个面板

java - 如何摆脱 java swing 中 JPanel 中的额外填充

java - 如何使 jPanel 可滚动

java - 更新 Java ArrayList 中的值

java - 如何登录linux服务器?

java - 新的联系人类和错误 - 应用程序已停止 - Android

java - 使用不同的 jdbc 驱动程序连接到多个数据库