我有一个ComboBox每个选项有四行,当我选择一个选项时,它只会显示一行,所以我想知道我是否可以让我的comboBox更大。
我的组合框new看起来像这样
|some text here |
我希望我的组合框看起来像
|some text here|
|some text here|
|some text here|
我尝试过自定义渲染器实现ListCellRenderer,但它似乎无法正常工作。
public class ComboBoxRenderer extends JLabel implements ListCellRenderer{
public ComboBoxRenderer(){
setOpaque(true);
setHorizontalAlignment(CENTER);
setVerticalAlignment(CENTER);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = new JLabel(){
public Dimension getPreferredSize(){
return new Dimension(200, 100);
}
};
label.setText(String.valueOf(value));
return label;
}
}
allBuyer = new JComboBox<Buyer>();
ComboBoxRenderer renderer= new ComboBoxRenderer();
renderer.setPreferredSize(new Dimension(200,130));
allBuyer.setRenderer(renderer);
还有其他方法可以改变组合框的长度吗? 有人能帮助我吗?
编辑: 它真的很奇怪!我在MAC上使用Eclipse,所有我得到了一行,而我尝试在Windows上使用NetBeans,同样的程序,它工作!!
有原因吗?或MAC只是不适合任何事情?
答案 0 :(得分:1)
每个选项有四行,
尝试将文本作为HTML添加到组合框中。然后,您可以控制文本的换行符。类似的东西:
comboBox.addItem("<html>line1<br>line2<br>line3<br>line4</html>");