Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/07/2012, 13:40
SrFurias
 
Fecha de Ingreso: mayo-2012
Mensajes: 29
Antigüedad: 12 años, 10 meses
Puntos: 0
Problema con GridBagLayout

Buenas, ando intentando crear una especie de programa en el que metere un chat y (más adelante cuando sepa mejor Java) juegos para jugar 2 jugadores.

Tengo un borderLayout en el que están los paneles, y dentro del panel del centro tengo un GridBagLayout.

En el JPanel con el GridBagLayout quiero hacer una ventana de chat y estoy intentando hacer que el area de texto ocupe la mayoria del espacio, pero tengo este problema:

(Uso WindowsBuilder porque en si me lio muchísimo en GridBagLayout, pero sigo teniendo problemas con él, por lo tanto, me podríais decir tambien como añadir mas columnas y/o filas al GridBagLayout?)

Cuando selecciono el área de texto salen las lineas rojas de cuando algo esta seleccionado en WindowsBuilder salen justo como debería estar el área de texto: Pegados a los bordes del JPanel. Pero el área de texto en si sale centrado y pequeño... No se pone como deberia...

Aqui dejo el código del GridBagLayout: (Uso Eclipse)

Código:
GridBagConstraints gbc_textArea = new GridBagConstraints();
gbc_textArea.gridx = 0;
gbc_textArea.gridy = 0;
gbc_textArea.gridwidth = 2;
gbc_textArea.gridheight = 1;
gbc_textArea.weightx = 1.0;
gbc_textArea.weighty = 1.0;
panel_1.add(textArea, gbc_textArea);
gbc_textArea.fill = GridBagConstraints.BOTH;
Codigo entero:

Código:
import javax.swing.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.*;

