Java 让我的作业对象只在鼠标按下时改变颜色?

Java 让我的作业对象只在鼠标按下时改变颜色?,java,mouseevent,Java,Mouseevent,我有一个对象的ArrayList,ArrayList的名称是siteArray。我创建了一个叫做研究网站的网站。我可以单击框架中的任意位置来创建它们 一旦它们存在,我需要能够再次单击它们并将颜色更改为蓝色 我该怎么办?我试图用我的鼠标按下的方法来做这件事,粘贴在下面 public void mousePressed( MouseEvent me ) { ResearchSite newSite = new ResearchSite(getParent().getMousePosition

我有一个对象的ArrayList,ArrayList的名称是siteArray。我创建了一个叫做研究网站的网站。我可以单击框架中的任意位置来创建它们

一旦它们存在,我需要能够再次单击它们并将颜色更改为蓝色

我该怎么办?我试图用我的鼠标按下的方法来做这件事,粘贴在下面

public void mousePressed( MouseEvent me )
{
    ResearchSite newSite = new ResearchSite(getParent().getMousePosition());
    this.add( newSite );
    siteArray.add( newSite );
    newSite.setDraggable( true );
    repaint();
}

首先,您应该向research site对象添加一个属性:pressed,默认为布尔值和false

您可以这样做:

  • 检查按下是否为假或真
  • false:更改为true并显示帧
  • true:在重新绘制方法中将颜色更改为蓝色
  • 在绘制方法中:

  • 检查是否按下
  • false:添加框架
  • 正确:将颜色更改为蓝色

  • 首先,您应该向research site对象添加一个属性:pressed,默认为布尔值和false

    您可以这样做:

  • 检查按下是否为假或真
  • false:更改为true并显示帧
  • true:在重新绘制方法中将颜色更改为蓝色
  • 在绘制方法中:

  • 检查是否按下
  • false:添加框架
  • 正确:将颜色更改为蓝色

  • 这可能有用。我要试一试!每次我按下相框,都需要出现一个红色的。当我在它出现后点击它时,它需要变成蓝色。如果我为整个印刷机做一个布尔值,这会起作用吗?你说的整个印刷机是什么意思?我不确定它是否起作用,因为它都需要用鼠标按下的方法来完成。我该怎么办?这可能行得通。我要试一试!每次我按下相框,都需要出现一个红色的。当我在它出现后点击它时,它需要变成蓝色。如果我为整个印刷机做一个布尔值,这会起作用吗?你说的整个印刷机是什么意思?我不确定它是否起作用,因为它都需要用鼠标按下的方法来完成。我该怎么做呢?