Ajuda Evento entre JPanels

0 respostas
wanderval

pessoal pesso a ajuda de vcs, estou com um problema criei um exemplo do meu problema vou postar abaixo, Utilizei 2 JPanel para formar 1 em um coloquei o JtextField(fieldNome:) e JLabel(labelNome) e em outro JButton(cancelButton) Classes que me refiro: DataCadastro , ButtonCadastro onde ButtonCadastro esta add em DataCadastro. so que o botao contido na classe ButtonCadastro possui um evento que eu iria executar na classe FramePrincipal da mesma forma que executei o evento da classe PrincipalButton minha duvida é essa como consigo executar o evento do botao cancelar da classe ButtonCadastro na classe FramePrincipal

package controller;

import view.FramePrincipal;

public class Runner {
	public static void main(String[] args) {
		FramePrincipal fp = new FramePrincipal();
		fp.setVisible(true);
	}

}

FramePrincipal

package view;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import viewPanel.ButtonCadastro;
import viewPanel.DataCadastro;

import listeners.ListenerPanels;
import listeners.ListenersBotoes;

public class FramePrincipal extends JFrame {
	
	
	
	
	public PrincipalButton principalButton;
	public DataCadastro dataCadastro;
	public ButtonCadastro buttonCadastro = new ButtonCadastro();
	
	public FramePrincipal(){
		this.setTitle("Teste Panels");
		this.setSize(500,250);
		this.setLocationRelativeTo(null);
		
		
		initialize();
	}
	public void initialize(){
		
		add(getPanelButton(),BorderLayout.NORTH);
		add(getDataCadastro(),BorderLayout.CENTER);
		//getButtonPanel();
		
	}
	
	
	public PrincipalButton getPanelButton() {
		if(principalButton == null){
			principalButton = new PrincipalButton();
			principalButton.addButtonListener(new ListenersBotoes() {
				
				@Override
				public void listenerBotaoPesquisar() {
					
					JOptionPane.showMessageDialog(null, "Pesquisa click");
					
				}
				
				@Override
				public void listenerBotaoCadastrar() {
					JOptionPane.showMessageDialog(null, "Cadastro click");
					
				}
			});
		}
		return principalButton;
	}
	
	
	public ButtonCadastro getButtonPanel() {
		if(buttonCadastro == null){
			buttonCadastro = new ButtonCadastro();
			buttonCadastro.addButtonCancel(new ListenerPanels() {
				
				@Override
				public void listenerPanelCancel() {
				
					JOptionPane.showMessageDialog(null, "falha click cancel");
					
				}
			});
		}
		return buttonCadastro;
	}
	
	public DataCadastro getDataCadastro() {
		if(dataCadastro == null){
			dataCadastro = new DataCadastro();
			//dataCadastro.add(getButtonPanel());
		}
		return dataCadastro;
	}
	
	

}

[color=blue] PrincipalButton[/color]

package view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JPanel;

import listeners.ListenersBotoes;

public class PrincipalButton extends JPanel{
	
	JButton cadastroButton;
	JButton pesquisaButton;
	
	ArrayList<ListenersBotoes> listenerB = new ArrayList<ListenersBotoes>();
	
	public PrincipalButton() {
		initialize();
	}
	public void initialize(){
		add(getCadastroButton());
		add(getPesquisaButton());
	}
	public JButton getCadastroButton() {
		if(cadastroButton == null){
			cadastroButton = new JButton();
			cadastroButton.setText("Cadastro");
			cadastroButton.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent arg0) {
					for (ListenersBotoes listener : listenerB) {
						if(listener != null){
							listener.listenerBotaoCadastrar();
						}
					}
					
				}
			});
		}
		return cadastroButton;
	}
	public JButton getPesquisaButton() {
		if(pesquisaButton == null){
			pesquisaButton = new JButton();
			pesquisaButton.setText("Pesquisa");
			pesquisaButton.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent arg0) {
					for (ListenersBotoes listener : listenerB) {
						if(listener != null){
							listener.listenerBotaoPesquisar();
						}
					}
					
				}
			});
		}
		
		return pesquisaButton;
	}
	
	
	public void addButtonListener(ListenersBotoes listener){
		listenerB.add(listener);
	}
	

}

[color=blue] DataCadastro[/color]

package viewPanel;

import java.awt.Color;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class DataCadastro extends JPanel {
	
	private JLabel labelTitulo;
	private JLabel labelNome;
	
	private JTextField fieldNome;
	
	ButtonCadastro buttonCadastro = new ButtonCadastro();
	public DataCadastro(){
		setLayout(null);
		initialize();
	}
	public void initialize(){
		setBackground(Color.lightGray);
		
		add(getLabelTitulo());
		
		add(getLabelNome());
		add(getFieldNome());
		
		add(buttonCadastro.getCancelButton());
		
	}
	public JLabel getLabelTitulo() {
		if(labelTitulo == null){
			labelTitulo = new JLabel();
			labelTitulo.setText("Cadastro");
			labelTitulo.setBounds(210,-40,220,100);
		}
		return labelTitulo;
	}
	public JLabel getLabelNome() {
		if(labelNome == null){
			labelNome = new JLabel();
			labelNome.setText("Nome: ");
			labelNome.setBounds(10,40,100,60);
		}
		return labelNome;
	}
	public JTextField getFieldNome() {
		if(fieldNome == null){
			fieldNome = new JTextField();
			fieldNome.setBounds(80,60,220,20);
		}
		return fieldNome;
	}
	
	

}

ButtonCadastro

package viewPanel;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JPanel;

import listeners.ListenerPanels;

public class ButtonCadastro extends JPanel {
	
	private JButton cancelButton;
	
	ArrayList<ListenerPanels> listenerPanel = new ArrayList<ListenerPanels>();
	
	public ButtonCadastro(){
		initialize();
	}
	public void initialize(){
		add(getCancelButton());
	}
	public JButton getCancelButton() {
		if(cancelButton == null){
			cancelButton = new JButton();
			cancelButton.setText("Cancel");
			cancelButton.setBounds(10,120,100,30);
			cancelButton.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent arg0) {
					for (ListenerPanels listener : listenerPanel) {
						listener.listenerPanelCancel();
					}
					
				}
			});
		}
		return cancelButton;
	}
	
	public void addButtonCancel(ListenerPanels listener){
		listenerPanel.add(listener);
	}

}

Interfaces

package listeners;

public interface ListenerPanels {

	public void listenerPanelCancel();
}


package listeners;

public interface ListenersBotoes {
	public void listenerBotaoCadastrar();
	public void listenerBotaoPesquisar();

}
Criado 14 de novembro de 2011
Respostas 0
Participantes 1