如何使我的Swing JComboBox水平展开而不是垂直展开?

时间:2012-10-12 18:29:43

标签: java swing jscrollpane jcombobox jpopup

我正在使用Swing并将JComboBox添加到JPanel。通常,当您单击JComboBox时,它会垂直枚举可能的选项(类似于任何网站上的组合框)。

但是,我想让ComboBox水平扩展 - 有没有办法在不编写自定义渲染器的情况下执行此操作?

垂直扩张

[ ComboBox ]

- Option
- Option
- Option

横向扩展

[ ComboBox ] -- [ Option | Option | Option | Option ]

1 个答案:

答案 0 :(得分:1)

我很确定你问题的答案是“不”。您将不得不构建至少部分渲染器来为您执行此操作。但这是一个开始:

//Override the createPopup method - everything else can stay the same
public static CustomRenderer extends MetalComboBoxUI{
    @Override
    protected ComboPopup createPopup() {
        // Do something different here
        ComboPopup result = super.createPopup();
        return result;
    }
}

您需要使用box.setUI(new CustomRenderer());

在要应用的ComboBox上安装此UI