修改版本1中Fan类,让其继承Pane类,并且把color属性设置为Color类型,默认属性为red。随机产生radius,取值范围为1-5;随机产生颜色,取值范围为red、blue、yellow、green、orange;根据color、radius属性值绘制风扇。
时间: 2024-03-21 20:39:48 浏览: 40
好的,根据您的要求,我修改了Fan类如下(代码中使用了JavaFX库中的类):
```java
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Arc;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Shape;
import java.util.Random;
public class Fan extends Pane {
private Color color = Color.RED;
private double radius;
// 构造方法
public Fan() {
// 随机生成半径和颜色
Random random = new Random();
radius = random.nextInt(5) + 1;
int colorIdx = random.nextInt(5);
switch (colorIdx) {
case 0:
color = Color.RED;
break;
case 1:
color = Color.BLUE;
break;
case 2:
color = Color.YELLOW;
break;
case 3:
color = Color.GREEN;
break;
case 4:
color = Color.ORANGE;
break;
}
// 绘制风扇
Circle circle = new Circle(50, 50, 50);
Arc arc1 = new Arc(50, 50, 40, 40, 30, 35);
Arc arc2 = new Arc(50, 50, 40, 40, 30 + 90, 35);
Arc arc3 = new Arc(50, 50, 40, 40, 30 + 180, 35);
Arc arc4 = new Arc(50, 50, 40, 40, 30 + 270, 35);
Shape fan = Shape.subtract(Shape.union(Shape.union(arc1, arc2), Shape.union(arc3, arc4)), circle);
fan.setFill(color);
fan.setStroke(Color.BLACK);
fan.setStrokeWidth(2);
// 将风扇添加到Pane中
getChildren().add(fan);
}
}
```
现在Fan类继承自Pane类,并且具有color属性(默认为红色),随机生成的radius属性,以及根据这两个属性绘制的风扇形状。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)