所以我有将JButton设置为ImageIcon的代码。同样,当我将鼠标悬停在图像上时,它将显示一个新的ImageIcon,但是我拥有的方式是,新的IconImage实际上比原始图像大一点。现在的问题是它仍然存在于按钮的边界之内,所以说我的按钮大小是100、250,而翻转IconImage的大小是120、270,那么问题是每边的20个像素都被切掉了。
到目前为止,我的解决方案实际上是使按钮等于在IconImage上滚动的大小,但是我的问题是,即使我将鼠标悬停在图像旁边,最多20像素,也仍然会发生rollOver效果。现在显然是因为我更改了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);
想象一下,我在其他地方声明了我正在使用的变量。
最佳答案
我只需要确保两个图标的大小完全相同即可。如有必要,在较小的边框上添加透明边框。
这将使一切变得容易。