Ho un JComboBox
modificabile che contiene un elenco di valori a lettera singola. Per questo motivo la casella combinata è molto piccola.Come posso modificare la larghezza di un elenco a discesa JComboBox?
Ogni lettera ha un significato speciale che a volte non è chiaro all'utente in caso di lettere usate raramente. Per questo motivo ho creato una custom ListCellRenderer
che mostra il significato di ogni lettera nell'elenco a discesa.
Sfortunatamente questa spiegazione non rientra nel menu a discesa perché è troppo piccola, perché ha la stessa larghezza della casella combinata.
Esiste un modo per rendere l'elenco a discesa più ampio rispetto alla casella combinata?
Questo è ciò che voglio raggiungere:
---------------------
| Small JCombobox | V |
--------------------------------------------
| "Long item 1" |
--------------------------------------------
| "Long item 2" |
--------------------------------------------
| "Long item 3" |
--------------------------------------------
Non posso cambiare la larghezza della casella combinata perché l'applicazione è una ricostruzione di una vecchia applicazione legacy in cui alcune cose devono essere esattamente come erano prima. (In questo caso la casella combinata deve mantenere le sue dimensioni ridotte a tutti i costi)
Entrambi i metodi sembrano funzionare ma popupMenuWillBecomeVisible funziona solo se si fornisce anche un ListCellRenderer personalizzato. Quello predefinito sembra tagliare le stringhe alla dimensione originale. –
La prima dose non funziona per me quando sono presenti 2 elementi in JComboBox (OSX). E il secondo ha l'aspetto di Windows anche su MAC .... – Grains
La prima soluzione non funziona, come popupMenuWillBecomeVisible viene chiamato prima che la dimensione sia impostata (vedi show() in BasicComboPopup), quindi qualsiasi dimensione impostata in quel listener sarà sovrascritto. –