2011-09-29 52 views
0

我想在图像上添加事件。也就是说,当我点击图片时,它应该被替换为另一张图片。如何为图像添加事件

import java.awt.Canvas; 
import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 

public class RadioButtonLoader extends Canvas{ 

    private static final long serialVersionUID = 1L; 
    BufferedImage image = null; 
    public RadioButtonLoader(){ 
     try { 
      this.image = ImageIO.read(new File("res/rb1.gif")); 

     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
    public RadioButtonLoader(String checked){ 
     try { 
      this.image = ImageIO.read(new File("res/rb2.gif")); 

     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
    @Override 
    public void setSize(Dimension d) { 
     super.setSize(new Dimension(15,22)); 
    } 

    @Override 
    public void paint(Graphics g) { 
     setSize(new Dimension(15,22)); 
     g.drawImage(image, 0, 0, null); 


    } 

} 

我该怎么办?

+2

怎么样'MouseListener'? –

+0

您现在正在设置'paint()'中的大小吗?!?仍然使用'null'作为'ImageObserver'?你需要多少次被告知? –

回答

1

只要你在你的图像中mouselister的onclick方法中添加mouselistner添加代码...............

http://www.anyexample.com/programming/java/java_full_screen_image_viewer.xml

+0

['java.awt.MouseListener'](http://download.oracle.com/javase/7/docs/api/java/awt/event/MouseListener.html)(与'mouselistner ** **或* *'mouselister')没有'onclick'方法,虽然它有一个[MouseListener.mouseClicked(MouseEvent)](http://download.oracle.com/javase/7/docs/api/java/awt/ event/MouseListener.html#mouseClicked%28java.awt.event.MouseEvent%29)方法。顺便说一句 - 链接的源代码混合了Swing和AWT,但是未能使用JFrame.setDefaultOperationOnClose(int),并且它使用Swing顶级容器(ick)中的paint(Graphics)来定制绘画。 –