Cita:
Dentro del JPanel tengo varios controles, algunos alienados al norte, otros al centro y por ultimo un par de botones al sur. this.setBorder(BorderFactory.createEmptyBorder(30, 30, 10, 30));
this.setLayout(new BorderLayout());
this.setLayout(new BorderLayout());
El JPanel se crea y se usa desde una clase que implementa IWindow como sigue:
Cita:
Le puse esas dimensiones pues son las que se ajustan mejor para el número de controles que tengo. public WindowInfo getWindowInfo()
{
if (viewInfo == null)
{
viewInfo = new WindowInfo(WindowInfo.RESIZABLE);
viewInfo.setTitle(PluginServices.getText(this,"Avi so"));
viewInfo.setWidth(this.getWidth()+550);
viewInfo.setHeight(this.getHeight()+580);
return viewInfo;
}
return viewInfo;
}
{
if (viewInfo == null)
{
viewInfo = new WindowInfo(WindowInfo.RESIZABLE);
viewInfo.setTitle(PluginServices.getText(this,"Avi so"));
viewInfo.setWidth(this.getWidth()+550);
viewInfo.setHeight(this.getHeight()+580);
return viewInfo;
}
return viewInfo;
}
Para la zona central, dónde va el JTextArea, lo hago así:
Cita:
El problema es que al ejecutarlo el JTextArea tiene un tamaño autodefinido por así decirlo, es decir, no tiene 2 filas ni 30 columnas, sino que llena el tamño del centro. Y aún peor, al empezar a escribir, yo quiero que al llegar al final de una línea pase a la siguiente (probé a ponerle 5 columnas y nada), por eso le puse las barras de desplazamiento, pues sino no veía lo que ponía. JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.setBorder(new TitledBorder("Otros datos"));
JTextArea obser = new JTextArea(5, 30);
JScrollPane scrollPane = new JScrollPane (obser, JScrollPane.VERTICAL_SCTOLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel.add(scrollPane, BorderLayout.CENTER);
JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(panel);
this.add(p, BorderLayout.CENTER);
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.setBorder(new TitledBorder("Otros datos"));
JTextArea obser = new JTextArea(5, 30);
JScrollPane scrollPane = new JScrollPane (obser, JScrollPane.VERTICAL_SCTOLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel.add(scrollPane, BorderLayout.CENTER);
JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(panel);
this.add(p, BorderLayout.CENTER);
Es decir, quiero que mi JTextArea actúe como éste en el que escribo el mensaje en forosdelweb, que se cambia de línea automáticamente.
No sé si me entienden, siento un mensaje tan largo, pero no doy solucionado ésto por más vueltas que le di.
Gracias.