如何在java中更改ComboBox的长度?

时间:2014-10-26 08:38:17

标签: java user-interface layout combobox

我有一个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只是不适合任何事情?

1 个答案:

答案 0 :(得分:1)

  

每个选项有四行,

尝试将文本作为HTML添加到组合框中。然后,您可以控制文本的换行符。类似的东西:

comboBox.addItem("<html>line1<br>line2<br>line3<br>line4</html>");