Gridlayout em um BorderLayout

3 respostas
S
Pessoal...não sei se estou complicando, mas estou fazendo testes aqui e tentando isso:
        - Criei um borderlayout e o atribuí a um painel;
        - Na parte central do border, quero inserir um grid de conteúdo, mas não estou conseguindo. Aqui está
        trecho do meu código:

      BorderLayout layout = new BorderLayout();
  GridLayout conteudo = new GridLayout(2,2);
  add(new Button("Posicao1"));
  add(new Button("Posicao2"));
  add(new Button("Posicao3"));
  add(new Button("Posicao4"));
  JPanel painel = new JPanel(layout);
  painel.add(new JLabel("*****CADASTRO DE CLIENTES*****"),BorderLayout.NORTH);
  painel.add(new JButton("SUL"),BorderLayout.SOUTH);
  painel.add(new JButton("LESTE"),BorderLayout.EAST);
  painel.add(new JButton("OESTE"),BorderLayout.WEST);
  painel.add(conteudo,BorderLayout.CENTER);       /* O ERRO ESTÁ AQUI */

      Como corrigir isso ?

3 Respostas

I

tenta adicionar primeiro esse GridLayout em outro painel e aonde está dando o erro em vez de você adicionar o Grid você adiciona o painel que contém a grid.

S
Valeu...compilou legal, mas o painel com o grid ainda não está aparecendo...
       Aqui está o código completo :

import java.awt.;
import javax.swing.
;

public class TesteLayout2 extends JFrame {

public TesteLayout2(){

JFrame frame = new JFrame( );
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  BorderLayout layout = new BorderLayout();
  GridLayout conteudo = new GridLayout(2,2);
  add(new Button("Posicao1"));
  add(new Button("Posicao2"));
  add(new Button("Posicao3"));
  add(new Button("Posicao4"));
  JPanel painel = new JPanel(layout);
  JPanel painelcentro = new JPanel(conteudo);
  painel.add(new JButton("*****CADASTRO DE CLIENTES*****"),BorderLayout.NORTH);
  painel.add(new JButton("SUL"),BorderLayout.SOUTH);
  painel.add(new JButton("LESTE"),BorderLayout.EAST);
  painel.add(new JButton("OESTE"),BorderLayout.WEST);
  painel.add(painelcentro,BorderLayout.CENTER);
  frame.getContentPane().add(painel);
  //frame.pack();
  frame.setLocation(200,200);
  frame.setSize(400,400);
  frame.setVisible(true);
}

public static void main(String args[]){

TesteLayout2 aplicacao = new TesteLayout2();

}

}

O que será que estou esquecendo ?

I

Primeiro você quer que apareça os button que você nomeou com o texto “Posicao1”, “Posicao2”…
tudo na grid se sim, você deve adiciona-los ao seu painel central, e se perceber bem seu código ele extends o JFrame e logo no construtor ele cria um novo objeto JFrame ou seja você adicionou os Buttons que eu citei acima no frame errado já que você possui 2(a sua classe e a instancia que está no construtor e que é visualizada). Uma sugestão de código poderia ficar como mostrado abaixo:

import java.awt.*;
import javax.swing.*;

public class TesteLayout2 {

    public TesteLayout2() {

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        BorderLayout layout = new BorderLayout();
        GridLayout conteudo = new GridLayout(2, 2);

        JPanel painel = new JPanel(layout);
        JPanel painelcentro = new JPanel(conteudo);
        painel.add(new JButton("*****CADASTRO DE CLIENTES*****"), BorderLayout.NORTH);
        painel.add(new JButton("SUL"), BorderLayout.SOUTH);
        painel.add(new JButton("LESTE"), BorderLayout.EAST);
        painel.add(new JButton("OESTE"), BorderLayout.WEST);
        painel.add(painelcentro, BorderLayout.CENTER);
        frame.getContentPane().add(painel);
//adicionar button ao GridLayout
        painelcentro.add(new Button("Posicao1"));
        painelcentro.add(new Button("Posicao2"));
        painelcentro.add(new Button("Posicao3"));
        painelcentro.add(new Button("Posicao4"));

//frame.pack();
        frame.setLocation(200, 200);
        frame.setSize(400, 400);
        frame.setVisible(true);
    }

    public static void main(String args[]) {
        TesteLayout2 aplicacao = new TesteLayout2();
    }
}

flw!!!

Criado 26 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 3
Participantes 2