【问题标题】:Clipping region to hide a JWindow during animation剪辑区域以在动画期间隐藏 JWindow
【发布时间】:2012-09-12 08:47:20
【问题描述】:

我正在开发一个 toast 处理程序来管理通过“toast”动画(向上滑动、站立一会儿然后向下滑动)带给用户的通知。 Toast 类扩展了JWindow(只是为了测试,我可以使用JDialog 来发布更稳定的版本)。

我的问题是创建一种剪辑区域以在动画开始时隐藏 toast (JWindow)。目前该窗口在整个动画过程中是可见的,但它应该在执行toast.setVisible(true); 时完全隐藏并在“向上滑动”阶段开始出现,在“站立”阶段完全可见并在“站立”阶段再次开始消失“下滑”阶段。

我不知道如何设置剪辑区域,谁能帮帮我?

我希望这是可以理解的。如果您需要更多详细信息,请告诉我。

【问题讨论】:

    标签: java swing animation jwindow


    【解决方案1】:

    从这个LowerRightFrame开始,使用下面的初始位置:

    int x = (int) rect.getMaxX() - f.getWidth();
    int y = (int) rect.getMaxY() - f.getInsets().top;
    

    然后使用javax.swing.Timer 定期将y 增加到全高:

    int y = (int) rect.getMaxY() - f.getHeight();
    

    在这种方法中,剪裁由主机平台强制执行。请注意,某些平台不会让可见窗口完全脱离屏幕;如果没有可见的拖动条,窗口将无法访问。

    【讨论】:

    • 请注意,y 的值应该减小,因为更多的窗口高度被暴露出来。
    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2012-01-31
    • 2016-04-06
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多