2012-02-12 27 views
5

Ho un JList con elementi che voglio mostrare due valori. C'è un modo per farlo mostrare un nome di stringa e quindi avere una stringa giustificata a destra per mostrare un valore. Guardando qualcosa di simile:JList allineamento del testo

Title__________________120 
Title2_________________135 

E 'possibile passare in due stringa in un oggetto e hanno il primo display stringa a sinistra e la seconda a destra?

risposta

6

Certo, implementare una personalizzata renderer. È possibile restituire un JPanel con BorderLayout come componente di rendering, con il testo LHS nello WEST e il testo RHS nello EAST.

Un altro modo è di inserire HTML nel renderer predefinito (a JLabel), utilizzando una tabella HTML che si estende per il 100% della larghezza. Anche se il renderizzatore personalizzato sarebbe una scelta migliore per una serie di motivi (ad esempio non presumendo che il tipo del renderer predefinito sia un'etichetta).


BTW - forse si dovrebbe considerare l'utilizzo di un JTable per questo tipo di funzionalità. Non sono necessari hack o classi personalizzate.


..does la JTable permettono la selezione delle voci?

Naturalmente! Ecco un esempio preso direttamente da How to Use Tables nel tutorial. 'Jane' è selezionato.

Table with row selected

Un tavolo è un piccolo sforzo in più per impostare e ottenere il diritto, ma è valsa la pena.

Sarebbe un JTable esibisce solo come un JList ..

No, la tabella in ultima analisi, fornisce più funzionalità. Ma le cose che fa un elenco possono anche funzionare, funzionano (per l'utente) più o meno allo stesso modo.

+0

Sarebbe un JTable esibisce solo come un JList (scusate questa è la mia prima volta con jlists e jtables quindi sono poco familiare). Ciò che intendo è che JList fornisce un'interfaccia piacevole per la selezione dei valori, ma il jtable consente di selezionare gli elementi? – mbreen

+0

Vedere la modifica, ma soprattutto consultare il link "Come usare le tabelle". Questo spiegherà la maggior parte di ciò che devi sapere. –

+0

Fantastico! Tutti qui su StackOverflow danno sempre delle belle risposte dettagliate anche per le domande più semplici! Grazie mille. – mbreen

Problemi correlati