swing里面Jpanel设置为
component.setBackground(new Color(0,0,0,0));//使JPanel完全透明
-
说明
-
有些人给组件添加拖动事件时刚好背景又是透明的此刻又产生了拖动重影问题
-
就像下面一样
-
刚好前一天到处找资料看见有人说
-
当拖放过程启动时,DragGestureListener 优先于 MouseMotionListener。你必须实现这样一个 DragGestureListener。 请参阅此处查看一个很好的工作示例。 Java drag and drop custom cursor
-
但是我完全不知道他的底层要写什么东西所以完全放弃了.
-
刚好有时候我们人在遇到困难的东西和不会的东西时,这时候要适当的放松自己,可能刚好因为身边的事物受到的启发也是可以的.
-
我觉得底层原理和基础很重要,因为你知道了基础之后你才看得懂泛型里面的
T,U,K,V
是什么意思,还有<? extends Object>
和<? super Object>
知道了底层就知道他是怎么运行的 -
然而我问一个共同爱好swing的朋友说要我用paint方法里面画出这个按钮然后给定全局X,Y坐标拖动时
repaint
就行了,但是我知道这个可能会很影响程序的性能,因为拖动是毫秒级别触发的,一直repaint
的话可能会闪烁不停或者还是会有重影问题 -
后面我就试了一下
setOpaque(false)
这个也是使组件透明或者是背景不可见,感觉底层也只是把他new Color(0,0,0,0)了,当我把setBackground()
方法注释掉把setOpaque(false)
写上时奇迹出现了!
重影消失!
-
一切变得那么有趣和好玩
-
有时候编程就是要靠不停的去想和理解,当你不会的时候可以去看看其它的说明或者放松自己,因为生活中的许多小事都跟你写代码息息相关,也会让你受到启发.