2011-12-12 16 views

risposta

6

Penso che non sia possibile, a meno che non si usi una JList, come hai detto tu.

Le JComboBox API rapporti:

l'utente può selezionare un valore dall'elenco a discesa, che appare in richiesta dell'utente.

E un JComboBox tutorial:

Le liste non sono terribilmente attraente, ma sono più appropriato di caselle combinate, quando il numero di elementi è di grandi dimensioni (ad esempio, oltre 20) o quando selezione più articoli potrebbero essere validi.

Aggiornamento:

ho rivisto questa risposta, perché in realtà è "possibile" farlo utilizzando un ListCellRenderer, l'aggiunta di una casella di controllo per ciascun elemento. Si prega di considerare this answer per implementare questa "soluzione".

Tuttavia, non credo che sia una buona idea per i seguenti motivi:

  1. c'è un controllo come un JList che consente la selezione multipla;
  2. un controllo JComboBox è progettato solo per la selezione di singoli articoli;
  3. non ha senso per me utilizzare ancora un controllo JComboBox e consentire una selezione multipla.
+0

più scadente, grazie alcun modo –

+0

Lo so che è una rottura.Prego :-) –

+0

No, è possibile ma è necessario usare Renderer – PeerNet

0

Non è del tutto impossibile, ma c'è molto lavoro da fare per portare a termine il lavoro. È necessario creare classi personalizzate per estendere/implementare tutte queste funzioni:

  • ListCellRenderer (in modo da poter contrassegnare gli elementi selezionati quando il popup è visualizzato e indicare (almeno) che ci sono più selezioni quando non lo sono) .
  • JComboBox (ovviamente)
  • BasicComboBoxUI (questo è in realtà dove la maggior parte del lavoro è)
  • BasicListUI (almeno ho dovuto)
  • ComboBoxModel
e avrete bisogno di sviluppare il proprio classe che implementa ItemListener, MouseListener, PopupMenuListener, MouseMotionListener, PropertyChangeListener, KeyListener, ListSelectionListener.
Suggerimento: è necessario sovrascrivere molti metodi createXXXListener() nelle classi dell'interfaccia utente per ignorare le molte posizioni in cui vengono scartate più selezioni.
[E ancora non consente un modificabile combo selezione multipla .]

Problemi correlati