Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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
Java JButton如何设置滚动图标边界_Java_Swing_Jbutton_Imageicon - Fatal编程技术网

Java JButton如何设置滚动图标边界

Java JButton如何设置滚动图标边界,java,swing,jbutton,imageicon,Java,Swing,Jbutton,Imageicon,所以我有一些代码,可以将JButton设置为一个ImageIcon。同样,当我将鼠标悬停在图像上时,它将显示一个新的图像图标,但我的方式是,新的图像实际上比原始图像大一点。现在的问题是,它仍然存在于按钮的边界内,所以假设我的按钮大小为100250,滚动图标大小为120270,那么问题是,每侧的20个像素被切断 到目前为止,我的解决方案实际上是使按钮的大小等于翻滚图像的大小,但我的问题是,即使我将鼠标移到图像旁边,最多20个像素,翻滚效果仍然会发生。这显然是因为我改变了我的JButton的边界 如

所以我有一些代码,可以将JButton设置为一个ImageIcon。同样,当我将鼠标悬停在图像上时,它将显示一个新的图像图标,但我的方式是,新的图像实际上比原始图像大一点。现在的问题是,它仍然存在于按钮的边界内,所以假设我的按钮大小为100250,滚动图标大小为120270,那么问题是,每侧的20个像素被切断

到目前为止,我的解决方案实际上是使按钮的大小等于翻滚图像的大小,但我的问题是,即使我将鼠标移到图像旁边,最多20个像素,翻滚效果仍然会发生。这显然是因为我改变了我的JButton的边界

如果有人能想出任何解决办法,我将不胜感激

下面是我正在做的一个例子:

singlePlayerButton = new ImageIcon("GUIImages\\singlePlayerButton.png");
rollOverSinglePlayerButton = new ImageIcon("GUIImages\\rollOverSinlgePlayerButton.png");
btnSinglePlayer = new JButton(singlePlayerButton);
btnSinglePlayer.setOpaque(false);
btnSinglePlayer.setContentAreaFilled(false);
btnSinglePlayer.setBorderPainted(false);
btnSinglePlayer.setFocusPainted(false);
btnSinglePlayer.setBounds(320, 25, 275, 130);
btnSinglePlayer.setRolloverIcon(rollOverSinglePlayerButton);
mainMenu.add(btnSinglePlayer);

想象一下,我已经声明了我在别处使用的变量

您可以将“MouseListener”实例添加到按钮并实现“mouseEntered”方法。然后,您可以更改按钮(bouds、imange等),必要时在屏幕上重新绘制。有关更多信息,请参阅JButton和MouseAdapter类的javadoc。

我只需确保两个图标的大小完全相同即可。如有必要,在较小的边框上添加透明边框


这将使一切变得更容易。

我要找的不是输入的鼠标。我正在寻找悬停,我不能每次悬停按钮都重新绘制,因为这样我就必须确保在没有鼠标悬停在按钮上时再次重新绘制。我同意,但没有足够的动画让用户知道它是一个按钮。我确实希望按钮变大,如果没有已知的方法,我会保持原样。它确实有效,只是有一点点让我感到不安。如果你不去掉按钮的边框,很明显它是一个按钮。如果您不喜欢标准边框,可以直接将边框添加到图标中,以明确它们表示按钮。