JDialog Modal entre classes de Packages Diferentes

Então Galera, minha primeira vez aqui.

seguinte to com um problema em utilizar o método setModel, tenho 4 classes sendo que 2 são de um pacote View e as outras São de um pacote Controle,
no pacote View tenho a classe 1 que vai ter um Frame principal e outra que tem um JDialog, no pacote Controle tenho as classes 3 e 4.
mais ou menos assim

[code]package View;

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

import java.awt.event.ActionListener;

public class ViewFluxoDeCaixa{

public JFrame janelaFluxo;
public JButton entradas;
public JButton saidas;
public JButton agenda;
public JButton sair;
public JLabel lblFluxo;
public JPanel painel;

public ViewFluxoDeCaixa(){
	
	janelaFluxo = new JFrame();
	janelaFluxo.setTitle("Fluxo De Caixa");
	janelaFluxo.setExtendedState(JFrame.MAXIMIZED_BOTH);		
	janelaFluxo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	painel = new JPanel();
	painel.setLayout(null);
	painel.setBackground(new java.awt.Color(0, 0, 0));
	
	lblFluxo = new JLabel("Fluxo de Caixa");
	lblFluxo.setFont(new Font("Serif", Font.BOLD, 50));
	lblFluxo.setBackground(new java.awt.Color(255, 255, 255));
	lblFluxo.setBounds(190, 50, 500, 60);
	painel.add(lblFluxo);
	
	entradas = new JButton("Entradas");
	entradas.setFont(new Font("Serif", Font.BOLD, 25));
	entradas.setBounds(150, 200, 300, 35);
	painel.add(entradas);
	
	saidas = new JButton("Saídas");
	saidas.setFont(new Font("Serif", Font.BOLD, 25));
	saidas.setBounds(150, 300, 300, 35);
	painel.add(saidas);
	
	agenda = new JButton("Agenda Financeira");
	agenda.setFont(new Font("Serif", Font.BOLD, 25));
	agenda.setBounds(150, 400, 300, 35);
	painel.add(agenda);
	
	sair = new JButton("Sair");
	sair.setFont(new Font("Serif", Font.BOLD, 25));
	sair.setBounds(150, 600, 100, 35);
	painel.add(sair);
	
	janelaFluxo.add(painel);
	janelaFluxo.setVisible(true);
}

public void addEntradasListener(ActionListener a){ 

	entradas.addActionListener(a);
	 
}

public void addSaidasListener(ActionListener a){ 

	saidas.addActionListener(a);
	 
}

public void addAgendaListener(ActionListener a){ 

	agenda.addActionListener(a);
	 
}

public void addSairListener(ActionListener a){ 

	sair.addActionListener(a);
	 
}

}[/code]

[code]package Controle;

import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import java.util.Observable; 
import javax.swing.JOptionPane;
import View.*;

public class ControleFluxoDeCaixa extends ViewFluxoDeCaixa{

  public ControleFluxoDeCaixa() 
  { 
     addEntradasListener(new EntradasListener()); 
     addSaidasListener(new SaidasListener());
     addAgendaListener(new AgendaListener());
     addSairListener(new SairListener()); 
  } 
	
  class EntradasListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        new ControleEntradas();
     } 
  } 
	
	class SaidasListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  }
	class AgendaListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  } 

	class SairListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        System.exit(0);
     } 
  } 
	public static void main(String []args){
		
		new ControleFluxoDeCaixa();
		
	}

}[/code]

[code]package View;

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

import java.awt.event.ActionListener;

