簡體   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