我正在使用 Swing 并将 JComboBox 添加到 JPanel。通常,当您单击 JComboBox 时,它会垂直枚举可能的选项(类似于任何网站上的组合框)。
但是,我希望 ComboBox 水平扩展 - 有没有办法在不编写自定义渲染器的情况下做到这一点?
垂直扩展
[ ComboBox ]
- Option
- Option
- Option
横向扩展
[ ComboBox ] -- [ Option | Option | Option | Option ]
我正在使用 Swing 并将 JComboBox 添加到 JPanel。通常,当您单击 JComboBox 时,它会垂直枚举可能的选项(类似于任何网站上的组合框)。
但是,我希望 ComboBox 水平扩展 - 有没有办法在不编写自定义渲染器的情况下做到这一点?
垂直扩展
[ ComboBox ]
- Option
- Option
- Option
横向扩展
[ ComboBox ] -- [ Option | Option | Option | Option ]
我很确定你的问题的答案是“不”。您将必须至少构建渲染器的一部分才能为您执行此操作。但这是一个开始:
//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;
}
}
并且您将希望将此 UI 安装在您希望将其应用于使用的 ComboBox 上box.setUI(new CustomRenderer());