【问题标题】:animating components in JpanelJpanel 中的动画组件
【发布时间】:2012-11-06 03:47:37
【问题描述】:

我想在我的项目中实施这个想法。 我知道这是可行的,但我不知道从哪里开始。

我有一个 JPanel, 里面会有一个 Jbutton 、一个 JLabel 、一个 ComboBox 和一个 JtextArea 。

原来,我的面板上只有 JtextArea 和 JButton。

当我点击按钮时,Combobox 和 JLabel 将滑入或淡入,或下拉,或事件轮播。

那么我将如何做到这一点,我知道我必须使用图形 g,repaint()。做 Jlabel 很容易,但是组合框呢。

我是否应该将组合框和 Jlabel 添加到单独的 Jpanel 中并使该面板动画化。但即便如此,我也不知道如何使该面板运动起来。

请帮助我,我们将不胜感激

谢谢!

【问题讨论】:

  • 我试过了,我已经建立了基本框架,我的 JLabel 可以四处移动,但我不知道如何让组合框移动。
  • @LanNguyen - 完全一样。他们都是JComponents,所以每个人都可以使用相同的方法。 (也就是说,如果您使用的是 JComboBox。)
  • 我使用 AnnatedLayout 做了一些类似的事情,它基本上充当了组件当前布局管理器的代理

标签: java swing user-interface awt


【解决方案1】:

要开始使用,您可能需要研究以下术语:

  • 幻灯片布局(感谢@Andrew Thompson)
  • 设置位置
  • TimerTask(我认为,或者可能只是 Timer)
  • 破坏图形对象

一旦您了解了这些内容,您就可以做出您所询问的设计决策。

听起来您将拥有一个带有幻灯片布局的子面板。尽量不要使用空布局。

您将在计时器任务中为每个滴答声设置其位置或样式。

如果您要设置样式,则需要克隆图形对象以避免“破坏”它 - 也就是说,在图形对象的副本上工作,这样就不会意外更改或重新绘制原始对象你正在努力。

【讨论】:

  • "null layout" 如果您有在滑动期间调整组件大小和位置所需的逻辑,则应将其封装在SlideLayout 中。这不是 null 布局的好案例。
  • +1,但也许我们应该让新手清楚,SlideLayout 代表 自定义 布局。
  • “在计时器任务中设置其位置或样式”。现在这是关键球员,谢谢,问题解决了:P。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2023-04-10
  • 2012-02-28
相关资源
最近更新 更多