2008-12-10 16 views

risposta

8

Non ti basta utilizzare:

Component.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) 

credo che i componenti Swing tutti già hanno il supporto per RTL, non è vero?

Non so come/dove lo fareste per quanto riguarda i netbeans, però.

+2

C'è anche Component.applyComponentOrientation (..) per cambiare un intero albero dei componenti. –

1

È possibile utilizzare l'allineamento, ma questo non gestirà le complessità se si dispone di lettere o numeri inglesi incorporati nel testo.

Potrebbe essere preferibile utilizzare una sorta di widget di testo in stile o persino un visualizzatore di testo RTF/HTML incorporato.

Non penso che JLabels standard possa gestire le complessità altrimenti.

+0

JLabel visualizza lettere unicode. Penso che si inoltrino sui font di sistema e se i font di sistema possono visualizzare la lettera, allora tutto è ok. Per esempio nel mio comp posso scrivere "Extraño" – OscarRyz

5

Il richiamo della

Component.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) 

dovrebbe fare il trucco. Ma assicurati di utilizzare i tasti di direzione e rotta di SwingConstant anziché LEFT e RIGHT nei tuoi layout. Lo stesso vale per GridBagConstraints.LINE_START o LINE_END anziché WEST o EAST, e probabilmente per alcuni casi simili che ho dimenticato di menzionare.

+0

Questa è un'ottima risposta, le informazioni sull'uso delle costanti di allineamento più significative potrebbero non essere un dato ad altri che hanno problemi con questo. –

0

si potrebbe usare se si dispone di componenti all'interno di quadri all'interno contentPane

 Component[] component = contentPane.getComponents(); 
    for(int i=0; i<component.length; i++){ 
     component[i].applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
     Component[] cp = ((Container) component[i]).getComponents(); 
     for(int j=0; j<cp.length; j++){ 
      try{ 
       ((Component) ((JComboBox) cp[j]).getRenderer()).applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
      }catch(Exception e){ 
       continue; 

      } 
     } 
    }