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