Java 如何更改不同鼠标运动事件的文本颜色?
我有一个学校作业,要做一个程序,创建一个小窗口,当你移动鼠标而不点击它时,上面的坐标显示为黑色文本,当你按住并拖动鼠标时,上面的坐标显示为红色文本。我让程序工作,所以它显示了两个事件的鼠标上方的坐标,但我不知道如何在按住鼠标时将颜色更改为红色。以下是我到目前为止的情况:Java 如何更改不同鼠标运动事件的文本颜色?,java,Java,我有一个学校作业,要做一个程序,创建一个小窗口,当你移动鼠标而不点击它时,上面的坐标显示为黑色文本,当你按住并拖动鼠标时,上面的坐标显示为红色文本。我让程序工作,所以它显示了两个事件的鼠标上方的坐标,但我不知道如何在按住鼠标时将颜色更改为红色。以下是我到目前为止的情况: class MyFrame extends Frame{ int x; int y; public void paint(Graphics g){ g.drawString(
class MyFrame extends Frame{
int x;
int y;
public void paint(Graphics g){
g.drawString(
"" + x + ", " + y, x, y);
}
}
class MyMouseListener extends MouseMotionAdapter{
MyFrame ref;
MyMouseListener(MyFrame mFrame){
ref = mFrame;
}
public void mouseDragged(MouseEvent e){
ref.x = e.getX();
ref.y = e.getY();
ref.repaint();
}
public void mouseMoved(MouseEvent e){
ref.x = e.getX();
ref.y = e.getY();
ref.repaint();
}
}
这需要在mouseDragged()方法或MyFrame类中进行吗?有没有办法生成一个if语句来调用哪个方法,这样我就可以为if(mouseDragged())或类似的东西设置一个颜色?关于paint方法调用
g.setColor(color)
。
相应地将鼠标事件中的颜色设置为黑色和红色。假设您在ref上有一个公共属性
color
,只需在鼠标拖动方法中设置ref.color=color.red
,并在鼠标移动中设置类似的黑色。然后可以更新显示文本,以使用该变量中的颜色进行渲染。与坐标系的原理完全相同。或者你也可以用同样的方法上/下鼠标。这非常有效,谢谢Roddy!