myimagebutton.java

来自「电脑编程技巧和源码。很不错的。」· Java 代码 · 共 82 行

JAVA
82
字号
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;


public class   MyImageButton extends Canvas {
    int     width,height;
    boolean pushed = false;
    Image   image;
    String name;
    ActionListener actionListener=null;

    public  MyImageButton(Image image,String name)
    {
        this.image = image;
		this.name=name;
        MediaTracker tracker = new  MediaTracker(this);
        tracker.addImage(image,0);
         try{
            tracker.waitForID(0);
        }
        catch(InterruptedException  e){}
        width = image.getWidth(this)+2;
        height = image.getHeight(this)+2;
        setSize(width,height);
      
        enableEvents(AWTEvent.MOUSE_EVENT_MASK);
     }




    public  void    paint(Graphics  g)
    {
        if (pushed == true){
            g.setColor(Color.darkGray);
            g.drawLine(0,0,width-1,0);
            g.drawLine(0,0,0,height-1);
            g.setColor(Color.white);
            g.drawLine(width-1,0,width-1,height-1);
            g.drawLine(0,height-1,width-1,height-1);
        }
        else{
            g.setColor(Color.white);
            g.drawLine(0,0,width-1,0);
            g.drawLine(0,0,0,height-1);
            g.setColor(Color.darkGray);
            g.drawLine(width-1,0,width-1,height-1);
            g.drawLine(0,height-1,width-1,height-1);
        }
        g.drawImage(image,1,1,this);
    }
	
	
	 //----------
	 public void addActionListener(ActionListener l) {
           actionListener = AWTEventMulticaster.add(actionListener, l);
     }
	 public void removeActionListener(ActionListener l) {
           actionListener = AWTEventMulticaster.remove(actionListener, l);
     }
     
    
 	 
 	 public void processMouseEvent(MouseEvent event){
 		switch (event.getID()){
        case Event.MOUSE_DOWN:
			pushed=true;	
            repaint();
            break;
        case Event.MOUSE_UP:
          	pushed=false;	
            repaint();
			if (actionListener != null) {
				ActionEvent evt=new ActionEvent(this,ActionEvent.ACTION_PERFORMED,name);	
    	        actionListener.actionPerformed(evt);
		    }  
        	break;
       }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?