【问题标题】:JTextArea that needs to grow with parent panel需要与父面板一起增长的 JTextArea
【发布时间】:2012-01-30 01:50:57
【问题描述】:
我想让我的 JTextArea 字段在当前 JPanel 中尽可能大。该怎么做?
现在是这样的:
JPanel statusBar = new StatusBar(project);
JTextArea outputBox = new JTextArea(1, 50);
outputBox.setEditable(true);
statusBar.add(outputBox);
【问题讨论】:
-
使用适当的布局管理器,让它成长。有关更多信息,请参阅 Layout Managers 上的 Swing 教程。此外,您通常会将文本区域添加到滚动窗格中。
标签:
java
swing
jtextarea
layout-manager
【解决方案1】:
您需要 JPanel 上的布局管理器。如果它只是其中包含的 JTextArea 并且您需要最大化它,您可以使用简单的 GridLayout:
statusBar.setLayout(new GridLayout(1,1));
【解决方案2】:
JPanel 的默认布局管理器是FlowLayout,它不会让文本区域填满面板中的整个可用空间。
使用BorderLayout 应该可以正常工作:
statusBar.setLayout( new BorderLayout() );
JTextArea outputBox = new JTextArea(1, 50);
outputBox.setEditable(true);
statusBar.add(outputBox, BorderLayout.CENTER);