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 ?
Gridlayout em um BorderLayout
3 Respostas
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.
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 ?
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!!!