6

如何从 NetBeans 桌面应用程序为阿拉伯语制作我的 Java Swing GUI 组件 [从右到左]?

4

4 回答 4

9

难道你只需要使用:

Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

我相信swing组件都已经支持RTL了,不是吗?

不过,不确定您将如何/在哪里对 netbeans 执行此操作。

于 2008-12-10T01:17:11.233 回答
5

的呼唤

 Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

应该做的伎俩。但请务必在布局中使用 SwingConstants LEADING 和 TRAILING 而不是 LEFT 和 RIGHT。GridBagConstraints.LINE_START 或 LINE_END 而不是 WEST 或 EAST 也是如此,可能还有一些我忘记提及的类似情况。

于 2008-12-10T17:58:42.210 回答
1

您可以使用对齐,但如果您的文本中嵌入了英文字母或数字,则无法处理复杂性。

最好使用某种样式的文本小部件,甚至是嵌入式 HTML/富文本查看器。

我不认为标准的 JLabels 可以处理复杂性。

于 2008-12-10T00:51:51.767 回答
0

如果您在 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;

            }
        }
    }
于 2014-08-10T08:42:26.640 回答