Как мне сделать компоненты Java Swing GUI [справа налево] для арабского языка из приложения NetBeans для настольных ПК?
Вам не нужно просто использовать:
Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )
Я считаю, что все компоненты Swing уже поддерживают RTL, не так ли?
Не знаю, как и где вы это сделаете в отношении NetBeans.
Зов
должен сделать свое дело. Но обязательно используйте SwingConstants LEADING и TRAILING вместо LEFT и RIGHT в ваших макетах. То же самое касается GridBagConstraints.LINE_START или LINE_END вместо WEST или EAST и, возможно, некоторых подобных случаев, о которых я забыл упомянуть.
Вы можете использовать выравнивание, но это не справится со сложностями, если в вашем тексте есть английские буквы или цифры.
Может быть предпочтительнее использовать какой-нибудь виджет текста в стиле или даже встроенный просмотрщик HTML / rich text.
Я не думаю, что стандартные 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; } } }