Ho GridLayout-JPanel. In ogni cella c'è una JLabel con una stringa. Come posso allineare correttamente questo testo nelle mie celle?Testo allineato in JLabel
risposta
Un paio di costruttori JLabel
accetta argomenti di allineamento orizzontale. Questi constants sono ereditati da SwingConstants
.
@Noran In risposta al tuo commento sulla risposta di @ mre, è possibile inizializzare tutti i JLabel in un array. Quindi, tutto quello che dovresti fare è scorrere l'array e impostare l'allineamento in questo modo.
for (JLabel label: arrayOfJLabels) {
label.setHorizontalAlignment(SwingConstants.LEFT);
}
Questa dovrebbe essere la risposta corretta. –
Ho letto la tua domanda e ho un suggerimento. Ci sono alcuni metodi per soddisfare i tuoi requisiti. Dal momento che lei non ha citato l'esigenza esatta, posso darvi un semplice esempio se ho capito bene:
//create a JLabel and name it as jLabel2
javax.swing.JLabel jLabel2 = new javax.swing.JLabel();
jLabel2.setText("Dehans Label");
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
prega di fare riferimento seguendo metodi @JLabel
classe JavaSE API attraverso seguenti link:
È preferibile collegarsi all'ultima versione di JavaDocs. Ho modificato la risposta in modo che punti a J2SE 7. Per suggerimenti su come ottenere un collegamento agli ultimi documenti, vedere [punto 2 dei vantaggi] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) . –
Sì, è giusto. Ma diciamo che ho 100 JLabels. Quando li allineo correttamente con il costruttore, e decido di cambiare l'allineamento a sinistra, dovrò farlo cento volte a mano. C'è un modo per allinearli tutti con una sola mossa dal livello di layout manager? –
Se non si desidera incapsulare tale logica, utilizzare ['setAlignmentY'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setAlignmentY%28float%29) metodo. È così che un contenitore può impostare l'allineamento orizzontale di ogni istanza di 'JComponent' (ad esempio un' JLabel'). – mre
@Non puoi creare una classe o un vuoto con parametri che restituiscono JLabel, puoi usare SwingConstant, JLabel # possition, o usando Html <= 3.2 +1 – mKorbel