gpt4 book ai didi

java - 其他类中改变颜色 "lamp"

转载 作者:行者123 更新时间:2023-11-30 02:54:18 27 4
gpt4 key购买 nike

情况:

我制作了一个可以打开和关闭灯的 Java 应用程序。现在我需要更改灯光,这必须发生在 class ColorLamp 中。正常的“黄”灯放在 class Lamp 中。 Colorlamp Lamp子类

问题:

如何才能通过 class ColorLamp 中的某些代码更改灯颜色?

问题更新:

如何使用 classColorLamp 更改灯的颜色?

<小时/>

代码:

这里是来自 class Lamp 的代码(更新):

public class Lamp
{
protected Color kleur = Color.YELLOW;

public static final boolean AAN = true;
public static final boolean UIT = false;

// instance variable
protected boolean aanUit;

// constructor
public Lamp()
{
// init instance variable
this.aanUit = UIT;
}

public void setAanUit(boolean aanUit)
{
this.aanUit = aanUit;
}

// switch
public void switchAanUit()
{
this.aanUit = !this.aanUit;
}

public boolean getAanUit()
{
return this.aanUit;
}

public String toString()
{
String res = "Lamp: ";

if (aanUit)
{
res = res + "AAN";
}
else
{
res = res + "UIT";
}
return res;
}

public void teken(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(5));

g2.drawOval(208, 100, 50, 50); // ronde lamp

g2.drawLine(220, 150, 220, 175); // linker kant
g2.drawLine(245, 150, 245, 175); // rechter kant

g2.drawLine(220, 175, 235, 200); // linksonder hoek
g2.drawLine(235, 200, 245, 175); // rechtsonder hoek

if(aanUit == true)
{
ColorLamp kleurlamp = new ColorLamp();
g.setColor(kleurlamp.getColor());
}
else
{
g.setColor(Color.WHITE);
}
g.fillOval(208, 100, 50, 50);
g.setColor(Color.BLACK);
}
}
<小时/>

这里是当前的代码ColorLamp(可以工作,但不是如何改变的):

public class ColorLamp extends Lamp
{
protected Color kleur = Color.GREEN;

public Color getColor()
{
return kleur;
}
}
<小时/>

可能的正确代码classColorLamp:

package lamp;

import java.awt.*;

public class ColorLamp extends Lamp
{
protected Color kleur = Color.GREEN;
public ColorLamp(Color kleur)
{
super();
this.kleur = kleur;
}
public Color getKleur()
{
return this.kleur;
}
public void setKleur(Color kleur)
{
this.kleur = kleur;
}
public String toString()
{
String res = "Lamp: ";
if(super.getAanUit())
{
res = res + "ÄAN";
}
else{
res = res + "UIT";
}
return res + kleur.toString();
}
}

最佳答案

您应该做的是让所有Lamp 对象都有一个ColorLamp 类本身将具有 Color.Yellow,并且不能从其他类更改。

public class Lamp
{
protected Color kleur = Color.YELLOW;
/// Other things...

public void teken(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;

// Draw the lamp parts

if(aanUit == true)
{
g.setColor(this.kleur); // Set color here
}
else
{
g.setColor(Color.WHITE);
}
g.fillOval(208, 100, 50, 50);
g.setColor(Color.BLACK);
}

}

然后在ColorLamp中,您可以删除private Color kleur;并使用继承的protected Color kleur字段。

要在绘制灯后更改颜色,您需要重新绘制组件。

关于java - 其他类中改变颜色 "lamp",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37710040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com