3

WordHunt という NetBeans 設計ツールを使用してゲームを作成しました。次のようになります。

ここに画像の説明を入力

私が持っている 16 個のラベルにマウスオーバー効果を適用するクラスを作成する必要があります。これは、マウスを入力したときにアイコン B を変更するコードです。

private void b1MouseEntered(java.awt.event.MouseEvent evt) {                                
        b1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ip/imag/" +B+ ".png")));

    }                               

ラベルにデフォルトのアイコンを適用しました。そのクラスを作成した後、次のように書く代わりに:

b1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ip/imag/" +B+ ".png")));

className( b1 , B );と書きます。次のラベルについては、同じこと className( b2 , C );

観察: b1 はラベルで、A から Z までのすべての文字アイコンが .png 形式になっています。

どうすればそれができるか、誰か教えてもらえますか?

4

5 に答える 5

1
public class MyButton extends JButton {
    private ImageIcon normalIcon;
    private ImageIcon hoverIcon;

    public MyButton(String normalURL) {
        String hoverURL = normalURL.replaceFirst("\\.png$", "-hover.png");
        normalIcon = new ImageIcon(getClass().getResource("/ip/imag/" +B+ ".png"); // or so
        hoverICon = ...
    }

    private void b1MouseEntered(MouseEvent evt) {                           
        setIcon(hoverIcon);
    }    
}
于 2013-05-28T17:27:41.930 に答える
0

うまくいけば、マウスが右にあるときにすべての画像ではなく、画像だけを変更したいと思います。その場合、バッファ内の各画像の位置を取得し、それをマウスの xny 位置と比較して、変更する wc 画像を知る必要があります。これで問題が解決することを願っています

于 2013-05-28T17:26:44.833 に答える
0

まず、コードの先頭に次のインポートを追加します。

import javax.swing.ImageIcon;
//Then you only need to write
new ImageIcon(...);

それ以外の:

new javax.swing.ImageIcon(...)

すでに短い:)

次に、B の各インスタンスがキーで、読み込まれたアイコンが値であるプリロードされた画像のハッシュマップを作成できます。

于 2013-05-28T17:23:15.613 に答える