【问题标题】:Mouse entered, mouse exited changing the text on the button on each event鼠标进入,鼠标退出改变每个事件按钮上的文本
【发布时间】:2017-04-28 18:33:37
【问题描述】:

我正在尝试连接一个按钮,当鼠标进入它时说“嗨”,当鼠标离开时说“再见”。我一直在使用带有 MouseListener 的鼠标事件,但无济于事。

我是 Java 新手,过去 2 天这个问题一直困扰着我,我只是无法弄清楚。任何帮助将不胜感激。

private abstract class HandlerClass implements MouseListener {
}

private abstract class Handlerclass implements MouseListener {
   @Override
   public void mouseEntered(java.awt.event.MouseEvent e) {
      mousebutton.setText("Hi");
   }

   @Override
    public void mouseExited(java.awt.event.MouseEvent e) {
      mousebutton.setText("Bye");
   }
}                                           

【问题讨论】:

    标签: java mouseevent mouselistener onmouseover


    【解决方案1】:

    试试这样。它对我有用。

    public class ChangeTextMouseEvent extends Frame
    {
    static JButton btn;
    public ChangeTextMouseEvent()
    {
        setTitle("ChangeText");
        btn = new JButton("SSS");
        add(btn);
        setVisible(true);
        setBounds(0, 0, 100, 100);
    }
    public static void main(String[] args)
    {
        ChangeTextMouseEvent frame = new ChangeTextMouseEvent();
        btn.addMouseListener(new MouseAdapter(){
            @Override
            public void mouseExited(MouseEvent e)
            {
                btn.setText("Bye");
            }
            @Override
            public void mouseEntered(MouseEvent e)
            {
                btn.setText("Hi");
            }
        });
    }
    }
    

    【讨论】:

      【解决方案2】:

      仅仅更新 UI 组件通常是不够的;您还必须触发 repaint 操作。

      换句话说:这里有两个“层”。一个是“数据模型”(一些按钮知道它的文本);另一个是实际的“图形内容”。后者通过以某种方式显示第一部分而存在。因此,为了让用户看到您的机会,需要解决这两层问题。

      有关这方面的一些示例,请参阅 here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-09
        • 2018-10-08
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        相关资源
        最近更新 更多