ola galera…
estou com um problema sobre herança e preciso de uma forcinha de voceis…
é o seguinte:
tenho uma TELAMODELO, ela é composta por um internalframe, um painel com botoes (comuns para todas as telas de cadastros) e um jpanel com um label para enviar mensagem ao usuario.
dai tenho minhas telas de cadastros, cadastro de cliente, fornecedor, produto, etc.
usarei como exemplo o cadastro de cidade:
caso eu esteja cadastrando uma cidade e nao tenha o estado previamente cadastrado, irei clicar em um menuitem e selecionarei cadastrar estado, a qual usará a TELAMODELO para ser criado e na tela cidade será ocultada com um setvisible(false).
PROBLEMA:
depois de cadastrar o estado e fechar a tela de estado o meu jpanel para enviar informaçoes para o usuario simplesmente desaparece, e nao consigo mais fazer ele aparecer
postarei o codigo da telamodelo e do cadastro de cidade abaixo
TELA MODELO (deletei algumas coisas para nao ficar mais extenso do que é!)
package Interface.Tela.TelaCadastros;
import Interface.Componente.Componentes.MeuButton;
import Interface.Tela.TelaPesquisa.TelaPesquisaModelo;
import Interface.Tela.TelaPrincipal.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
public class TelaModelo extends JInternalFrame implements ActionListener , InternalFrameListener{
GridBagLayout gridTela;
GridBagConstraints constraints;
String NomeTitleBorder;
Container painel1 = getContentPane();
Container painel2 = getContentPane();
public JPanel jpCentral = new JPanel();
public JPanel jpBotoes = new JPanel();
public JPanel jpInformacoes = new JPanel();
TelaPesquisaModelo telaPesquisa;
public static JLabel jlInfoCadastro = new JLabel();
public MeuButton jbInserir = new MeuButton(" Inserir","/img/salvar.png","/img/sal.png", 0,13,"Showcard Gothic",11);
public MeuButton jbAlterar = new MeuButton(" Alterar","/img/alterar.png","/img/edt.png", 0,13,"Showcard Gothic",11);
public MeuButton jbPesquisar = new MeuButton(" Pesquisar","/img/buscar3.png","/img/pesquisa10.png" ,0,13,"Showcard Gothic",11);
public MeuButton jbConfirmar = new MeuButton(" Confirmar","/img/acept.png","/img/ace.png", 0,13,"Showcard Gothic",11);
public MeuButton jbCancelar = new MeuButton(" Cancelar","/img/cancel.png","/img/can.png", 0,13,"Showcard Gothic",11);
static ImageIcon iconInformacao = new ImageIcon("OutrosIcones/ico4.png");
static ImageIcon iconErro = new ImageIcon("OutrosIcones/ico2.png");
static ImageIcon iconSucesso = new ImageIcon("OutrosIcones/ico3.png");
String menu1;
public JMenuBar jmbPrincipal = new JMenuBar();
public JMenu jmCadastro = new JMenu("<html><b>Cadastros");
public JMenuItem jmiMenu1 = new JMenuItem();
public JMenuItem jmiMenu2 = new JMenuItem();
public JMenuItem jmiMenu3 = new JMenuItem();
public static JDesktop jpDesktop = new JDesktop();
public boolean dadoValido;
public TelaModelo(String titulo,String NomeTitleBorder, int largura, int altura) {
super(titulo);
setTitle(titulo);
setSize(largura,altura);
gridTela = new GridBagLayout();
jlInfoCadastro.setFont(new Font("Dialog", Font.BOLD, 12));
constraints = new GridBagConstraints();
painel1.add("North", jpCentral);
painel1.add("Center", jpInformacoes);
painel2.add("South", jpBotoes);
jpInformacoes.add("Center",jlInfoCadastro);
jpInformacoes.setBorder(new TitledBorder(""));
jpCentral.setBorder(new TitledBorder(NomeTitleBorder));
jpBotoes.setBorder(new TitledBorder("Opções"));
jpBotoes.setLayout(new GridLayout(1,5));
jpCentral.setLayout(gridTela);
jpBotoes.add(jbInserir);
jpBotoes.add(jbAlterar);
jpBotoes.add(jbPesquisar);
jpBotoes.add(jbConfirmar);
jpBotoes.add(jbCancelar);
setJMenuBar(jmbPrincipal);
jmbPrincipal.add(jmCadastro);
jmCadastro.add(jmiMenu1);
jmCadastro.add(jmiMenu2);
jmCadastro.add(jmiMenu3);
jbAlterar.getSize();
jbAlterar.setToolTipText("<html>Depois de Carregar Alguma Informação<br> Permite a Alteração Da Mesma");
jbCancelar.setToolTipText("Cancelar Operação Sendo Realizada e Limpa os Campos");
jbConfirmar.setToolTipText("Confira a Operação em Andamento");
jbPesquisar.setToolTipText("Pesquisar Informações e Disponibiliza Outras Opções de Interação");
jbInserir.setToolTipText("Libera os Campos Para Inserir Informações");
Component content = this.getContentPane();
int x = (content.getWidth() + 350);
int y = (content.getHeight()+ 200);
this.setLocation(x, y);
addEventos();
MenuBarTelaModelo();
maximizaMinimizaFecha();
setResizable(false);
setVisible(true);
}
public void MenuBarTelaModelo(){
jmbPrincipal.setVisible(false);
jmCadastro.setVisible(false);
jmiMenu1.setVisible(false);
jmiMenu2.setVisible(false);
jmiMenu3.setVisible(false);
jmiMenu1.addActionListener(this);
jmiMenu2.addActionListener(this);
jmiMenu3.addActionListener(this);
}
public static void setLabelCadastro(String mensagem,int erro){
if(erro == 1){
jlInfoCadastro.setText(mensagem);
jlInfoCadastro.setIcon(iconErro);
jlInfoCadastro.setForeground(Color.red);
}
if(erro == 2){
jlInfoCadastro.setText(mensagem);
jlInfoCadastro.setIcon(iconSucesso);
jlInfoCadastro.setForeground(new Color(0,205,0));
}
if(erro == 3){
jlInfoCadastro.setText(mensagem);
jlInfoCadastro.setForeground(new Color(0,245,255));
}
if(erro ==4){
jlInfoCadastro.setText(mensagem);
jlInfoCadastro.setIcon(iconInformacao);
jlInfoCadastro.setForeground(Color.BLUE);
}
}
public void addEventos(){
jbInserir.addActionListener(this);
jbAlterar.addActionListener(this);
jbPesquisar.addActionListener(this);
jbConfirmar.addActionListener(this);
jbCancelar.addActionListener(this);
addInternalFrameListener(this);
}
public void maximizaMinimizaFecha(){
this.resizable = false;
this.closable = true;
this.maximizable = false;
this.iconable = true;
}
public void habilitaBotoes(boolean status) {
jbInserir.setEnabled(status);
jbAlterar.setEnabled(status);
jbPesquisar.setEnabled(status);
jbConfirmar.setEnabled(!status);
jbCancelar.setEnabled(!status);
}
public void addComponent(Object component, int linhaini, int colunaini,int largura, int altura, int ncoluna, int nlinha){
constraints.anchor = GridBagConstraints.WEST;
constraints.gridx=colunaini;
constraints.gridy=linhaini;
constraints.gridwidth=ncoluna;
constraints.gridheight=nlinha;
constraints.insets = new Insets(5, 5, 5, 5);
jpCentral.add((Component) component, constraints);
}
}
TELA CADASTRO DE CIDADE
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Interface.Tela.TelaCadastros;
import Banco.Tela.Cadastros.Cidade;
import Banco.Tela.Cadastros.Estado;
import Interface.Componente.Componentes.Campos;
import Interface.Componente.Componentes.MeuCombo;
import Interface.Tela.TelaPesquisa.TelaPesquisaCidade;
import Interface.Tela.TelaPrincipal.TelaPrincipal;
import Interface.Tela.TelaPrincipal.VerificaTelaAberta;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.InternalFrameEvent;
public class TelaCadastroCidade extends TelaModelo implements ActionListener{
private Cidade cidade = new Cidade();
private Estado estado = new Estado();
static TelaPesquisaCidade telaPesquisa ;
TelaCadastroEstado telaEstado;
private JLabel jlCodigo = new JLabel("<html><b>Codigo: ");
private JLabel jlNome = new JLabel("<html><b>Nome: <font color = red>*");
private JLabel jlEstado = new JLabel("<html><b>Estado: <font color = red>*");
private JLabel jlStatus = new JLabel("<html><b>Status: <font color = red>*");
public JTextField tfCodigo = new JTextField(4);
public Campos tfNome = new Campos(22,3,true);
private String status[] = {"ATIVO","INATIVO"};
private JComboBox jcStatus = new JComboBox(status);
private MeuCombo jcEstado = new MeuCombo("select codigoEstado, nome from estado where status = 'ATIVO' order by nome");
private String codigo;
private int codigoEstado;
private String nome;
private String status2;
public static int codigoBuscar;
public boolean insert = false;
Object[] teste;
public TelaCadastroCidade(String titulo,String NomeTitleBorder, int largura, int altura){
super(titulo,NomeTitleBorder, largura, altura);
TelaPrincipal.setInformacoes("Cadastro de Informações Referentes a Cidades", 3);
TelaModelo.setLabelCadastro("", 1);
addCampo();
addEvetos();
setVisible(true);
}
private void addCampo() {
addComponent(jlCodigo, 1, 0, 1, 1, 1, 1);
addComponent(tfCodigo, 1, 1, 1, 1, 1, 1);
tfCodigo.setEnabled(false);
addComponent(jlStatus, 1, 2, 1, 1, 1, 1);
addComponent(jcStatus, 1, 3, 1, 1, 1, 1);
addComponent(jlNome, 2, 0, 1, 1, 1, 1);
addComponent(tfNome, 2, 1, 1, 1, 3, 1);
addComponent(jlEstado, 3, 0, 1, 1, 1, 1);
addComponent(jcEstado, 3, 1, 1, 1, 3, 1);
bloqueiaCampos(false);
}
@Override
public boolean validacaoDados (){
if(tfNome.getText().trim().length() == 0){
TelaPrincipal.setInformacoes("O Campo Nome Não Foi Preenchido Corretamente", 1);
TelaCadastroCidade.setLabelCadastro("Preencha o Campo Nome", 3);
tfNome.requestFocusInWindow();
return dadoValido = false;
}
if(jcEstado.getSelectedIndex() == -1 ){
TelaPrincipal.setInformacoes("O Campo Estado Não Foi Preenchido Corretamente", 1);
TelaCadastroCidade.setLabelCadastro("Preencha o Campo Estado", 3);
return dadoValido = false;
}
return dadoValido = true;
}
public void verificaDuplicidade(){
cidade.setDuplicidadeNomeCidade(tfNome.getText());
cidade.setDuplicidadeEstado(jcEstado.getValue());
cidade.verificaDuplicidade();
}
@Override
public void inserir(){
// inserir no banco de dados
cidade.setCodigoEstado(jcEstado.getValue());
cidade.setNome(tfNome.getText());
cidade.setStatus(jcStatus.getSelectedItem().toString());
cidade.inserirCidade();
}
public void alterar(){
// altera dados do cadastro cidade
cidade.setCodigo(Integer.parseInt(tfCodigo.getText()));
cidade.setNome(tfNome.getText());
cidade.setCodigoEstado(jcEstado.getValue());
cidade.setStatus(jcStatus.getSelectedItem().toString());
cidade.alteraCidade();
}
public void setCodigoBuscar(int codigoBuscar ){
//Joga Dados na Tela De Cadastro
Object []dadosSelect = cidade.preencheTelaCidade(codigoBuscar);
codigo = dadosSelect[0].toString();
nome = dadosSelect[1].toString();
codigoEstado = Integer.parseInt(dadosSelect[2].toString());
status2 = dadosSelect[3].toString();
tfCodigo.setText(codigo);
tfNome.setText(nome);
jcEstado.setValue(codigoEstado);
jcStatus.setSelectedItem(status2);
bloqueiaCampos(false);
this.setVisible(true);
telaPesquisa.setVisible(false);
TelaCadastroCidade.setLabelCadastro("Dados Da Cidade " + nome.toUpperCase() + " Disponiveis!" , 2);
}
@Override
public void bloqueiaCampos(boolean permitirEdicao) {
if(permitirEdicao == false){
tfNome.setEditable(false);
jcEstado.setEnabled(false);
jcStatus.setEnabled(false);
}else{
tfNome.setEditable(true);
jcEstado.setEnabled(true);
jcStatus.setEnabled(true);
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jmiMenu1) {
if(VerificaTelaAberta.verificaFrame(jpDesktop, telaEstado)==false){
telaEstado = new TelaCadastroEstado("Cadastro de Estado","Dados do Cadastro de Estado", 280,240);
TelaCadastroEstado.setLabelCadastro("Campos Com * São Obrigatórios", 4);
teste = jpInformacoes.getComponents();
TelaPrincipal.jpDesktop.add(telaEstado);
this.setVisible(false);
telaEstado.addInternalFrameListener(this);
}else{
telaEstado.moveToFront();
}
}
if (e.getSource() == jbPesquisar) {
if(VerificaTelaAberta.verificaFrame(jpDesktop, telaPesquisa) == false){
telaPesquisa = new TelaPesquisaCidade("Pesquisa Dados das Cidade", this);
TelaPrincipal.jpDesktop.add(telaPesquisa);
jpDesktop.moveToFront(telaPesquisa);
TelaPrincipal.setInformacoes("Disponibiliza Dados das Cidades Usadas em Varios Tipos de Cadastros", 2);
this.setVisible(false);
}else
telaPesquisa.moveToFront();
}
if (e.getSource() == jbConfirmar){
habilitaBotoes(true);
bloqueiaCampos(true);
if (validacaoDados() == true){
if(verificaInsert() == true){
verificaDuplicidade();
if (cidade.verificaDuplicidade() == false){
inserir();
limpaTela();
}
}
if (verificaInsert() == false){
alterar();
limpaTela();
bloqueiaCampos(true);
}
}
}
if (e.getSource() == jbAlterar){
habilitaBotoes(false);
bloqueiaCampos(true);
jbConfirmar.setEnabled(true);
}
if (e.getSource() == jbPesquisar){
habilitaBotoes(false);
jbAlterar.setEnabled(true);
jbCancelar.setEnabled(true);
jbConfirmar.setEnabled(false);
jbInserir.setEnabled(false);
}
if (e.getSource() == jbCancelar){
habilitaBotoes(true);
TelaPrincipal.setInformacoes("Bem-Vindo ao S.M.I.C.S - Sistema de Gerenciamento de Fazendas Agricolas", 3);
TelaModelo.setLabelCadastro("Campos Com * São Obrigatórios", 4);
bloqueiaCampos(false);
limpaTela();
}
if (e.getSource() == jbInserir){
habilitaBotoes(false);
bloqueiaCampos(true);
}
}
@Override
public void MenuBarTelaModelo(){
jmbPrincipal.setVisible(true);
jmCadastro.setVisible(true);
jmiMenu1.setText("<html><b>Estado");
jmiMenu1.setIcon(TelaPrincipal.iconCadEstado);
jmiMenu1.setVisible(true);
jmiMenu2.setVisible(false);
jmiMenu3.setVisible(false);
}
private void addEvetos() {
jmiMenu1.addActionListener(this);
jbCancelar.addActionListener(this);
}
@Override
public void limpaTela(){
jcEstado.setValue(0);
tfNome.setText("");
tfCodigo.setText("");
}
public boolean verificaInsert(){
String verifica = "";
verifica = tfCodigo.getText();
if(verifica.equals("")){
insert = true;
}else
if(!verifica.equals(""))
insert = false;
return insert;
}
@Override
public void internalFrameClosed(InternalFrameEvent e) {
super.internalFrameClosed(e);
if(e.getSource() == telaEstado){
this.setVisible(true);
}
}
}
desde ja agradecendo a ajuda