2014-02-16 7 views
0

То, что я пытаюсь сделать, действительно просто, но я не могу найти решение для него.Resize JTextArea

У меня есть JTextArea, добавленный к JPanel, и я хочу, чтобы JTexArea изменил размер, когда я изменяю размер JPanel. Я смог получить JPanel для изменения размера, когда я изменяю размер JFrame, но, похоже, он не работает одинаково для JTextArea. Есть идеи? Вот код, который я использовал.

public HelpPanel(Map<ComponentType, String> compMap) { 
    super(); 
    this.componentMap = compMap; 
    compDescription = new JTextArea(); 
    setSize(300, 300); 

    JScrollPane scroll = new JScrollPane(compDescription); 
    add(scroll); 
    compDescription.setPreferredSize(new Dimension(getSize())); 
    compDescription.setLineWrap(true); //Wrap the text when it reaches the end of the TextArea. 
    compDescription.setWrapStyleWord(true); //Wrap at every word rather than every letter. 
    compDescription.setEditable(false); //Text cannot be edited. 
    displayDescription(); 
} 

ответ

1

Изменение super(); в super(new BorderLayout());.

JPanel использует FlowLayout по умолчанию, который не пытается заставить размер его компонентов заполнять пространство. Переключившись на BorderLayout, центральный компонент (панель прокрутки) будет принудительно соответствовать размеру панели.

+0

Это сделало, спасибо. – Shaun