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:
Codigo entero: 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;
Código:
Muchas gracias por tomaros el tiempo de ayudarme. :D 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) { } }