3

マウスがラベル上でクリックされたときに、アイコン付きの JLabel が「クリックされた」ように見えるようにします。Label には ImageIcon が含まれます。アイコンを別のアイコンに変更する代わりに、別のカラーセットで ImageIcon を再描画したい (例: setXORMode(new Color(255,0,0) ) 「その場で」。誰もそれを管理する方法のヒントを持っていますか?

JLabel my_label = new JLabel("");
my_label.setIcon(new ImageIcon(MyClass.class.getResource("/path/to/resources/myicon.jpg")));
my_label.addMouseListener(new MouseAdapter() {
    @Override
    public void mousePressed(MouseEvent e) {
        //HERE I NEED THE VODOO :)
    }
});
4

2 に答える 2

2

LookupOp読み込まれたときにアイコンのコピーを変更するために使用します。次にsetIcon()、マウスハンドラーで使用します。

于 2010-07-17T17:01:53.620 に答える
2

ディスクからイメージを読み込むと仮定すると、次のようになります。

URL url = getClass().getResource("images/BB.jpg");
BufferedImage picture = ImageIO.read(url);

後で XOrMode を変更する必要がある場合は、次のようにします。

Graphics2D g = picture.createGraphics();
g.setXORMode(new Color(255,0,0) )
g.dispose();

フェードイン/フェードアウトが必要な場合は、タイミング フレームワークをお勧めします。また、ラベル内の画像に加えて、ラベル自体の部分を再描画したい場合は、オーバーライドすることができますvoid paintComponent(Graphics g)

調べることを検討するための非常に優れたリソースは、Filthy Rich Clientsという本です。こんなネタ満載です。第 4 章の Web サイトの例を見ると、役立つサンプル イメージ コードがいくつかあります。あなたにも手に取ってもらいたい、とてもとても良い本になるでしょう。

于 2010-07-17T17:38:25.077 に答える