剪切区域以在动画期间隐藏JWindow

时间:2012-09-11 23:44:25

标签: java swing animation jwindow

我正在开发一个Toast处理程序来管理带有“Toast”动画的用户通知(向上滑动,站立一段然后向下滑动)。 Toast类扩展JWindow(仅用于测试,我可以使用JDialog更稳定的版本)。

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

我不知道如何设置裁剪区域,任何人都可以帮助我?

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

1 个答案:

答案 0 :(得分:2)

从这个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();

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