java - 在 JDialog 的展示中绘制动画

标签 java user-interface swing animation

在显示模式之前绘制简单动画的最佳方法是什么 JDialog ? (即从鼠标单击点扩展到对话框位置的边框)。我认为可以在对话框的 setVisible 方法上绘制父框架的玻璃面板。

但是,由于 JDialog 对父级是模态的,我找不到将绘图事件注入(inject)到 EDT 中的方法。在 JDialog 变为可见之前,因为 EDT 上的当前事件尚未完成。

最佳答案

您是否试图独立于动画显示 JDialog?为了正确设置顺序,您可能需要将这些操作捆绑在立即传递给 EDT 的可运行对象中。

例如:

SwingUtilities.invokeLater(new Runnable(){
   public void run(){
      doAnnimation();
      showDialog();
   }
}

最好将 JDialog 子类化,这样您就可以在调用父类(super class)实现之前将 doAnnimation() 逻辑添加到 setVisible(..) 或 show() 方法中。

最后,我想您需要手动设置 dalog 的尺寸——我不记得 Java 是否会在显示对话框之前知道对话框的实际大小,因此您可能会得到一些对您的无用信息如果您在显示之前查询大小,则为动画。

关于java - 在 JDialog 的展示中绘制动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39108/

相关文章:

Java Swing 应用程序不再工作

java - Stream<Object> 到 InputStream

java - 无法找出这个简单的 Java 代码中的错误

java - 为具有多个页面的Java应用程序创建可执行文件

Java GroupLayout 实现

java - 分屏程序,如何更改内容[Java]

java - Martin Fowler 在 REST API 中所说的 "avoid automatic deserialization"是什么意思?

调用电话的Java API

java - 绘制控制流图

java - 当我单击按钮执行方法调用时,我的 GUI 以某种方式卡住了