JAVA Swing GUI Components howto RTL view?

对着背影说爱祢 提交于 2019-11-28 13:38:37

Don't you just have to use:

Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

I believe that the swing components all already have support for RTL, don't they?

Not sure how/where you'd do that in regards to netbeans, though.

The call of

 Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

should do the trick. But be sure to use the SwingConstants LEADING and TRAILING instead of LEFT and RIGHT in your layouts. The same goes for GridBagConstraints.LINE_START or LINE_END instead of WEST or EAST, and probably some similar cases which I forgot to mention.

You could use alignment, but that would not handle the complexities if you have English letters or numbers embedded within your text.

It might be preferable to use some sort of styled text widget or even an embedded HTML/rich text viewer.

I don't think that standard JLabels can handle the complexities otherwise.

you could use it if you have components inside panels inside 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;

            }
        }
    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!