JToolbar:JToggleButton 对齐

JToolbar: JToggleButton Alignment

我试图在 JToolBar 中对齐 JToggleButtons。我希望按钮垂直并向左对齐。我的代码如下:

JToolBar toolbar = new JToolBar();
toolbar.setLayout(new FlowLayout());
toolbar.setAlignmentX(FlowLayout.LEFT);
toolbar.add(new JToggleButton("Test"));
toolbar.add(new JToggleButton("Test2"));
toolbar.add(new JToggleButton("Test3"));
toolbar.add(new JToggleButton("Test with a long name"));

结果是这样的。

此外,当停靠在左侧时,它看起来像这样。理想情况下,我希望按钮垂直堆叠(并且仍然保持向左对齐)。有什么建议吗?

理想的结果应该是这样的:

I want the buttons to align to the left

这是 JToolBar 的默认行为。布局管理器就不用玩了

I want the buttons to stack on each other vertically

同样,这是与默认布局管理器一起使用时的默认行为。

阅读有关 How to Use Tool Bars 的 Swing 教程部分,了解更多信息和工作示例。

FlowLayout 只能在水平行中布置组件,像文本在页面上“流动”的方式环绕。

您可以更改为垂直 BoxLayout:toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.PAGE_AXIS)); 或通过调用构造函数 new JToolBar(SwingConstants.VERTICAL)

获得相同的效果(因为 JToolBar 默认使用 BoxLayout)

要左对齐,不过,我相信您需要为 each 您添加的组件调用 setAlignmentX(FlowLayout.LEFT),而不是工具栏本身或其布局。例如,参见 the BoxLayout tutorial.