Line wrap en un JTextArea hace que JScrollPane se comporte mal con MiGLayout
Tengo problemas con lo mismo que este chico:
MigLayout JTextArea no se reduce cuando se usa con linewrap = true
y utilicé la solución descrita en una de las respuestas; para establecer el tamaño mínimo explícitamente. Esto funciona bien si se coloca el JPanel que contiene el JTextArea directamente en un JFrame, y luego cambia el tamaño de la ventana.
Sin embargo, al colocar el panel que contiene el JTextArea dentro de un JScrollPane, el mismo problema ocurre nuevamente. ¿Por qué es esto y cómo se puede solucionarlo?
Aclamacione
EDIT: Un ejemplo
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);
}
}
Si descomentas//add(panel);
y comentaradd(scrollPane);
, reducir el tamaño de la ventana también reducirá JTextArea. Es decir, no funciona con un JScrollPane. Observe también cómo el administrador de diseño parece voltearse y comienza a "sacudir" todo su contenido al reducir el tamaño de la ventana después de agrandarla