Swing:如何在每个组件、JPanel、JButton 等上绘制动画?

Posted

技术标签:

【中文标题】Swing:如何在每个组件、JPanel、JButton 等上绘制动画?【英文标题】:Swing: how to paint an animation over every component, JPanel, JButton, etc? 【发布时间】:2019-08-27 23:56:46 【问题描述】:

我正在尝试在我的 Swing 应用程序中绘制每个组件。

我有什么:

jButton b = new JButton();
b.addActionListener(e -> fillEntireScreen())
f.add(b);
f.setVisible()...f.setSize()...f.setDefaultCloseOperation()...

fillEntireScreen() 只是一个在屏幕上展开的动画。我覆盖Component's paintComponent(),在框架上绘画,而不是面板或任何东西。 fileEntireScreen() 可以在没有按钮的情况下工作,但在我添加按钮时不起作用,因为动画在按钮后面。

如何在按钮上绘制 谢谢!

【问题讨论】:

【参考方案1】:

请改用glassPane - 有关详细信息,请参阅How to Use Root Panes,有关示例,请参阅How can I paint in an specific JPanel when more than one in same frame- Java。

您也可以使用JLayer,但它更复杂,可能不适合您的需要。见How to Decorate Components with the JLayer Class

【讨论】:

以上是关于Swing:如何在每个组件、JPanel、JButton 等上绘制动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 JPanel 中的组件尽可能伸展?

我也不知道叫什么

如何在Java Swing中创建响应式JList

复利计算器01

复利计算器2.0

Java Swing:在 JPanel 的组件下绘制?