当前位置: 首页 > 面试题库 >

在Java上的JForm中滑动JPanel内容

司徒炎彬
2023-03-14
问题内容

我有个问题。我想制作一个摆动形式,当单击按钮时,他将面板(及其内容)向左滑动,以便右侧的面板将其替换为平滑效果。

我试图做一会儿如何检查面板的大小,然后最小化它并显示下一个这样的样子:

    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个或更多面板的幻灯片效果吗?

顺便说一句:对不起,我的英语太差了!

提前致谢,路易斯·达·科斯塔


问题答案:

他将面板(及其内容)向左滑动,因此右侧的面板将其替换为平滑效果

您提出的问题是您希望面板“滑动”,但是代码看起来像是您试图使面板“收缩”,因此被另一个面板替换。

假设您有两个大小相同的面板,那么您可以将其中一个“滑出”视图,而另一个滑入视图。

为此,请使用带有GridLayout的面板。这样,每个组件将具有相同的大小。然后,将面板添加到没有任何滚动条的滚动窗格中。滚动窗格的大小将需要设置为第一个组件的大小。然后,您可以通过更改视口的位置来“滑动”两个面板。因此,在您的Timer中,您将具有类似以下内容的代码:

JViewport viewport = scrollPane.getViewport();
Point position = viewport.getViewPosition();
position.x += 5;
viewport.setViewPosition( position );

当位置大于组件的大小时,您将停止计时器。



 类似资料:
  • 问题内容: 我创建了此代码,当我 在JForm上选择单选按钮时,该代码应该绘制某些内容,我已经使用NetBeans创建了GUI。 当我选择单选按钮时,没有任何反应。 一段时间以来,我一直在试图找出问题所在,但仍然找不到解决方案,这就是我来 这里的原因。如果有人发现错误,我将不胜感激。 问题答案: 我在您的代码中看到了一些问题: 您正在扩展JFrame,您不应该这样做,因为可以将其读DrawShap

  • 我有一个,名为,布局设置为。在面板内部有三个,分别添加到、和。现在,我的要求是,如果单击Settings按钮,它将在上方显示一个透明的。这个透明的面板将包含一个不透明的,更小的,居中的面板,其中将包含设置的东西。 我知道我可以使用来实现这一点,但是查看教程,它说您只能使用绝对定位来放置不同深度的组件,我知道这是非常不鼓励的。 是否有其他方法可以做到这一点,而不使用绝对定位?

  • 我正在我的应用程序中使用带有ActionBarSherlock的滑动菜单。动作条和滑动菜单工作良好,但我希望滑动菜单只滑动内容,而不是动作条像最新版本的youtube应用程序。 这在SlidingMenu中是可能的吗?如果是,请说明如何 提前致谢 下面是我的actionbar和slidingmenu代码

  • 我在JScrollPane中有一个JPanel,JScrollPane嵌套在其他容器中。我的JPanel在这个问题中使用了SO user jxd中修改过的FlowLayout。 这可能是信息过火,但所讨论的面板的完整嵌套如下所示: JPanel(ModifiedFlowLayout)>JScrollPane>JPanel(GridBagLayout)>JTabbedPane>JPanel(Grid

  • 我有一个叫做CatalogPane的JPanel,它的大小是800 x 600,它位于一个叫做BookFrame的JFrame中的JTabbedPane中。因此,在CatalogPane中,我创建了一个名为bookDisplay的JPanel,它显示书籍及其详细信息的列表。我希望它的大小为780 x 900,滚动条的大小为20px,并且比框架高,这样就可以滚动。然后我创建了一个尺寸为800 x 4