我一直在搜索如何限制我的jFrame每次点击时只打开一个但是没有成功。我的代码是这样的:
public InserirCliente(boolean login){
initComponents();
if(login){
jPanel1.setVisible(false);
}
else {
}
}
还有一个JInternalFrame:
{{1}}
非常简单,只需测试一下。但是怎么可以改变它只显示第一个而不是第一个,因为它被点击了?是否有句柄,如果已经创建了JInternalFrame的实例,它会收到?
答案 0 :(得分:0)
首先,根据您的需要,将tela_inserir
设为公共/私人变量:
private InserirCliente tela_inserir;
现在将以下方法添加到InserirCliente类:
public Boolean checkVisible(){
if(jPanel1 != null){
return jPanel1.isVisible();
}
return false;
}
现在只检查内部JPanel是否为空(尚未创建),并且在按下按钮时不可见:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//Only show new panel if i is not already visible:
if (tela_inserir == null && tela_inserir.checkVisible() == false){
login = true;
tela_inserir = new InserirCliente(login);
jDesktopPane1.add(tela_inserir);
tela_inserir.setVisible(true);
}
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
//Only show new panel if i is not already visible:
if (tela_inserir == null && tela_inserir.checkVisible() == false){
login = false;
InserirCliente tela_inserir = new InserirCliente(login);
jDesktopPane1.add(tela_inserir);
tela_inserir.setVisible(true);
}
}