最近在写一个java窗体程序,有多个窗口跳转,需求是窗口跳转后不能再操作原窗口。请教朋友后,知道可以用JDialog来实现,JDialog就是让跳转之后的窗口变成对话框,实质上已经不是JFrame了。

那么,如何不利用JDialog来实现这个需求呢?

其实,在JFrame中有这么一个方法,叫setEnable(boolean b),这个方法是从java.awt.Component类中继承过来的,内容如下

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705220153492.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzgxMzk5,size_16,color_FFFFFF,t_30)

可以看到这个方法的作用是根据传入的b值来启用或禁用组件。所以,用这个方法,我们就可以实现我们的需求了。

接下来,开始操作

先在原始窗口中的按钮添加监听,实现跳转新窗口,并把原始窗口的对象传给新窗口,这样才能在新窗口关闭的时候把原窗口启用

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705220216226.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_20,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzgxMzk5,size_16,color_FFFFFF,t_70)

然后在新窗口添加窗口关闭的监听事件,当新窗口关闭时,将原窗口从禁用状态改成启用状态

到这里就结束了,亲测可以实现需求。如果能够帮到你,我很开心。

编程的路很长,我在路上。。。