Java Swing GUI компоненты Howto RTL зрения?

голоса
6

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

Задан 10/12/2008 в 01:37
источник пользователем
На других языках...                            


4 ответов

голоса
8

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

Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

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

Не знаю, как / где вы могли бы сделать, что в отношении NetBeans, хотя.

Ответил 10/12/2008 в 02:17
источник пользователем

голоса
5

Вызов

 Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

следует сделать трюк. Но обязательно использовать SwingConstants Ведущим и завершающими вместо влево и вправо в верстке. То же самое касается GridBagConstraints.LINE_START или LINE_END вместо Запад или Восток, и, вероятно, некоторые другие подобные случаи, которые я забыл упомянуть.

Ответил 10/12/2008 в 18:58
источник пользователем

голоса
1

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

Это может быть предпочтительнее использовать какое-то стилизованный текст виджета или даже встроенный HTML / богатый просмотр текста.

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

Ответил 10/12/2008 в 01:51
источник пользователем

голоса
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;

            }
        }
    }
Ответил 10/08/2014 в 09:42
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more