public class ViewEntradas extends JDialog{

public JButton addEntrada;
public JButton alterarEntrada;
public JButton listarEntradas;
public JButton excluirEntrada;
public JButton confirmarEntrada;
public JButton sairEntradas;
public JLabel lblEntradas;
public JPanel painel;

public ViewEntradas(){

	setTitle("Entradas");
	setSize(800, 800);		
	setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	painel = new JPanel();
	painel.setLayout(null);
	painel.setBackground(new java.awt.Color(0, 0, 0));
	
	lblEntradas = new JLabel("Entradas");
	lblEntradas.setFont(new Font("Serif", Font.BOLD, 50));
	lblEntradas.setBackground(new java.awt.Color(255, 255, 255));
	lblEntradas.setBounds(150, 10, 500, 60);
	painel.add(lblEntradas);
	
	addEntrada = new JButton("Adicionar Entrada");
	addEntrada.setFont(new Font("Serif", Font.BOLD, 25));
	addEntrada.setBounds(100, 100, 300, 35);
	painel.add(addEntrada);
	
	alterarEntrada = new JButton("Alterar Entrada");
	alterarEntrada.setFont(new Font("Serif", Font.BOLD, 25));
	alterarEntrada.setBounds(100, 200, 300, 35);
	painel.add(alterarEntrada);
	
	listarEntradas = new JButton("Listar Entradas");
	listarEntradas.setFont(new Font("Serif", Font.BOLD, 25));
	listarEntradas.setBounds(100, 300, 300, 35);
	painel.add(listarEntradas);
	
	excluirEntrada = new JButton("Excluir Entrada");
	excluirEntrada.setFont(new Font("Serif", Font.BOLD, 25));
	excluirEntrada.setBounds(100, 400, 300, 35);
	painel.add(excluirEntrada);
	
	confirmarEntrada = new JButton("Confirmar Entrada");
	confirmarEntrada.setFont(new Font("Serif", Font.BOLD, 25));
	confirmarEntrada.setBounds(100, 500, 300, 35);
	painel.add(confirmarEntrada);
	
	sairEntradas = new JButton("Fechar");
	sairEntradas.setFont(new Font("Serif", Font.BOLD, 25));
	sairEntradas.setBounds(100, 700, 150, 35);
	painel.add(sairEntradas);
	
	add(painel);
	setVisible(true);
}

public void addAddEntradasListener(ActionListener a){ 

	addEntrada.addActionListener(a);
	 
}

public void addAlterarEntradaListener(ActionListener a){ 

	alterarEntrada.addActionListener(a);
	 
}
    
    public void addListarEntradasListener(ActionListener a){ 

	listarEntradas.addActionListener(a);
	 
}

public void addExcluirEntradaListener(ActionListener a){ 

	excluirEntrada.addActionListener(a);
	 
}

public void addConfirmarEntradaListener(ActionListener a){ 

	confirmarEntrada.addActionListener(a);
	 
}

public void addSairEntradasListener(ActionListener a){ 

	sairEntradas.addActionListener(a);
	 
}

}[/code]

[code]package Controle;

import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener;
import javax.swing.;
import View.
;

public class ControleEntradas extends ViewEntradas{

  public ControleEntradas()
  { 
		super.setModal(true);
     addAddEntradasListener(new AddEntradasListener()); 
     addAlterarEntradaListener(new AlterarEntradaListener());
     addListarEntradasListener(new ListarEntradasListener());
		addExcluirEntradaListener(new ExcluirEntradaListener());
		addConfirmarEntradaListener(new ConfirmarEntradaListener());
     addSairEntradasListener(new SairEntradasListener()); 
  } 
	
  class AddEntradasListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  } 
	
	class AlterarEntradaListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  }
	class ListarEntradasListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  } 

	class ExcluirEntradaListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  } 

	class ConfirmarEntradaListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        JOptionPane.showMessageDialog(null,"Implementar");
     } 
  } 
	
	class SairEntradasListener implements ActionListener{ 
     public void actionPerformed(ActionEvent e) 
     { 
        dispose();
     } 
  } [/code]

bom o codigo inteiro que fiz até agora ta aí

não estou achando um jeito de usar o setModal corretamente

tentei instanciando a classe2 com os parâmetros (Frame, String, Boollean) mas não consegui por ter que na classe3 chamar a classe2 e não a classe4 e assim não funcionando as ações dos botões.

como faço? se algume entender minha explicação o que acho difícil, quase que eu msm não entendo

Bom Galera consegui resolver esse problema da seguinte maneira.

o construtor do JDialog assim

o construtor da classe controle do JDialog assim.

public ControleEntradas(JFrame janela, String titolo, boolean Modal) { super(janela, titolo, Modal); }

e na ação do botão que inicia a o construtor da classe controle assim

class EntradasListener implements ActionListener{ public void actionPerformed(ActionEvent e) { new ControleEntradas(janelaFluxo, "Entradas", true); } }

mas só que apareceu outro problema. quando o modal esta “true” as ações dos botões da janela JDialog não funionam, e quando esta “false” td volta ao normal e o JFrame que tinha que ser bloqueado também volta a ativa.

alguem sabe como resolver isso?