java更改绘制的椭圆形的颜色
我创建了一个名为“城市”的对象
City city = new City (name, rec, g);
对象的构造函数如下所示:
public City (String name, Rectangle r, Graphics g){
this.name = name;
this.r = r;
this.g = g;
}
通过创建这个对象,我还在上传的图片上绘制了一个椭圆形,并将其颜色设置为蓝色。以下是我如何绘制对象:
g = (Graphics2D) window.lblNewLabel.getGraphics();
g.setColor(Color.BLUE);
g.fillOval(mouseX, mouseY, 15, 15);
我希望能在点击椭圆形本身后,改变颜色。 我试图调用此函数,但它不起作用:
public void isClicked(){
clicked = true;
this.color = Color.RED;
this.g.setColor(Color.PINK);
}
如何更改现有对象的颜色
# 1 楼答案
使用
Graphics
对象绘制对象后,将在屏幕上渲染这些对象。你不能直接改变它们的颜色,相反,当你想改变它们时,你必须随时重新绘制图形。如果要跟踪对象的颜色,必须将数据存储在某种变量中,并在绘制时使用它# 2 楼答案
在组件上使用
getGraphics()
会导致在组件本身上使用瞬态图形对象。对repaint
的任何后续调用都将删除使用该对象完成的绘制通过覆盖
paintComponent
方法更改颜色。将Color
变量保存为类成员变量,并使用它确定方法中的椭圆形