在BoxLayout中对齐JButton

时间:2014-03-23 03:27:09

标签: java swing layout boxlayout

当前BoxLayout设置[按钮1,按钮2,按钮3 |||||||||||||||||||||||||||||||||||| |||] |表示空白空间。

如何使它出现[按钮1,按钮2,|||||||||||||||||||||||| BUTTON3] 这些按钮是JButtons,boxlayout位于北面的BorderLayout内。

private JPanel makeButtonPanel(ObservableMazeGame observableMazeGame) {
    JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
    ButtonPanel buttonPanelMaze = new ButtonPanel(observableMazeGame);
    buttonPanel.add(buttonPanelMaze.newGameButton());
    buttonPanel.add(buttonPanelMaze.helpButton());
    buttonPanel.add(buttonPanelMaze.aboutButton());
    return buttonPanel;
}

这是从

添加的
    ObservableMazeGame observableMazeGame = new ObservableMazeGame();
    JFrame baseFrame = new JFrame();
    baseFrame.setTitle("Maze Game");
    baseFrame.setLayout(new BorderLayout());
    baseFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    baseFrame.add(makeButtonPanel(observableMazeGame), BorderLayout.NORTH);
    baseFrame.pack();
    baseFrame.setVisible(true);

我只想让第3个按钮向右对齐,即使拉伸,它也会跟随拉伸。我尝试过setAlignment,但它不起作用。

1 个答案:

答案 0 :(得分:3)

在button2和button3之间使用水平胶水:

buttonPanel.add(Box.createHorizontalGlue());

有关详细信息,请参阅How to Use BoxLayout