是否可以为同一个类制作不同的mouseClicked()?

时间:2013-05-04 06:16:30

标签: java components awt mouselistener

我的java程序已经有了Canvas,我计划将4个使用MouseListener的组件添加到该Canvas中,作为4个按钮。当然4个“按钮”会有不同的反应

我可以为这4个组件创建一个类(我不知道该怎么做),或者我必须为4个组件定义4个类(这更容易)?

2 个答案:

答案 0 :(得分:0)

MouseEvent扩展EventObject,其方法为getSource()

顺便说一句,最好在按钮上添加ActionListener,因为它不仅会对鼠标做出反应,还会对键盘做出反应。

答案 1 :(得分:0)

public class ciCanvas extends Container
{
    public void paint()
    {
    // I draw an image here, it works perfectly



      Image MainMenuPlayBtImage = 
            Toolkit.getDefaultToolkit().getImage(ciConfig.CI_BT1_PATH) ;                
      Label MainMenuPlayText = new Label(ciConfig.CI_TEXT_PLAYBT) ;

      Point MainMenuPlayLocation = new Point(100, 100) ;

      ciTitle MainMenuBt = new ciTitle(MainMenuPlayText, MainMenuPlayBtImage, MainMenuPlayLocation) ;

      this.add(MainMenuBt) ;
    }

}

ciTitle extends Component,以下4行代码旨在向此Container添加一个Component

我希望这会显示ciTitle组件但没有出现,请注意我还实现了ciTitle.paint()方法的代码(见下文)

public void paint(Graphics _GraphicsDev)
{
    setSize(
            this.ciTitleImage.getWidth(this),
            this.ciTitleImage.getHeight(this));

    _GraphicsDev.drawImage(
            this.ciTitleImage, 
            this.ciTitleLocation.x, 
            this.ciTitleLocation.y, 
            this) ;


}

仍有一些代码在这里没有定义,但我希望这些代码足以描述问题