当前位置: 首页 > 面试题库 >

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

席嘉祯
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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

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

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

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

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

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



 类似资料:
  • Ember CLI,Ember的命令行界面提供了一个标准的项目结构,一组开发工具和一个插件系统。这允许Ember开发人员专注于构建应用程序,而不是构建使它们运行的​​支持结构。可通过ember --help显示Ember CLI提供的命令,或通过ember help <command-name>查看特定命令的信息。 创建应用程序 $ ember new super-rentals 上述ember

  • 问题内容: 对于这个问题,我实际上并没有太多的摆动或GUI设计方面的经验(大学中的一些WPF应用程序的水平差不多),但是我的任务是在工作中重构摆动旧式应用程序的一部分。 我被要求重构的部分围绕一个弹出窗口,该窗口可以根据特定的值对象以三种不同的格式显示。这3种不同的格式都共享一些基本字段,然后有条件地确定其他字段。负责此GUI元素的类的长度约为5k,我当时认为应该将其分为三个子类,并在基类中共享这

  • 我的android应用程序中有视频播放器,我使用库制作它们。我的播放器可以播放视频(我从后端获得它们),所有这些视频都可以是不同的质量,例如,1024x576、768x432等。我想为用户显示对话框,有可能改变视频流质量。为此,我使用GitHub中exoplayer示例中的下一段代码:

  • 我正在编写一个Spring Boot应用程序,它与Snowflake数据仓库连接,并对其执行SQL查询。我编写了一个配置类,用于配置数据源以连接到Snowflake数据仓库,如下所示: 我的pom.xml如下: 在我的Spring boot应用程序中,我必须为这个数据源使用一个连接池。 如何在我的应用程序中使用HikariCP连接池,它可以与我的定制数据源完美配合? ------编辑---感谢您提

  • 我知道这个问题已经被问过很多次了,一直都有一个答案是关于使用一个可执行的jar或制作一个。exe使用launch4j或类似应用程序。 我可能听起来像个新手,实际上我是。 我一直在用一个Java项目尝试一些东西。我已经成功地制作了一个可执行的jar和一个. exe文件。这都要归功于你之前在SO中的回答:) 但是,我想为Windows创建一个安装程序。例如,按Next 2-3次(显示所有条款和条件等)