JButton を ImageIcon に設定するコードを用意しました。同様に、画像にカーソルを合わせると、新しい ImageIcon が表示されますが、新しい IconImage は実際には元のアイコンよりも少し大きくなっています。問題は、ボタンの境界内にまだ存在することです。たとえば、ボタンのサイズが 100、250 で、IconImage のロールオーバーが 120、270 の場合、問題は両側から 20 ピクセルが切り取られることです。
これまでの私の解決策は、実際にはボタンをIconImageのロールオーバーのサイズと同じにすることですが、それに関する私の問題は、マウスを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);
他の場所で使用している変数を宣言したと想像してください。