繁体   English   中英

打开新的JFrame时如何禁用主JFrame

[英]How to disable main JFrame when open new JFrame

现在的示例中,我有一个包含jtable的主框架,显示所有客户信息,并且有一个create按钮来打开一个新的JFrame,允许用户创建新客户。 我不希望用户可以打开多个创建框架。 任何swing组件或API都能做到吗? 或如何禁用主机? 类似于JDialog。

我认为当您尝试打开新的jframe时,应将此代码用于主jframe:

this.setEnabled(false);

我建议您将新的客户对话框设置为模态JDialog以防止在可见时允许来自应用程序中其他对话框/框架的输入。 请查看模态教程以了解详细信息。

抱歉,您的回答很晚,但是您是否考虑过Singleton设计模式? 每当您需要该类时,它将返回该类的相同实例。 因此,如果用户希望使用框架输入详细信息,则只会打开一个框架(相同的实例)

它是这样的:

private static MySingleFrame instance = null; //global var

private MySingleFrame() { } //private constructor 
private static MySingleFrame getInstance()
{

if(instance == null)
{
instance = new MySingleFrame();
}

//returns the same instance everytime MySingleFrame.getInstance() is called
return instance; 


}

只需在第一帧上使用firstFrame.setVisible(false) 这将使其隐藏..

如果您希望使用更通用的方法,则可以在某处引用当前显示的框架,并在请求显示新框架时进行更改

JFrame currentFrame;

void showRequest(JFrame frame)
{
  currentFrame.setVisible(false);
  currentFrame = frame;
  currentFrame.setVisible(true);
}

您可以使用:

 private void btn_NewFormActionPerformed(java.awt.event.ActionEvent evt) { 

             this.hide();
             new Frm_NewFormUI().setVisible(true);

 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM