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();
}