2

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

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

我不知道如何设置剪辑区域,有人可以帮助我吗?

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

4

1 回答 1

2

从 this 开始LowerRightFrame,使用以下初始位置:

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

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

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

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

于 2012-09-12T00:47:20.553 回答