2016-12-19 2 views
0

Возможно ли это?Вертикальная ориентация, справа налево JList для китайского текста

Мне жаль, что я не могу показать вам свой код, но я не знаю с чего начать. Я не нашел ни одного примера в google.

Если возможно, может ли кто-нибудь обратиться ко мне на образец?

LstGlossary.setModel(
new javax.swing.AbstractListModel() { String[] strings = { "你好", "哈囉" }; 
public int getSize() { return strings.length; } 
public Object getElementAt(int i) { return strings[i]; } 
}); 
LstGlossary.setComponentOrientation(ComponentOrientation.RIG‌​HT_TO_LEFT); 

Вот что эти две строки выглядят как с вертикальной ориентацией текста происходит справа налево в Microsoft Word:

Vertical, Right to Left Chinese Text

+0

Вы можете попробовать использовать Java FX вместо Swing и положить '{-fx-rotate: 90; } 'в CSS. Я не могу гарантировать, что это сработает, но это стоит того. –

+0

Вы можете попробовать [этот ответ] (http://stackoverflow.com/a/32817535/4668606). Я написал это немного времени назад, и это для 'JMenus', но это должно работать и для JLists. – Paul

+0

К сожалению, вся программа уже находится в Swing, и она довольно большая. Мне просто нужен этот один компонент для изменения. Я думал, что это возможно, если я перейду из JList в JTable? – Zhiming010

ответ

2

Используйте setComponentOrientation метод:

jlist.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 

От Javadoc :

Устанавливает чувствительную к языку ориентацию, которая должна использоваться для заказа элементов или текста этого компонента. Языковые настройки Подклассы LayoutManager и Component будут использовать это свойство для , чтобы определить, как выложить и нарисовать компоненты.

+0

LstGlossary.setModel (новый javax.swing.AbstractListModel() { String [] strings = {"你好", "哈 囉"}; public int getSize() {return strings.length;} public Object getElementAt (int i) {return stringings [i];} }); LstGlossary.setComponentOrientation (ComponentOrientation.RIGHT_TO_LEFT); // Это просто дает мне выровненный китайский текст. Он не меняет его на текст с вертикальным текстом, например (你 \ n 好) – Zhiming010

+0

Хотя это, вероятно, приведет к тому, что элементы списка будут работать справа налево, если бы у меня был какой-то способ заставить каждый элемент работать вертикально, а не горизонтально. – Zhiming010

Смежные вопросы