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!