我想要做的事情非常简单,但我无法找到解决方案。
我有一个JTextArea添加到JPanel,我希望JTexArea在我调整JPanel大小时调整大小。当我调整JFrame的大小时,我能够让JPanel调整大小,但它似乎对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();
}
答案 0 :(得分:1)
将super();
更改为super(new BorderLayout());
。
JPanel默认使用FlowLayout,它不会试图强制其组件的大小来填充空间。通过切换到BorderLayout,中心组件(滚动窗格)将被强制匹配面板的大小。