Controle de Painéis

5 respostas
E

Olá,

Eu estou criando uma interface que possui um JFrame utilizando BorderLayout, e JPanels nas posições PAGE_START, LINE_START e CENTER:
public void build(){
	
	PainelEsquerdo painelEsquerdo = new PainelEsquerdo();
	painelEsquerdo.build();
	
	PainelTopo painelTopo = new PainelTopo();
	painelTopo.build();
	
	PainelCadastro painelCentro = new PainelCadastro();
	painelCentro.build();
	
	ClassFrame frame = new ClassFrame();
	frame.getContentPane().add(painelTopo, BorderLayout.PAGE_START);
	frame.getContentPane().add(painelEsquerdo, BorderLayout.LINE_START);
	frame.add(painelCentro, BorderLayout.CENTER);
}

O Painel esquerdo(LINE_START), possui dois botões:

public void build(){
	
	Dimension dimensao = new Dimension(100, 20);
	
	JButton cadastro = new JButton("Cadastro");
	cadastro.addActionListener(new Ouvidor());
	cadastro.setMinimumSize(dimensao);
	cadastro.setMaximumSize(dimensao);
	
	JButton pedido = new JButton("Pedido");
	pedido.addActionListener(new Ouvidor2());
	pedido.setMinimumSize(dimensao);
	pedido.setMaximumSize(dimensao);
	
	this.add(cadastro);
	this.add(Box.createRigidArea(new Dimension(0,5)));
	this.add(pedido);
}

Eu queria que ao clicar nos botões eu pudesse alternar os painéis centrais(CENTER).

Gostaria de saber :
[list]Qual a melhor abordagem para criação do Listener;[/list]
[list]O que eu preciso fazer para o Ouvidor buscar o Frame principal e atualizá-lo.[/list]
[list]Eu consigo colocar outras janelas dentro do Frame?[/list]

5 Respostas

Adolpho_Alves

Uma opção é setar o tamanho e a visibilidade dos itens do menu central.

Component.setSize(Dimension); ou Component.setVisible(boolean);

vc tambem pode setar um painel na CENTER e dentro desse painel adicionar outros paineis e manipular a visibilidade deles.

Se entendi bem sua duvida isso te ajuda!

E

Obrigado,

mas o que eu realmente gostaria de saber como eu faço para que o Listener possa saber aonde ele deve fazer a atualização. Porque a ação foi colocada em um botão que está no Painel esquerdo, mas quem deve ser atualizado no painel central.

douglas_vidotto

Hum, pelo que entendi o você quer que o seu painel central receba as ações do botão, portanto acredito que você deva fazer o seu painel central como ouvinte dos botões implementando a interface ActionListener, passando esse objeto no método addActionListener. Na sua classe do painel central implemente o método actionPerformed para que ele atualize conforme você deseja. Tenta fazer isso e veja se funciona. Acredito que seja dessa forma.

Abraços.

E

Legal deu certo,

Eu fiz isso, passei a referência do Painel Central Para o Painel Esquerdo, e ele foi colocado como Ouvidor.

Obrigado

squall926

Ola!
nah usa cardlayout e divirta-se!!!

Criado 16 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 5
Participantes 4