Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

saibot4fun

Jpanel / JFrame

Recommended Posts

Olá companheiros!

Estou com uma duvida, sou iniciante (inicante mesmo) e to me dedicando a estudar java,

Estou com uma duvida que é ate boba para vcs , mas pra min tá dificil.....

Assim fiz a classe main, e a classe que cria uma janela para min (JFRAME)

ok ate ai tudo bem, ai fiz um evento em um menu da minha janela.... para abrir um Jpanel(que esta em outra classe) no meio da msma janela, sem abrir outra, mas infelizmente nao estou conseguindo, nao sei como fazer, andei lendo e tentando mas atolei ai, alguem pode me esclarer como faço isso?

 

Resumindo, o que quero é que quando eu clicar no menu ele altere apenas o meio do Jframe, sem abrir outra janela ou etc....

se alguém me ajudar ficarei muito grato!

 

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

CardLayout!!! Pesquise sobre esse gerenciador de layout.. fiz um pequeno exemplo

Basicamente funciona assim: você tem um container e definie q ele tera um gerenciador do tipo cardLayout, e adiciona todos os compomentes nele, esses componentes vao ser

empilhados na ordem em q forem colocados, depois adiciona esse container no teu frame... kdo você adiciona cada componente no container você especifica uma string q você usara para definir qual dos componentes deve ficar na frente.. repara como isso se faz kdo trato o eventos dos menus...

 

import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;


public class Janela extends JFrame implements ActionListener {
private JPanel panel1;
private JPanel panel2;
private JPanel container;
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem itemPanel1;
private JMenuItem itemPanel2;

public Janela() {
	container = new JPanel(new CardLayout());
	panel1  = new JPanel();
	panel1.add(new JButton("Botao do Panel1"));

	panel2  = new JPanel();
	panel2.add(new JButton("Botao do Panel2"));

	// adiciona os pannels ao container
	container.add(panel1, "primeiro");
	container.add(panel2, "segundo");

	// adiciona o container ao jframe
	add(container);

	// cria o menu
	menuBar = new JMenuBar();
	menu = new JMenu("Troca Panel");
	itemPanel1 = new JMenuItem("Panel1");
	itemPanel2 = new JMenuItem("Panel2");
	itemPanel1.addActionListener(this);
	itemPanel2.addActionListener(this);
	menu.add(itemPanel1);
	menu.add(itemPanel2);
	menuBar.add(menu);
	setJMenuBar(menuBar);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setSize(200,200);
	setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
	CardLayout layout = (CardLayout)container.getLayout();
	if(e.getSource() == itemPanel1 ) {
		layout.show(container, "primeiro");
	} else if(e.getSource() ==  itemPanel2){
		layout.show(container, "segundo");
	}
}


public static void main(String[] args) {
	new Janela();
}
}

 

Abraco.. qlquer duvida eh soh postar! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.