Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSwing中为按钮提供自定义形状?_Java_Swing - Fatal编程技术网

如何在JavaSwing中为按钮提供自定义形状?

如何在JavaSwing中为按钮提供自定义形状?,java,swing,Java,Swing,我是Java Swing新手,我在stackoverflow.com和其他网站上搜索了很多关于这个问题的信息,但找不到具体的答案,所以我决定自己去问。我想创建一个美国地图的自定义形状的JButton。我有一个透明背景的png图像。我知道 usaButton.setOpaque(false); usaButton.setContentAreaFilled(false); 将去掉按钮的边框并删除背景色,但我希望它在我将鼠标悬停在地图上时在地图本身周围创建边框,而不是在按钮周围创建矩

我是Java Swing新手,我在stackoverflow.com和其他网站上搜索了很多关于这个问题的信息,但找不到具体的答案,所以我决定自己去问。我想创建一个美国地图的自定义形状的
JButton
。我有一个透明背景的png图像。我知道

    usaButton.setOpaque(false);
    usaButton.setContentAreaFilled(false);
将去掉按钮的边框并删除背景色,但我希望它在我将鼠标悬停在地图上时在地图本身周围创建边框,而不是在按钮周围创建矩形边框。这张地图仅供参考:


使用两个图像,一个带边框,一个不带边框,然后使用按钮滚动图标支持。请参阅,有关更多详细信息,出于好奇,我制作了一个边框,可以在渲染像素的组件周围动态生成自身。它的速度非常慢,并且不能很好地处理平滑(半透明)的边缘。不建议这样做:)