我正在开发一个Toast处理程序来管理带有“Toast”动画的用户通知(向上滑动,站立一段然后向下滑动)。 Toast类扩展JWindow
(仅用于测试,我可以使用JDialog
更稳定的版本)。
我的问题是在动画开始时创建一种剪贴区来隐藏吐司(JWindow)。目前在整个动画期间窗口是可见的,但是当执行toast.setVisible(true);
时它应该完全隐藏,并且在“上滑”阶段开始出现,在“站立”阶段完全可见并且再次开始消失在“滑下”阶段。
我不知道如何设置裁剪区域,任何人都可以帮助我?
我希望这是可以理解的。如果您需要更多详细信息,请与我们联系。
答案 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();
在此方法中,剪辑由主机平台强制执行。请注意,某些平台不会让可见窗口完全脱离屏幕;没有可见的拖动条,窗口将无法访问。