2011-12-12 26 views

Respuesta

6

Creo que no es posible, a menos que uses una JList, como dijiste.

Los informes JComboBox API:

el usuario puede seleccionar un valor de la lista desplegable, que aparece en petición del usuario.

Y un JComboBox tutorial:

listas no son muy atractivas, pero son más apropiados que cuadros combinados cuando el número de elementos es grande (por ejemplo, más de 20) o cuando la selección múltiples artículos pueden ser válidos

Actualización:

he revisado esta respuesta, porque en realidad es "posible" para hacer que el uso de un ListCellRenderer, la adición de una casilla de verificación para cada elemento. Considere this answer para implementar esta "solución".

Sin embargo, no creo que sea una buena idea por las siguientes razones:

  1. hay un control como un JList que permite la selección múltiple;
  2. un control JComboBox está diseñado solo para la selección de un solo elemento;
  3. no tiene sentido para mí seguir usando un control JComboBox y permitir una selección múltiple.
+0

fastidio, gracias cualquier manera –

+0

Sé que es un rollo.De nada :-) –

+0

No, es posible, pero tiene que usar Renderer – PeerNet

0

No es del todo imposible pero hay mucho trabajo por hacer para hacer el trabajo. Tendrá que crear sus propias clases para extender/implementar todo esto:

  • ListCellRenderer (para que pueda marcar los elementos seleccionados cuando se muestre la ventana emergente e indicar (al menos) que hay varias selecciones cuando no lo está) .
  • JComboBox (obviamente)
  • BasicComboBoxUI (esto es en realidad donde la mayor parte del trabajo es)
  • BasicListUI (al menos yo tuvimos que)
  • ComboBoxModel
Y que necesita para desarrollar su propio clase que implementa ItemListener, MouseListener, PopupMenuListener, MouseMotionListener, PropertyChangeListener, KeyListener, ListSelectionListener.
Sugerencia: deberá anular una gran cantidad de métodos createXXXListener() en las clases de la interfaz de usuario para omitir los muchos lugares donde se descartan varias selecciones.
[Y todavía no permite una editable combinado selección múltiple.]

Cuestiones relacionadas