0 java swing awt object java-2d
我创建了一个名为"City"的对象
City city = new City (name, rec, g);
Run Code Online (Sandbox Code Playgroud)
对象的构造函数如下所示:
public City (String name, Rectangle r, Graphics g){
this.name = name;
this.r = r;
this.g = g;
}
Run Code Online (Sandbox Code Playgroud)
通过创建此对象,我还在上传的图片上绘制一个椭圆,并将其颜色设置为蓝色.这是我绘制对象的方式:
g = (Graphics2D) window.lblNewLabel.getGraphics();
g.setColor(Color.BLUE);
g.fillOval(mouseX, mouseY, 15, 15);
Run Code Online (Sandbox Code Playgroud)
我希望以后能够在点击椭圆形本身后改变颜色.我尝试调用此函数,但它不起作用:
public void isClicked(){
clicked = true;
this.color = Color.RED;
this.g.setColor(Color.PINK);
}
Run Code Online (Sandbox Code Playgroud)
如何更改现有对象的颜色?
使用getGraphics()的部件上引起瞬时图形对象被组件本身上使用.任何后续调用都repaint将擦除使用该对象完成的绘画.
通过覆盖paintComponent方法更改颜色.将Color变量保存为类成员变量,并使用它来确定方法中的椭圆颜色.
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(savedColor);
g.fillOval(mouseX, mouseY, 15, 15);
}
Run Code Online (Sandbox Code Playgroud)