小编典典

为Swing小应用程序/应用程序创建自定义模式对话框

java

我正在编写一个Swing应用程序,该应用程序需要充当浏览器中的applet或独立应用程序,即它可以包含在JFrame或JApplet中。

在这种情况下,我想向用户显示一个自定义模式对话框(即,一个具有自定义布局和逻辑的复杂对话框,而不仅仅是简单的JOptionPane提示之一)。如果对话框是完全包含在应用程序窗口中的轻量级组件,那就很好。

同时,应用程序中将发生后台处理(网络线程,动画等)。在显示对话框时,这需要继续。

实施此方法的最佳方法是什么?


阅读 184

收藏
2020-11-26

共1个答案

小编典典

看一看JDialog。如果将其设置为模式,它将运行自己的事件处理以使GUI保持最新状态,同时捕获鼠标和键盘事件以供自己使用。

我已经看过了它使用的代码,而这实际上并不是您想要尝试重新发明的东西。

如果以非模式运行它,则可能需要添加一个在最终关闭时被调用的侦听器。这是通过addWindowListener和重写的WindowAdapter
完成的windowClosing

至于owner构造函数的参数,我用

    Window w = (Window) SwingUtilities.getAncestorOfClass(Window.class, comp);

其中comp是一些可见的组件。

之所以起作用,是因为始终有一个顶级窗口,无论是作为applet还是作为应用程序运行。

2020-11-26