我有一个框架,其中包含一个带有组合框和一些按钮的垂直工具栏。组合框占用工具栏中的最大高度。为什么?以及如何解决这个问题?有没有办法来修复组合框的大小?
代码:
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);
}
}
答案 0 :(得分:0)
JToolbar
使用BoxLayout
,JComboBox
有问题。有关解决方案,请参阅this question。而不是创建一个子类,尝试在组合框上setMaximumSize
使用您喜欢的高度。