2008-12-10 36 views

Respuesta

8

no simplemente tienen que utilizar:

Component.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) 

creo que los componentes Swing todos los que ya tienen soporte para RTL, ¿verdad?

No estoy seguro de cómo y dónde harías eso en lo que respecta a netbeans, sin embargo.

+2

También hay Component.applyComponentOrientation (..) para cambiar todo un árbol de componentes. –

1

Puede usar la alineación, pero eso no resolvería las complejidades si tiene letras o números en inglés incrustados en su texto.

Puede ser preferible usar algún tipo de artilugio de texto con estilo o incluso un visor de texto enriquecido/HTML enriquecido.

No creo que JLabel estándar pueda manejar las complejidades de lo contrario.

+0

JLabel muestra letras Unicode. Creo que transmiten en las fuentes del sistema y si las fuentes del sistema pueden mostrar la letra, todo está bien. Por ejemplo, en mi comp yo puedo escribir "Extraño" – OscarRyz

5

La llamada de

Component.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) 

debe hacer el truco. Pero asegúrese de utilizar SwingConstants LEADING y TRAILING en lugar de IZQUIERDA y DERECHA en sus diseños. Lo mismo ocurre con GridBagConstraints.LINE_START o LINE_END en lugar de WEST o EAST, y probablemente algunos casos similares que olvidé mencionar.

+0

Esa es una gran respuesta, la información sobre el uso de las constantes de alineación más significativas puede no darse a los demás que tengan problemas con esto. –

0

se podría utilizar si tiene componentes internos de los paneles en el interior 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; 

      } 
     } 
    } 
Cuestiones relacionadas