当与 linewrap=true 一起使用时,MigLayout JTextArea 不会收缩
如果我将 JTextArea
与 MigLayout
一起使用,如下所示:
MigLayout thisLayout = new MigLayout("", "[][grow]", "[]20[]");
this.setLayout(thisLayout);
{
jLabel1 = new JLabel();
this.add(jLabel1, "cell 0 0");
jLabel1.setText("jLabel1");
}
{
jTextArea1 = new JTextArea();
this.add(jTextArea1, "cell 0 1 2 1,growx");
jTextArea1.setText("jTextArea1");
jTextArea1.setLineWrap(false);
}
那么在调整窗口大小时,JTextArea
会完美地增大和缩小。当我将换行设置为 true 时,当我再次缩小窗口时,JTextArea
不会缩小。
If I use a JTextArea
with MigLayout
like this:
MigLayout thisLayout = new MigLayout("", "[][grow]", "[]20[]");
this.setLayout(thisLayout);
{
jLabel1 = new JLabel();
this.add(jLabel1, "cell 0 0");
jLabel1.setText("jLabel1");
}
{
jTextArea1 = new JTextArea();
this.add(jTextArea1, "cell 0 1 2 1,growx");
jTextArea1.setText("jTextArea1");
jTextArea1.setLineWrap(false);
}
then the JTextArea
grows and shrinks perfectly when resizing the window. When I set the linewrap to true the JTextArea
is not shrinking when I make the window smaller again.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我刚刚发现这个问题可以简单地通过更改线路来解决
,
并且不需要额外的面板。设置明确的最小尺寸就是诀窍。
说明:请参阅 MiGLayout 白皮书中有关填充的部分下的注释:
http://www.migcalendar。 com/miglayout/whitepaper.html
I just discovered that this can simply be resolved by changing the line
to
and no extra panels are needed. Setting an explicit minimum size is what does the trick.
Explanation: see the note under the section on padding in the MiGLayout whitepaper:
http://www.migcalendar.com/miglayout/whitepaper.html
这是因为
JTextArea
在调整大小时会自动设置最小宽度。有关详细信息,请访问 MigLayout 论坛。粗略总结一下,创建一个包含JTextArea
的面板,并让您进一步控制调整大小行为。以下是上述论坛帖子的摘录:然后,无论您在何处使用 JTextArea,都请使用包含文本区域的面板:
This is because
JTextArea
's automatically have their minimum width set anytime they resize. Details are available on the MigLayout forum. To roughly summarize, create a panel that contains theJTextArea
and gives you further control over the resize behavior. Here's an excerpt from the above forum post:Then, wherever you would use the JTextArea, use the panel containing the text area: