2012-04-13 7 views
2

Ich habe ein weißes Symbol und ich möchte verschiedene Farben machen, wenn ich über dieses Symbol gehe.Wie ändert man das Symbol bei der Maus?

Hier ist mein Symbol, das weiß ist:

hint.setIcon(newjavax.swing.ImageIcon(getClass().getResource ("white.png"))); 

Wie kann ich machen, wenn Sie die Maus über das Icon ziehen, Farbe zu ändern?

Antwort

8

Ich vermute, die Antwort darauf ist in einem undekorierten Knopf zu haben. Stellen Sie das weiße Bild als Symbol und das gelbe Bild als roll-over icon ein. Wie folgt:

import java.awt.*; 
import javax.swing.*; 
import java.net.URL; 
import javax.imageio.ImageIO; 

class HoverImage { 

    HoverImage(Image img1, Image img2) { 
     JButton b = new JButton(new ImageIcon(img1)); 
     b.setRolloverIcon(new ImageIcon(img2)); 

     b.setBorderPainted(false); 
     b.setContentAreaFilled(false); 

     JOptionPane.showMessageDialog(null, b); 
    } 

    public static void main(String[] args) throws Exception { 
     URL url1 = new URL("https://i.stack.imgur.com/XZ4V5.jpg"); 
     URL url2 = new URL("https://i.stack.imgur.com/7bI1Y.jpg"); 
     final Image img1 = ImageIO.read(url1); 
     final Image img2 = ImageIO.read(url2); 
     //Create the frame on the event dispatching thread 
     SwingUtilities.invokeLater(new Runnable(){ 
      @Override 
      public void run() { 
       new HoverImage(img1, img2); 
      } 
     }); 
    } 
} 
+2

Cf. Dieses verwandte [Beispiel] (http://stackoverflow.com/a/4170233/230513). – trashgod

+0

'Hint.setRolloverIcon (" yellow.png ")'; Ich benutze diesen Code und es funktioniert korrekt –