Componentes de Java Swing GUI COMO de vista RTL?
-
21-08-2019 - |
Pregunta
¿Cómo puedo hacer que mi swing de Java componentes GUI [derecha a izquierda] para el idioma árabe de NetBeans aplicación de escritorio?
Solución
No sólo hay que utilizar:
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
Creo que los componentes Swing todos los que ya tienen soporte para RTL, ¿verdad?
No está seguro de cómo / dónde usted haría que, en lo que respecta a netbeans, sin embargo.
Otros consejos
La llamada de
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
debe hacer el truco. Pero asegúrese de usar los SwingConstants ataque y de salida en lugar de izquierda y derecha en sus diseños. Lo mismo ocurre con GridBagConstraints.LINE_START o LINE_END en lugar de oeste o al este, y probablemente algunos casos similares que se me olvidó mencionar.
Se puede usar la alineación, pero eso no sería manejar las complejidades si tiene las letras inglesas o números incrustados en el texto.
Puede ser preferible utilizar algún tipo de widget de texto con estilo, o incluso un visor de texto incrustado HTML / ricos.
No creo que JLabels estándar pueden manejar las complejidades de lo contrario.
se podría utilizar si tiene componentes internos de los paneles interiores 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;
}
}
}