Jtoolbar内部具有固定尺寸的按钮

时间:2013-06-05 19:02:35

标签: java button toolbar

理想情况下,我的工具栏中会有2列按钮,但是具有固定的尺寸(30,30)。我目前有一个网格布局,适用于布局,但按钮拉伸适合,我希望按钮保持方形。实现这一目标的最佳方法是什么?

public SpecToolbar(SpecController con) {
            super(SwingConstants.VERTICAL);
            setLayout(new GridLayout(5, 2)); 
            setFloatable(false);    

            ButtonGroup g = new ButtonGroup();

            add(new SelectorButton(con, g));
            add(new InfoButton(con));
            add(new ZoomInButton(con, g));
            add(new ZoomOutButton(con, g));
            add(new CrossButton(con, g));
            add(new GridButton(con));
            add(new BaselineUpButton(con));
            add(new BaselineDownButton(con));
            add(new PeakUpButton(con));
            add(new PeakDownButton(con));

由于

2 个答案:

答案 0 :(得分:0)

简单的答案是使用不同的布局。如果要水平对齐按钮,只需使用简单的FlowLayout即可。如果您想垂直对齐它们,请使用BoxLayoutGridBagLayoutMiGLayout.

答案 1 :(得分:0)

  

但按钮拉伸以适合

这是什么意思?由于你有2列和5行,我猜你正在将工具栏添加到BorderLayout的WEST中,这样按钮的高度会拉伸吗?

您可以通过嵌套布局来解决问题。例如:

JPanel buttonPanel = new JPanel( new GridLayout(0, 2) );
buttonPanel.add(...);
JPanel toolbarPanel = new JPanel( new BorderLayout() );
toolbarPanel.add(buttonPanel, BorderLayout.NORTH);
frame.add(toolBarPanel, BorderLayout.WEST);

现在所有按钮的大小都相同。任何额外的高度都会低于按钮,因此它们不会垂直拉伸。