Colocar 2 JPanel em um JFrame

6 respostas
J

Pessoal,

Eu quero fazer uma tela onde na parte de cima aparece o menu e embaixo o resultado do click. Me falaram q eu preciso ter 2 JPanel em um JFrame. Mas eu não consigo juntar, ou aparece um ou aparece outro. Alguem pode dar um help?

public class testeJFrame {

	public static void main(String[] args) {
		
		FlowQuadro quadro = new FlowQuadro("Exemplo");
		quadro.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);	
		
		JPanel painel = new JPanel(new BorderLayout());
		JPanel painel2 = new JPanel(new BorderLayout());

		quadro.setContentPane(painel);
		quadro.setContentPane(painel2);
		
		JButton norte = new JButton("norte");
		JButton sul = new JButton("sul");		
		painel.add(norte,BorderLayout.NORTH);
		painel2.add(sul,BorderLayout.SOUTH);
		
		quadro.show();

	}

}

6 Respostas

K

Tente assim:

public class testeJFrame {
 
 	public static void main(String[] args) {
 		
 		FlowQuadro quadro = new FlowQuadro("Exemplo");
 		quadro.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);	
               quadro.setLayout( new BorderLayout() );
 		
 		JPanel painel = new JPanel(new BorderLayout());
 		JPanel painel2 = new JPanel(new BorderLayout());
 
 		quadro.add(painel);
 		quadro.add(painel2);
 		
 		JButton norte = new JButton("norte");
 		JButton sul = new JButton("sul");	
	
 		painel.add(norte,BorderLayout.NORTH);
 		painel2.add(sul,BorderLayout.SOUTH);
 		
 		quadro.setVisible(true);
 
 	}
 
 }

Veja o que estava faltando / fazendo errado e boa sorte…

Valeu? Até… :thumbup:
[s]

J

Num foi :frowning:

K

Poderia colar a classe FlowQuadro aqui ?
O que aconteceu de errado ?

Até… :thumbup:
[s]

J
package gui;



import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;



public class FlowQuadro extends JFrame{



	public FlowQuadro(String nome){

		super(nome);

		this.setSize(600,400);

	}



	public static void main(String[] args){

		FlowQuadro quadro = new FlowQuadro("Exemplo");

		quadro.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);		

	

		JPanel painel = new JPanel();

		quadro.setContentPane(painel);

		

		//JButton botao1 = new JButton("A");

		//JButton botao2 = new JButton("B");

		

		int i=0;

		while(i < 50){

			painel.add(new JButton("Botão" + i));	

		

		i++;

		}

		//painel.add(botao1);

		//painel.add(botao2);

		quadro.show();

	

	

	}





}

Ele simplesmente só mostra o panel 2 com o botão sul

P

Não entendi direito oque você quer mas ve se é isso aqui!
Qualquer dúvida [email removido]
Envie o link para eu poder acessar diretamente o forum ok?
Abraços

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

// Use extends JFrame pois a janela principal é um JFrame:
public class testeJFrame extends JFrame {
 
 	public static void main(String[] args) {
 		
 	   // Isso instancia a sua janela principal:
 	   new testeJFrame();
 	}

	// Cria sua janela principal:
	public testeJFrame() {

	   // Maximiza a janela principal quando aberta:
	   setExtendedState( JFrame.MAXIMIZED_BOTH );
	   // Apenas para encerrar a execução do programa ao ser fechado:
 	   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
 	
 	   // Isso instancia os painéis e seta o layout de cada um deles como sendo FlowLayout:
 	   painel = new JPanel(new FlowLayout());
 	   painel2 = new JPanel(new FlowLayout());
 	   
 	   // Colorir os painéis:
 	   painel.setBackground( Color.red );
 	   painel2.setBackground( Color.blue );
 	
 	   // Isso instancia o botão e coloca o texto nele:
 	   botao = new JButton("norte");
 	   
 	   // Isso instancia o label e seta um texto nele:
 	   item = new JLabel( "Item adicionado ao painel2 quando o botão foi clicado!" );
	   
	   // Pega o conteúdo da janela principal e adiciona os painéis através do BorderLayout:
	   getContentPane().add( painel, BorderLayout.NORTH );
	   getContentPane().add( painel2, BorderLayout.CENTER );

	   // Adiciona o botão no painel (north):
 	   painel.add( botao, BorderLayout.CENTER);
 	   
 	   // Exibe a janela principal:
 	   setVisible( true );
 	   
 	   // Quando clicar no botão inserir o label "item" no painel 2:
 	   botao.addActionListener(new ActionListener(){
 	   
 	      public void actionPerformed( ActionEvent e ){
 	      	
 	      	 // Adiciona o item ao painel 2:
 	         painel2.add( item );
 	         // Só para atualizar a janela e exibir o item adicionado:
 	         show();
 	      }	
 	   });
	}

    // Declarações dos componentes:
	private JPanel painel, painel2;
	private JButton botao; 
	private JLabel item;
 }
[color=red][/color]
M

Olá, acho que faltou vc colocar um setBounds();

public void mostrarConsulta(){ PConsultaEstado pcon = new PConsultaEstado(); getContentPane().add(pcon).setBounds(0, 0, 200, 415); }

public void mostrarCadastro(){ PCadastroEstado pcad = new PCadastroEstado(); getContentPane().add(pcad).setBounds(0, 0, 689, 461);

Criado 29 de março de 2006
Ultima resposta 7 de jun. de 2012
Respostas 6
Participantes 4