Java - 组合框高度随框架高度而变化

时间:2015-02-16 07:57:47

标签: java

我有一个框架,其中包含一个带有组合框和一些按钮的垂直工具栏。组合框占用工具栏中的最大高度。为什么?以及如何解决这个问题?有没有办法来修复组合框的大小?

代码:

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.border.BevelBorder;

public class Clipping extends JPanel {

    public Clipping()
    {
        setLayout(new BorderLayout());
        JToolBar toolbar = new JToolBar(JToolBar.VERTICAL);
        CreateToolBarButtons(toolbar);
        toolbar.setFloatable(false);
        toolbar.setBorder(new BevelBorder(BevelBorder.RAISED));
        add(toolbar, BorderLayout.WEST);
    }

    private static void CreateToolBarButtons(JToolBar toolbar)
    {
        String[] cboList = {"Line", "Polygon"};
        JComboBox cboDraw = new JComboBox(cboList);
        JButton btnClip = new JButton("Set clip area");
        JButton btnClear = new JButton("Clear");
        toolbar.add(cboDraw);
        toolbar.addSeparator();
        toolbar.add(btnClip);
        toolbar.addSeparator();
        toolbar.add(btnClear);
    }

    public static void main(String[] args) 
    {
        CreateFrame();
    }

    private static void CreateFrame()
    {
        JFrame frame = new JFrame("Clipping");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new Clipping());
        frame.setSize(500,500);
        frame.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:0)

JToolbar使用BoxLayoutJComboBox有问题。有关解决方案,请参阅this question。而不是创建一个子类,尝试在组合框上setMaximumSize使用您喜欢的高度。