2013-12-01 3 views
-4

У меня есть текстовое поле внутри прокрутки, которое изначально редактируется, поэтому пользователь может ввести ввод. Когда они нажимают кнопку, он захватывает этот вход и устанавливает, что область будет неотредактирована. Тем не менее, всякий раз, когда он меняет состояние с редактируемого на неидеальный, если он имеет больше текста, чем область может обрабатывать без полос прокрутки, он изменяет размер области, чтобы она соответствовала всему тексту, испортив остальную часть пользовательского интерфейса. Как я могу заставить его придерживаться того размера, на котором он начинается? Это соответствующий код:JTextArea Autoresizing

txtrTag = new JTextArea(); 
txtrTag.setEditable(true); 
txtrTag.setOpaque(true); 

JScrollPane txtrTagScrollPane = new JScrollPane(txtrTag); 

private void doTrack(ActionEvent e){ 
    if (bTracking == false){ 
     txtrTag.setEditable(false); 
     txtrTag.setOpaque(false); 
+3

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

ответ

3

При создании текстовой области код должен быть что-то вроде:

JTextArea textArea = new JTextArea(5, 20); 

Строки/значения столбцов позволит область текста, чтобы определить предпочтительный размер для сам. Поэтому, когда вы добавляете текстовую область в scrollpane, scrollpane будет иметь соответствующий размер.

Тогда редактируемое состояние не должно влиять на предпочтительный размер.

+0

Отлично, только то, что мне нужно. Спасибо. – Daniel