gpt4 book ai didi

java - 在 Java 上的 JForm 中滑动 JPanel 内容

转载 作者:行者123 更新时间:2023-11-29 09:37:09 24 4
gpt4 key购买 nike

我有一个问题。我想做一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com