How to disable main JFrame when open new JFrame

邮差的信 提交于 2019-11-27 05:52:11

问题


Example now I have a main frame contains jtable display all the customer information, and there was a create button to open up a new JFrame that allow user to create new customer. I don't want the user can open more than one create frame. Any swing component or API can do that? or how can disabled the main frame? Something like JDialog.


回答1:


I would suggest that you make your new customer dialog a modal JDialog so that you do not allow input from other dialogs/frames in your app while it is visible. Take a look at the modality tutorial for details.




回答2:


I think you should use this code for the main jframe when you trying to open new one :

this.setEnabled(false);




回答3:


Sorry for the late answer but have you considered the Singleton design pattern? It will return the same instance of a class whenever you want the class. So if the user wants a frame to enter the details, there will only be one frame open (same instance)

It goes something like this:

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; 


}



回答4:


just use firstFrame.setVisible(false) on the first frame. This will make it hidden..

if you want a more general approach you could have a reference to the current displayed frame somewhere and change it when a new frame requests to be shown

JFrame currentFrame;

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



回答5:


You can use:

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

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

 }


来源:https://stackoverflow.com/questions/3029079/how-to-disable-main-jframe-when-open-new-jframe

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!