JAVA GUI Swing Components Howto vue RTL?
-
21-08-2019 - |
Question
Comment puis-je faire mon GUI Java Swing Components [droite à gauche] pour la langue arabe à partir NetBeans Desktop Application?
La solution
Ne vous suffit d'utiliser:
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
Je crois que les composants Swing ont tous déjà un soutien pour RTL, non?
Je ne sais pas comment / où vous souhaitez le faire en ce qui concerne NetBeans, cependant.
Autres conseils
L'appel de
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
devrait faire l'affaire. Mais assurez-vous d'utiliser les SwingConstants avant et arrière au lieu de gauche et droite dans vos mises en page. La même chose vaut pour GridBagConstraints.LINE_START ou LINE_END au lieu d'ouest ou, et probablement des cas similaires que j'oublié de mentionner.
Vous pouvez utiliser l'alignement, mais ce ne serait pas gérer la complexité si vous avez des lettres anglaises ou des chiffres inclus au sein de votre texte.
Il est peut-être préférable d'utiliser une sorte de widget texte de style ou même une visionneuse de texte HTML / enrichies.
Je ne pense pas que JLabels standard peuvent gérer la complexité autrement.
vous pouvez l'utiliser si vous avez des composants à l'intérieur des panneaux à l'intérieur 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;
}
}
}