2014-12-23 3 views
0

JInternalFrame  FRMCadUsuarios에서 _을 클릭하면 JInternalFrame  FRMCadNiveisAcesso을 호출하는 JInternalFrame FRMCadUsuarios이 있습니다. 그러나 FRMCadNiveisAcesso이 이미 JDesktopPanel에 열려 있는지 확인하고 싶다면 JInternalFrame FRMCadUsuarios button을 클릭하면 닫고 새 것을 열려고합니다.JIternalFrame이 열려 있으면 닫습니다.

이미 열려있는 경우 닫아야하고 FRMCadUsuariosJInternalFrame을 클릭하면 다르게 열리기 때문에 새로운 것을 열어야합니다. 내가 주 JFrame으로 JInternalFrame FRMCadNiveisAcesso을 열 때

그것은 길을 열고 내가 JInternalFrame FRMCadUsuarios을 클릭하여 열 때 JInternalFrame FRMCadUsuarios의 변수를 잡는다 때문에 다른 방법을 엽니 다.

FRMPrincipalModulosAdmFinOper frmPrincipalModulosAdmFinOper = new FRMPrincipalModulosAdmFinOper(); 
if(frmPrincipalModulosAdmFinOper.getFrmCadNiveisAcesso() != null){ 
    frmPrincipalModulosAdmFinOper.getFrmCadNiveisAcesso().dispose(); 
} 
FRMCadNiveisAcesso frmCadNiveisAcesso = new FRMCadNiveisAcesso(painelx); 
painelx.add(frmCadNiveisAcesso); 
frmCadNiveisAcesso.setPosicao(); 
frmCadNiveisAcesso.setVisible(true); 
frmCadNiveisAcesso.getTxtUsuario().setText(this.txtUsuario.getText()); 

답변

0

정적 변수 FRMCadNiveisAcesso를 만듭니다. FRMCadNiveisAcesso (메인 프레임 또는 JInternalFrame _ FRMCadUsuarios를 통해) 객체를 초기화 할 때 정적 변수에 객체를 저장하십시오.

정적 오브젝트가 null인지 아닌지 null이 아니고 그 프레임을 폐기하고 새

sudo는 코드 기록 내부 버튼 액션 리스너를 만들 경우 (FRMCadUsuarios의 버튼 클릭시) FRMCadNiveisAcessoe위한 새로운 오브젝트를 생성하기 전에 확인

if (staicObjectOfFrame != null) 
{ 
staicObjectOfFrame.dispose(); 
} 
staicObjectOfFrame=new FRMCadNiveisAcesso(); 
staicObjectOfFrame.setvisble(true); 
관련 문제