【问题标题】:Is it possible to make different mouseClicked() for the same class?是否可以为同一个类制作不同的 mouseClicked() ?
【发布时间】:2013-04-28 13:59:18
【问题描述】:

我的 java 程序已经有一个 Canvas,我计划在该 Canvas 上添加 4 个带有 MouseListener 的组件以充当 4 个按钮。当然 4 个“按钮”会有不同的反应

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

【问题讨论】:

    标签: java components awt mouselistener


    【解决方案1】:

    MouseEvent 扩展 EventObject 具有 getSource() 方法。

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

    【讨论】:

    • 感谢安德鲁的评论。
    • 感谢安德鲁的评论,我会试试你说的。顺便说一句,我有一个容器,我定义了一个从 Component 派生的新类,我从那个新类创建了一个对象,并将它添加到前面所说的 Component 中。我认为要显示新组件,我必须使用该新组件的 paint() 方法。但最后,什么都没有显示。我能用这个做什么,我的代码很长而且很难跟踪,但是如果你需要,我会在这里给你们所有人。再次感谢!
    • “我的代码比较长” 为了尽快获得更好的帮助,请发帖SSCCE
    【解决方案2】:
    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 扩展了 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) ;
    
    
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      相关资源
      最近更新 更多