gpt4 book ai didi

java - JTextArea 中的换行导致 JScrollPane 与 MiGLayout 的行为不一致

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:53 25 4
gpt4 key购买 nike

我遇到了和这个人一样的问题:

MigLayout JTextArea is not shrinking when used with linewrap=true

我使用了其中一个答案中描述的解决方案;明确设置最小尺寸。如果将包含 JTextArea 的 JPanel 直接放在 JFrame 中,然后调整窗口大小,这会很好地工作。

但是,当将包含 JTextArea 的面板放置在 JScrollPane 中时,再次出现同样的问题。为什么会这样,如何解决?

干杯

编辑:一个例子

public class MiGTest2 extends JFrame{   
public MiGTest2(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new MigLayout("fillx, debug", "[fill]"));
JTextArea textArea = new JTextArea();
textArea.setLineWrap(true);
panel.add(textArea, "wmin 10");
//panel.add(new JTextField());
JScrollPane scrollPane = new JScrollPane(panel);
//add(panel);
add(scrollPane);
pack();
}
public static void main(String[] args){
new MiGTest2().setVisible(true);
}
}

如果您取消注释 //add(panel);,并注释 add(scrollPane);,缩小窗口大小也会缩小 JTextArea。也就是说,它不适用于 JScrollPane。还要注意布局管理器如何在第一次放大窗口后缩小窗口大小时似乎翻转并开始“摇动”其所有内容

最佳答案

我有一个非常相似的问题,并按照提到的 question 中的答案进行操作也没有帮助我。但是,它确实提供了一个有值(value)的想法——问题出在启用换行的 JTextArea 的宽度上。

对我有用的是使用命令 width 在组件级别设置最小宽度和首选宽度。例如,宽度 10:500:

关于java - JTextArea 中的换行导致 JScrollPane 与 MiGLayout 的行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com