PaintSwatch をクリックすると、それ自体が強調表示されるようにします (setFrameThickness と setFrameColor)。ただし、一度に 1 つだけを強調表示できるようにしたいと考えています。満たす必要がある2つの条件を含めましたが、複数のペイントスウォッチをまだ強調表示できるため、ブール部分が思ったように機能していません。
import wheels.users.*;
import java.awt.Color;
import java.awt.event.MouseEvent;
public class PaintSwatch extends Ellipse
{
private ColorHolder _holder; //Swatches setColor of this peer object
private boolean _clicked;
public PaintSwatch(Color c,ColorHolder holder){
super(c);
_holder = holder;
_clicked = false;
}
public void mouseClicked(MouseEvent e){
if (!_holder.getColor().equals(super.getColor()) && _clicked == false)
{
super.setFrameColor(Color.BLACK);
super.setFrameThickness(3);
_holder.setColor(super.getColor());
_clicked=true;
}
else if(_holder.getColor().equals(super.getColor()) && _clicked == true)
{
super.setFrameThickness(0);
super.setFrameColor(Color.WHITE);
_holder.setColor(Color.RED);
_clicked=false;
}
}
}