fillers - Componentes de JAVA Swing GUI ¿cómo ver RTL?
swing containers (4)
¿Cómo puedo hacer que mi Java Swing GUI Components [de derecha a izquierda] para el idioma árabe desde la aplicación de escritorio NetBeans?
podrías usarlo si tienes componentes dentro de paneles dentro de 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;
}
}
}
La llamada de
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
debería 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.
No solo tienes que usar:
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
Creo que los componentes swing ya tienen soporte para RTL, ¿no?
Sin embargo, no estoy seguro de cómo / dónde haría eso en lo que respecta a netbeans.
Podría usar la alineación, pero eso no resolvería las complejidades si tiene letras o números en inglés incrustados en su texto.
Podría ser preferible utilizar algún tipo de widget de texto con estilo o incluso un visor de texto enriquecido / HTML enriquecido.
No creo que los JLabel estándar puedan manejar las complejidades de lo contrario.