java - 在java中将ActionListener合并到MouseMotionListener

标签 java user-interface actionlistener mouselistener

如何将 actionPerformed() 合并到 mouseMoved() 中?

这是我的代码:

public void mouseMoved(MouseEvent e) {
if(e.getSource()==app.p1){
        ????
}

}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
    ????
}

b1 是一个显示“红色”的 JButton,p1 是一个蓝色面板。 我想要一个结果,当我单击 b1 时,我会得到一种颜色。当我将鼠标移至 p1 时,p1 的颜色将从蓝色变为红色。我该如何做到这一点。

任何帮助将不胜感激。 :)

类似于:

public void mouseMoved(MouseEvent e) {
if(e.getSource()==app.p1){
    //get the color stored in the variable and set it as background
}

}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
    //get color and store it in like a variable
}

我不能直接执行此操作,因为 p1 将被填充而无需将鼠标移到其上:

public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
    p1.setBackground(Color.RED);
}

最佳答案

实例变量:

String colorString = ""

事件处理程序:

public void mouseMoved(MouseEvent e) {
    if(e.getSource()==app.p1){
        app.p1.setBackground(Color.getColor(this.colorString));
    }
}
public void actionPerformed(ActionEvent e){
    if(e.getSource()==b1)
        this.colorString = e.getActionCommand();
    }
}

这使用按钮上的文本来确定颜色。请注意,如果字符串是无效的颜色名称,它将不起作用。

关于java - 在java中将ActionListener合并到MouseMotionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18786459/

相关文章:

java - 从 JPanel 读取 JFrame 中的 Action 监听器

java - Primefaces 对话框操作在初始化期间被调用

java - java中十进制转十六进制的方法

java - 尝试将图像转换为 BufferedImage

html - 类似于 Mac OS X 10.8 无效密码 "shake"的 CSS 动画?

java - JButton 在单击时卡住(因为我在 ActionListener 中启动递归函数)

java - android-studio java.lang.NullPointerException onPostExecute应用程序在电话不在模拟器上崩溃

java - 在 Oracle 中不使用唯一键防止重复插入

android - android中从右到左的布局

java - 将 Action 监听器添加到带有 JTextFields 的 JOptionsPane