Pregunta Ocultar JComBox Box Arrow


¿Es posible ocultar la flecha que se muestra en JComboBox?

Intenté configurar:

combo.getComponent(0).setSize(new Dimension(1,1));

Pero parece que no funciona


7
2017-09-20 13:20


origen


Respuestas:


Debe crear una nueva IU de cuadro combinado para eso:

combo.setUI(new BasicComboBoxUI() {
    protected JButton createArrowButton() {
        return new JButton() {
            public int getWidth() {
                return 0;
            }
        };
    }
});

Pero tenga cuidado de heredar de la interfaz de usuario base que coincida con su aspecto actual.

Por ejemplo, si usa Sustancia, debe derivar su nueva IU de SubstanceComboBoxUI en lugar de BasicComboBoxUI. De lo contrario, es posible que pierda las características proporcionadas por su L & F actual.

EDITAR: Si desea que esto tenga algún tipo de función de autocompletado, es mejor seguir con una función normal JTextField y use AutoCompleteDecorator de SwingX.


8
2017-09-20 13:29



He estado buscando una solución a esto por un tiempo, y resulta que todo lo que realmente toma es recordar eso JComboBox es un componente compuesto

for (Component component : TheComboBox.getComponents())
{
    if (component instanceof JButton) {
        TheComboBox.remove(component);
    }
}

Gracias ir a mKorbel Para el recordatorio.


3
2017-07-02 20:08