Fala galera, eu possui duas telas, a primeira que seria a pai e a segunda a filha, a primeira existe um metodo que dispara e chama a filha, eu queria q se a filha estivesse ativa o meu metodo nao fica-se dando new filha e criando mais uma na tela e sim so subistituindo as informações que tem na filha, como posso fazer isso?
Exemplificando : Na filha possui um Jtable, e gostaria qeu so atualiza-se a informações que existe na JTable e não criar uma nova tela e sobrepor ela mesma, alguem tem ideia? do que eu posso fazer em vez de dar um new?
Felipeti vc pode utilizar o padrão Singleton para obeter sempre a mesma instancia do JInternalFrame
seria algo do tipo
private static JFrameInternal meuJFrameInternal = null;
public synchronized static JFrameInternal getInstance() {
if (meuJFrameInternal == null) {
meuJFrameInternal = new JFrameInternal();
}
return meuJFrameInternal;
}
ai no seu Jframe Pai, vc só chamaria o metodo getInstance() que ele iria retornar sempre a mesma instancia,
obs: não testei se ta funcionando direitinho :roll:
…
ou tambem pode dar uma olhada no observer e observator
http://www.devmedia.com.br/o-padrao-observer-e-swing/5719
Espero ter ajudado :lol:
Att.
Fala leo, então brother da uma olhada no meu metodo que eu chamo a outra tela…
public void iniciarAvisoAlter(ArrayList lista){
ArrayList lista_ = new ArrayList();
lista_ = lista;
// if(this.aviso == null){
aviso = new JFAvisoAlteracao(lista_,this);
//this.setVisible(false);
this.getParent();
this.getParent().add(aviso);
int lDesk = this.getWidth();
int aDesk = this.getHeight();
int lIFrame = aviso.getWidth();
int aIFrame = aviso.getHeight();
aviso.setLocation( lDesk / 2 - lIFrame / 2, aDesk / 2 - aIFrame / 2 );
aviso.setVisible(true);
// } else {
// aviso.
// this.aviso(lista_,this);
// }
}
Nessa linha : aviso = new JFAvisoAlteracao(lista_,this);
eu chamo um novo, eu so queria que ele verifica-se, se fosse =! null, ele pega o mesmo e so manda a lista_ pra ele, entedeu?
Ficou claro a minha dúvida?
Não sei se seria a melhor pratica,
mas vc pode utilizar o metodo do singleton na sua JFrameInternal e lá sera feito o controle se esta é null ou não,
e passar como parametro uma List e chamar algum metodo no mesmo para listar novamente seu JTable,
vejo algo do tipo
//Class Principal
public void iniciarAvisoAlter(ArrayList lista){
aviso = JFAvisoAlteracao.getInstance(lista); //Retornará a instancia Singleton do JFrameInternal (SEMPRE A MESMA INSTANCIA)
this.getParent();
this.getParent().add(aviso);
int lDesk = this.getWidth();
int aDesk = this.getHeight();
int lIFrame = aviso.getWidth();
int aIFrame = aviso.getHeight();
aviso.setLocation( lDesk / 2 - lIFrame / 2, aDesk / 2 - aIFrame / 2 );
}
//Class JFAvisoAlteracao
private static JFAvisoAlteracao meuJFrameInternal = null;
public synchronized static JFAvisoAlteracao getInstance(List lista) {
if (meuJFrameInternal == null) {
meuJFrameInternal = new JFAvisoAlteracao(lista);
}else{
metodoAtualizaJTable(lista);
}
return meuJFrameInternal;
}
private JFAvisoAlteracao(lista){
metodoAtualizaJTable(lista);
}
obs:Tô sem IDE p/ implementar e testar :shock: