我正在尝试在Swing应用程序中的每个组件上绘制。
我有的:
jButton b = new JButton();
b.addActionListener(e -> fillEntireScreen())
f.add(b);
f.setVisible()...f.setSize()...f.setDefaultCloseOperation()...
其中
fillEntireScreen()
只是在屏幕上扩展的动画。我覆盖Component's
paintComponent()
,在框架上绘画,而不是面板或其他任何东西。fileEntireScreen()
在没有按钮的情况下有效,但是在添加按钮时不起作用,因为动画位于按钮后面。我该如何在按钮上绘画?
谢谢!
最佳答案
请改用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