Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Juanfernandez0032 en 17 Agosto 2016, 21:29 pm



Título: Limitar ancho JTextArea en BorderLayout.CENTER
Publicado por: Juanfernandez0032 en 17 Agosto 2016, 21:29 pm
Hola a todos, soy nuevo en este foro y MUY novato en esto de java.
Estoy ejercitando con layouts y estoy trabado en esta parte.

Tengo la siguiente pantalla la cual tiene un area de texto, al maximizar la ventana
el area de texto debe crecer de ancho pero solo hasta un cierto limite (X).

Es posible limitar el ancho maximo de esa area de texto ?
El area que habria que limitar es la blanca.

(http://adk8133.anuket.urltemporal.com/sintitulo.jpg)

Código:

import java.awt.*;
import javax.swing.*;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;

public class LimitarAncho {

public static void main(String[] args) {
// TODO Auto-generated method stub

CrearVentana001 crearVentana001 = new CrearVentana001();

}

}

class CrearVentana001 {

JFrame ventana001 = new JFrame();

JPanel marcoFlow001 = new JPanel();
JPanel marcoBorder001 = new JPanel();
JPanel marcoGrid001 = new JPanel();
JPanel marcoBox001 = new JPanel();
JPanel marcoBox002 = new JPanel();
JPanel marcoBox003 = new JPanel();
JPanel marco001 = new JPanel();

JButton boton001 = new JButton("Boton001");
JButton boton002 = new JButton("Boton002");
JButton boton003 = new JButton("Boton003");

JTextArea areaTexto001 = new JTextArea(150,150);
JTextArea areaTexto002 = new JTextArea(50,50);

JScrollPane jscrollPane001 = new JScrollPane();

public CrearVentana001(){

marcoBorder001.setLayout(new BorderLayout()); //Panel Principal

marcoGrid001.setLayout(new GridLayout(2,1,1,1));//aca ban los botones
//////
marcoGrid001.add(boton001);
marcoGrid001.add(boton002);
marcoFlow001.add(marcoGrid001); // con el FlowLayout "protejo" las proporciones del Grid

marcoBorder001.add(marcoFlow001,BorderLayout.WEST);

// dentro del este box va lo que esta en el BorderLayout.CENTER del principal
marcoBox002.setLayout(new BoxLayout(marcoBox002,BoxLayout.X_AXIS));

marco001.add(boton003); //
marco001.setBorder(BorderFactory.createLineBorder(Color.black));
areaTexto002.setBorder(BorderFactory.createLineBorder(Color.black));


// ESTA AREA DE TEXTO ES EL PROBLEMA.

marcoBox003.setLayout(new BoxLayout(marcoBox003, BoxLayout.X_AXIS));

jscrollPane001.setViewportView(areaTexto001);

marcoBox003.add(jscrollPane001,BorderLayout.CENTER);

// AGREGO todo al BoxLayout y esto va al BorderLayout.CENTER del principal

marcoBox002.add(marco001);
marcoBox002.add(marcoBox003);

marcoBorder001.add(marcoBox002,BorderLayout.CENTER);

ventana001.add(marcoBorder001);

ventana001.setBounds(300,300,600,600);
ventana001.setVisible(true);


}

}


Título: Re: Limitar ancho JTextArea en BorderLayout.CENTER
Publicado por: Bant en 18 Agosto 2016, 01:54 am
Saludos Juan ! Por igual soy nuevo en Java pero según vi en la API el JTextArea tiene un método que hereda de la clase Component por lo cual podrías usarlo haber si eso es lo que buscas se llama setMaximumSize y como parámetro insertas una variable de tipo Dimension !! :)