JAVA Swing GUI Компоненты Как посмотреть RTL? - PullRequest
6 голосов
/ 10 декабря 2008

Как мне сделать компоненты Java Swing GUI [справа налево] для арабского языка из приложения NetBeans для настольных ПК?

Ответы [ 4 ]

9 голосов
/ 10 декабря 2008

Вам не нужно просто использовать:

Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

Я считаю, что все компоненты Swing уже поддерживают RTL, не так ли?

Не знаю, как и где вы это сделаете в отношении NetBeans.

5 голосов
/ 10 декабря 2008

Зов

 Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

должен сделать свое дело. Но обязательно используйте SwingConstants LEADING и TRAILING вместо LEFT и RIGHT в ваших макетах. То же самое касается GridBagConstraints.LINE_START или LINE_END вместо WEST или EAST и, возможно, некоторых подобных случаев, о которых я забыл упомянуть.

1 голос
/ 10 декабря 2008

Вы можете использовать выравнивание, но это не справится со сложностями, если в вашем тексте есть английские буквы или цифры.

Может быть предпочтительнее использовать какой-нибудь виджет текста в стиле или даже встроенный просмотрщик HTML / rich text.

Я не думаю, что стандартные JLabels могут справиться со сложностями иначе.

0 голосов
/ 10 августа 2014

вы можете использовать его, если у вас есть компоненты внутри панелей внутри 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;

            }
        }
    }
...