如何将 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/