[英]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.