我和这个人有同样的问题:
与 linewrap=true 一起使用时,MigLayout JTextArea 不会缩小
我使用了其中一个答案中描述的解决方案;明确设置最小尺寸。如果将包含 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。还要注意布局管理器在第一次放大后缩小窗口大小时似乎是如何翻转并开始“摇晃”其所有内容的