java - 如何改变java中ComboBox的长度?

标签 java user-interface layout combobox

我有一个组合框,每个选项有四行,当我选择一个选项时,它只会显示一行,所以我想知道是否可以使我的组合框更大。

我的组合框新看起来像这样

 |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/

相关文章:

python - 在 tkinter 中是否可以有两列标签,其中一个标签位于下方和中间?

java - 引用所有 TextView

javascript - 用户单击“立即服务”中的表单按钮后验证字段

java - 如何在 Java 中使用 JSON 进行 Elasticsearch 查询?

java - 如何配置 log4j 按时间、大小和启动时滚动?

java - 如何根据 FirstName 和 LastName 生成唯一的 Id?

java - GUI 对象在 Mac 上的 Java 中不显示

android - 如何根据TextView编号分别改变一行中TextView的宽度?

html - 如何创建灵活布局的等间距div网格?

java - 在 hibernate 中关闭 import.sql