public class VentanaPrincipal extends JFrame implements ActionListener{
	private JMenuBar bar;
	private JMenu archivo,edicion;
	private JMenuItem abrir,creditos,imprimir,pagina,oscuro;
	private JPanel panel1;
	private JButton b1,b2,b3,b4;
	private JPanel statuspanel;
	private JLabel status;
	private BufferedImage logo;
	private Label label;
	private JPanel panel;
	private JButton btnNewButton;
	private JPanel panel_1;
	private TextArea textArea;
	public VentanaPrincipal(){
		super("Unclain Manager 2012");
		getContentPane().setBackground(Color.DARK_GRAY);
		this.setSize(1200,800);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setResizable(true);
		this.setLocationRelativeTo(null);
		definirVentana();
		panel1.setBackground(Color.GRAY);
		statuspanel.setBackground(Color.GRAY);
		
		panel = new JPanel();
		panel.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				panel.setBackground(new Color(173, 216, 230));
				status.setText("Lista de Contactos");
			}
			public void mouseExited(MouseEvent e){
				panel.setBackground(SystemColor.inactiveCaptionText);
				status.setText("En espera de una acción");
			}
		});
		panel.setBackground(SystemColor.inactiveCaptionText);
		getContentPane().add(panel, BorderLayout.WEST);
		
		btnNewButton = new JButton("A\u00F1adir Contacto");
		btnNewButton.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				status.setText("Agregar contactos a la lista");
			}
			public void mouseExited(MouseEvent e){
				status.setText("En espera de una acción");
			}
		});
		btnNewButton.setForeground(Color.BLACK);
		btnNewButton.setBackground(UIManager.getColor("Button.background"));
		panel.add(btnNewButton);
		
		panel_1 = new JPanel();
		panel_1.setBackground(Color.DARK_GRAY);
		getContentPane().add(panel_1, BorderLayout.CENTER);
		GridBagLayout gbl_panel_1 = new GridBagLayout();
		gbl_panel_1.columnWidths = new int[]{0, 0};
		gbl_panel_1.rowHeights = new int[]{0, 0};
		gbl_panel_1.columnWeights = new double[]{0.0, Double.MIN_VALUE};
		gbl_panel_1.rowWeights = new double[]{0.0, Double.MIN_VALUE};
		panel_1.setLayout(gbl_panel_1);
		
		textArea = new TextArea();
		GridBagConstraints gbc_textArea = new GridBagConstraints();
		gbc_textArea.gridx = 0;
		gbc_textArea.gridy = 0;
		gbc_textArea.gridwidth = 2;
		gbc_textArea.gridheight = 1;
		gbc_textArea.weightx = 1.0;
		gbc_textArea.weighty = 1.0;
		panel_1.add(textArea, gbc_textArea);
		gbc_textArea.fill = GridBagConstraints.BOTH;
		this.validate();
		this.invalidate();
		cargarImagenes();
		
	}
	public void definirVentana(){
		getContentPane().setLayout(new BorderLayout());
		bar = new JMenuBar();
		archivo = new JMenu("Archivo");
		edicion = new JMenu("Editar");
		bar.add(archivo);
		bar.add(edicion);
		abrir = new JMenuItem("Abrir");
		creditos = new JMenuItem("Creditos");
		imprimir = new JMenuItem("Imprimir");
		pagina = new JMenuItem("Ir a Unclain(pagina)");
		oscuro = new JMenuItem("Cambiar estilo a SuperBlue");
		oscuro.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				if(e.getSource()==oscuro){
					panel1.setBackground(Color.WHITE);
					panel.setBackground(Color.LIGHT_GRAY);
					statuspanel.setBackground(Color.LIGHT_GRAY);
					status.setForeground(Color.BLACK);
				}
			}
		});
		archivo.add(abrir);
		archivo.add(imprimir);
		archivo.add(pagina);
		archivo.add(creditos);
		edicion.add(oscuro);
		this.setJMenuBar(bar);
		panel1 = new JPanel();
		b1 = new JButton("Inicio");
		b1.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				status.setText("Ir al Inicio de Unclain Manager");
			}
			public void mouseExited(MouseEvent e) {
				status.setText("En espera de una acción");
			}
		});
		b1.setBackground(Color.LIGHT_GRAY);
		b1.setFont(new Font("Arial", Font.PLAIN, 14));
		b1.setHorizontalAlignment(SwingConstants.LEFT);
		b2 = new JButton("Chat");
		b2.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				status.setText("Ir al chat de Unclain Manager");
			}
			public void mouseExited(MouseEvent e) {
				status.setText("En espera de una acción");
			}
		});
		b2.setBackground(Color.LIGHT_GRAY);
		b2.setFont(new Font("Arial", Font.PLAIN, 14));
		b2.setHorizontalAlignment(SwingConstants.LEFT);
		b3 = new JButton("Juegos");
		b3.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				status.setText("Ir a Juegos de Unclain Manager");
			}
			public void mouseExited(MouseEvent e) {
				status.setText("En espera de una acción");
			}
		});
		b3.setBackground(Color.LIGHT_GRAY);
		b3.setFont(new Font("Arial", Font.PLAIN, 14));
		b3.setHorizontalAlignment(SwingConstants.LEFT);
		b4 = new JButton("Otros");
		b4.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				status.setText("Ir a Otros,encontrarás varias cosas más");
			}
			public void mouseExited(MouseEvent e) {
				status.setText("En espera de una acción");
			}
		});
		b4.setBackground(Color.LIGHT_GRAY);
		b4.setFont(new Font("Arial", Font.PLAIN, 14));
		b4.setHorizontalAlignment(SwingConstants.LEFT);
		getContentPane().add(panel1,BorderLayout.NORTH);
		
		label = new Label("Unclain Manager 2012");
		label.addMouseListener(new MouseAdapter() {
			public void mouseEntered(MouseEvent e) {
				status.setText("Unclain Manager 2012 logo temporal");
			}
			public void mouseExited(MouseEvent e) {
				status.setText("En espera de una acción");
			}
		});
		label.setBackground(Color.GRAY);
		label.setForeground(Color.LIGHT_GRAY);
		label.setFont(new Font("TwyliteZone", Font.PLAIN, 19));
		panel1.add(label);
		panel1.add(b1);
		panel1.add(b2);
		panel1.add(b3);
		panel1.add(b4);
		statuspanel = new JPanel();
		statuspanel.setForeground(Color.WHITE);
		status = new JLabel("En espera de una acción");
		status.setHorizontalAlignment(SwingConstants.LEFT);
		status.setFont(new Font("Arial", Font.PLAIN, 11));
		status.setForeground(SystemColor.activeCaptionBorder);
		statuspanel.add(status);
		getContentPane().add(statuspanel,BorderLayout.SOUTH);
		
	}
	public void paintComponent(Graphics g){
		g.drawImage(logo,100,300,null);
	}
	public void cargarImagenes(){
		try{
			logo = ImageIO.read(getClass().getClassLoader().getResource("logo.png"));
		}catch(Exception e){
			System.out.println("No se encontro la imagen");
		}
	}

	public void actionPerformed(ActionEvent e) {
		
	}
}
Muchas gracias por tomaros el tiempo de ayudarme. :D