Comincerò con quello che voglio poi andare da lì:Avere un'etichetta Left e Right Aligned all'interno di un JCheckBox
+------------------------------------------+
|[] jCheckBox jLabel |
+------------------------------------------+
Fondamentalmente mi piacerebbe avere un JCheckBox
con 2 segmenti di testo, 1 sinistra allineato e 1 allineato a destra. Vorrei che l'intera scatola fosse cliccabile e agisse esattamente come un JCheckBox
(Come in se premo il mio mouse in basso evidenzia la casella ecc.).
ora ho provato:
Utilizzando HTML all'interno della casella di testo, con un tavolo lungo le linee di:
<html><table width=100%><tr width=100%><td>Left Text</td><td align=right>Right Text</td></tr></table>
. Questo produce[] Left TextRightText
senza alcun allineamento visivo.calcolata sia il
JCheckBox
eJLabel
ad un pannello, tuttavia questo mi richiederebbe di attuare tutte le eventi del mouse e chiamare i rispettivi metodi corretti sulJCheckBox
. Ho messo questo a parte - ma io sono disposto a riconsiderare se questa è l'unica opzioneAggiunta del JLabel al JCheckBox
- Innanzitutto questo ha causato il JCheckBox a decidere di cambiare il tipo di carattere, in modo che doveva essere 'aggiustato'
- In secondo luogo, le linee di base erano spente di 1 o 2 pixel. Ciò è stato risolto implementando un LayoutManager che posizionava
JLabel
sulla linea di base. - In terzo luogo, la
JLabel
sovrapposto con il testoJCheckBox
così ho annuncio a regolare il mio gestore di layout, ma ilJCheckBox
non ha dato un risultato corretto dagetPreferedSize()
(di[1,1]
).
Quindi, in sostanza la mia domanda è: Come dovrei implementare questo?
Quindi, se ho capito bene, vuoi che questo pannello composito si comporti esattamente come la casella di controllo all'interno, giusto? –
Sì, in fondo è corretto – Lee