Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con GridBagLayout

Estas en el tema de Problema con GridBagLayout en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/07/2012, 13:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 29
Antigüedad: 12 años
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

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:28.