Не совсем уверен, что вы пытаетесь достичь здесь, попробуйте запустить это и посмотреть, соответствует ли он вашим потребностям?
я проблемы с тем же человеком, что и с этим парнем:
MigLayout JTextArea не сжимается при использовании с linewrap = true
и я использовал решение, описанное в одном из ответов; установить минимальный размер явно. Это прекрасно работает, если поместить JPanel, которая содержит JTextArea, непосредственно в 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. Также обратите внимание, как менеджер раскладки, кажется, переворачивается и начинает «встряхивать» все его содержимое при уменьшении размера окна после его первого увеличения.