Вопрос

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

Это было полезно?

Решение

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

Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

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

Однако не уверен, как и где вы это сделаете в отношении NetBeans.

Другие советы

Вызов

 Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

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

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

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

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

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

            }
        }
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top