我有一个组合框,每个选项有四行,当我选择一个选项时,它只会显示一行,所以我想知道是否可以使我的组合框更大。
我的组合框新看起来像这样
|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 不适合任何东西?
最佳答案
have four lines each option,
尝试将文本作为 HTML 添加到组合框中。然后您可以控制文本的换行符。像这样的东西:
comboBox.addItem("<html>line1<br>line2<br>line3<br>line4</html>");
关于java - 如何改变java中ComboBox的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26571244/