如何在JToolBar中的两个按钮之间添加间隙?

3
我需要在这两个按钮之间添加一个简单的间隙/空白/边距等。不幸的是,我无法实现它。有人能给我一些建议吗?
这基于BorderLayout,按钮位于JToolBar中。
2个回答

5
包含这些按钮的JPanel上使用了什么布局?您可以使用BoxLayout并添加Box.createHorizontalStrut()。
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
buttonPanel.add(playButton);
buttonPanel.add(previousButton);
buttonPanel.add(Box.createHorizontalStrut(25));
buttonPanel.add(stopButton);
buttonPanel.add(Box.createHorizontalGlue());

布局必须是BorderLayout。 - user2061853
为什么?你确定主内容窗格的布局不是边框布局吗? - Kevin Workman
不要这样做,主内容窗格使用BorderLayout,每个添加到BorderLayout的组件都使用BoxLayout。在BorderLayout中使用另一个BorderLayout很奇怪。 - Dawood ibn Kareem
抱歉,JPanel上使用的是BorderLayout布局,但这些按钮却在JToolBar中。 - user2061853
我的建议对于JToolBar也是一样的。先试试看,然后再提出更具体的问题。 - Kevin Workman
请注意,您可以将工具栏的布局设置为 BoxLayout。我已经在工具栏中使用了 FlowLayout 并取得了良好的效果。这比使用一个带有布局的面板(添加到工具栏)要好,至少有以下几个原因:1)工具栏可能会在其后面使用渐变颜色,而固定颜色面板不会复制它(除非使用 setOpaque(false))。2)操作可以直接添加到工具栏,但不能添加到面板。3)当然,工具栏将具有其自己的、特定于 PLAF 的分隔符(在某些 PLAF 中是不可见的,在其他 PLAF 中是可见的)。 - Andrew Thompson

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接