Обработка переполненных компонентов в разгаре - PullRequest
0 голосов
/ 21 мая 2009

В моем приложении у меня есть несколько длинных ярлыков, на китайском языке ярлыки переполняются и выталкивают другие компоненты. Это наблюдалось только на китайской ОС. Как я могу обнаружить и обработать переполненные компоненты?

Ответы [ 3 ]

1 голос
/ 21 мая 2009

JComponent имеет метод setMaximumSize , который может вам помочь. В зависимости от используемого LayoutManager результаты могут отличаться. Для установки подобных ограничений на уровне макета, проверьте SpringLayout .

0 голосов
/ 22 мая 2009

Вы можете заставить JTextArea вести себя как метку с небольшим количеством дополнительного кода, но он будет обтекать текст по мере необходимости вместо сокращения с помощью многоточия (...). Создайте свой интерфейс, помня об упаковке.

JTextArea label = new JTextArea();
label.setText( text );
label.setWrapStyleWord( true );
label.setLineWrap( true );
label.setEnabled( false );
label.setOpaque( false );
0 голосов
/ 21 мая 2009

Я предполагаю, что это проблема для некоторых, в зависимости от размера окна и языка.

Может быть, не то, что вы хотите, но вы можете проверить размер текста следующим образом:

// get metrics from the graphics
FontMetrics metrics = graphics.getFontMetrics(font);
// get the height of a line of text in this font and render context
int hgt = metrics.getHeight();
// get the advance of my text in this font and render context
int adv = metrics.stringWidth(text);

Если текст длиннее лимита (вы должны вытащить его из шапки), вы можете обрезать или, возможно, даже сократить его - если он известен, или заменить его значком и использовать всплывающую подсказку, чтобы отобразить полный текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...