mouseEntered和mouseExited方法问题

问题描述 投票:0回答:1

进行家庭作业时,在使用MouseListener界面时,当鼠标光标进入和退出某个彩色区域(在这种情况下,称为JPanel的面板)时,如何确定如何打印一行文本时遇到了问题。] >

我从底部面板中选择一种颜色(红色,蓝色或黄色),然后当我移至上部面板时,它应该能够打印出鼠标在面板中时所输入的颜色以及哪种颜色。当鼠标在上述面板之外发现自己时退出的颜色...

希望这很有道理。这是我到目前为止的代码片段。这是红色的颜色:

class RedButtonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            panel.setBackground(Color.RED); 
            class RedMouseListener implements MouseListener
            {

                public void mouseEntered(MouseEvent event) 
                { 

                }

                public void mouseExited(MouseEvent event) 
                { 

                }

                public void mousePressed(MouseEvent event) { }

                public void mouseReleased(MouseEvent event) { }

                public void mouseClicked(MouseEvent event) { }
            }
        }
    }
    ActionListener redListener = new RedButtonListener();
    bRed.addActionListener(redListener);

正在进行一项家庭作业,在弄清楚当鼠标光标进入和退出某个彩色区域(在这种情况下为JPanel,称为Panel)时如何打印一行文本时遇到了问题。]] >>

这是堆栈溢出Mouse moved event within JPanel中的一个相关问题>

我建议您确保已正确侦听触发器(尝试打印“ Hello World”),然后从那里开始获取鼠标事件中颜色状态的信息。如果所有内容都在同一实例中,则可以访问事件侦听器中所需的变量。]​​>

这里是MouseEvent http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html上的文档>

确保已添加鼠标侦听器,请尝试以下操作

panel.addMouseListener(new RedMouseListener());

开始简单地进行以下工作

public void mouseEntered(MouseEvent event) 
{ 
    System.out.println("Hello World!");
}

如果您需要访问事件监听器中面板的颜色,请尝试以下代码段

panel.getBackground();

这将返回一个Color对象。

值得一提的是,可以使用匿名内部类避免额外的类声明。请参见How are Anonymous (inner) classes used in Java?这些重写的方法本质上是MouseListener的子类,但我们无需按名称调用。

panel.addMouseListener(new MouseListener(){ 
    @Override
    public void mouseReleased(MouseEvent e) {}

    @Override
    public void mousePressed(MouseEvent e) {}

    @Override
    public void mouseExited(MouseEvent e) {}

    @Override
    public void mouseEntered(MouseEvent e) {}

    @Override
    public void mouseClicked(MouseEvent e) {}
});
java swing interface mouselistener system.out
1个回答
0
投票

这是堆栈溢出Mouse moved event within JPanel中的一个相关问题>

我建议您确保已正确侦听触发器(尝试打印“ Hello World”),然后从那里开始获取鼠标事件中颜色状态的信息。如果所有内容都在同一实例中,则可以访问事件侦听器中所需的变量。]​​>

这里是MouseEvent http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html上的文档>

确保已添加鼠标侦听器,请尝试以下操作

© www.soinside.com 2019 - 2024. All rights reserved.