我有一个问题。我想做一个 Swing 形式,当他点击一个按钮时,他会向左滑动一个面板(带有他的内容),这样右边的面板就会以平滑的效果替换它。
我试过一段时间如何检查面板的大小,然后将其最小化并显示下一个,如下所示:
while (jpanelprincipal1.getWidth() < 439 || jpanelprincipal1.getHeight() > 250)
{
int panel1width = jpanelprincipal1.getWidth();
int panel2height = jpanelprincipal1.getHeight();
jpanelprincipal1.setSize(panel1width -- , panel2height --);
jpanelprincipal2.setSize(440,250);
}
我在 C# 中使用了这个技巧,但使用了 Application.DoEvent(); (很明显它在 Java 上不可用)。
无论如何我可以制作2个或更多面板的幻灯片效果吗?
顺便说一句:抱歉我的英语很糟糕!
提前致谢, 路易斯达科斯塔
最佳答案
he slides a panel (with his content) to the left so the panel on the right replaces it with a smooth effect
你的问题提到你希望面板“滑动”,但代码看起来像你试图让面板“收缩”,所以它被另一个面板取代。
假设您有两个大小相同的面板,那么您可以将一个“滑”出 View ,同时将另一个滑入 View 。
为此,您可以使用带有 GridLayout 的面板。这样每个组件的大小都相同。然后将面板添加到没有任何滚动条的滚动 Pane 。滚动 Pane 的大小需要设置为第一个组件的大小。然后你可以通过改变视口(viewport)的位置来“滑动”这两个面板。所以在你的计时器中你会有类似的代码:
JViewport viewport = scrollPane.getViewport();
Point position = viewport.getViewPosition();
position.x += 5;
viewport.setViewPosition( position );
当位置大于组件大小时,您将停止计时器。
关于java - 在 Java 上的 JForm 中滑动 JPanel 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069152/