帮我写一个Java的圣诞树
时间: 2023-09-06 10:04:57 浏览: 96
### 回答1:
好的,那么这是一个用 Java 语言绘制圣诞树的简单程序:
```
public class ChristmasTree {
public static void main(String[] args) {
int height = 10; // 设置圣诞树的高度
// 绘制圣诞树的每一层
for (int i = 0; i < height; i++) {
// 打印空格
for (int j = 0; j < height - i - 1; j++) {
System.out.print(" ");
}
// 打印星星
for (int j = 0; j < (i * 2 + 1); j++) {
System.out.print("*");
}
// 换行
System.out.println();
}
// 绘制圣诞树的底部
for (int i = 0; i < 2; i++) {
// 打印空格
for (int j = 0; j < height - 1; j++) {
System.out.print(" ");
}
// 打印圣诞树底部
System.out.println("**");
}
}
}
```
运行结果如下:
```
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
**
**
```
希望这能帮到你!
### 回答2:
Java的圣诞树可以使用Java的图形库来实现,如Swing或JavaFX。以下是一个简单的示例:
```
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class ChristmasTree extends JFrame {
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final int TREE_HEIGHT = 200;
private static final int TREE_WIDTH = 150;
private static final int STAR_SIZE = 60;
private static final int STAR_OFFSET_X = (TREE_WIDTH - STAR_SIZE) / 2;
private static final int STAR_OFFSET_Y = 5;
private static final int NUM_ORNAMENTS = 30;
private static final int ORNAMENT_SIZE = 20;
private static final Color[] ORNAMENT_COLORS = {
Color.RED,
Color.GREEN,
Color.BLUE,
Color.YELLOW,
Color.ORANGE
};
public ChristmasTree() {
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void paint(Graphics g) {
super.paint(g);
// 绘制树干
g.setColor(new Color(139, 69, 19));
g.fillRect((WIDTH - TREE_WIDTH) / 2, HEIGHT - TREE_HEIGHT - 20, TREE_WIDTH, TREE_HEIGHT);
// 绘制树冠
g.setColor(Color.GREEN);
int[] triangleX = {(WIDTH - TREE_WIDTH) / 2, WIDTH / 2, (WIDTH + TREE_WIDTH) / 2};
int[] triangleY = {HEIGHT - TREE_HEIGHT - 20, HEIGHT - 20, HEIGHT - TREE_HEIGHT - 20};
g.fillPolygon(triangleX, triangleY, 3);
// 绘制星星
g.setColor(Color.YELLOW);
g.fillPolygon(new int[]{(WIDTH - STAR_SIZE) / 2, WIDTH / 2, (WIDTH + STAR_SIZE) / 2},
new int[]{HEIGHT - TREE_HEIGHT - 20 + STAR_OFFSET_Y, HEIGHT - TREE_HEIGHT - 20 + STAR_SIZE + STAR_OFFSET_Y, HEIGHT - TREE_HEIGHT - 20 + STAR_OFFSET_Y}, 3);
// 绘制圣诞球
Random random = new Random();
for (int i = 0; i < NUM_ORNAMENTS; i++) {
int x = random.nextInt(TREE_WIDTH - ORNAMENT_SIZE) + (WIDTH - TREE_WIDTH) / 2;
int y = random.nextInt(TREE_HEIGHT - ORNAMENT_SIZE) + HEIGHT - TREE_HEIGHT - 20;
Color color = ORNAMENT_COLORS[random.nextInt(ORNAMENT_COLORS.length)];
g.setColor(color);
g.fillOval(x, y, ORNAMENT_SIZE, ORNAMENT_SIZE);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(ChristmasTree::new);
}
}
```
此代码通过继承JFrame类创建了一个新的窗口,并在窗口中绘制了一个圣诞树。树干和树冠使用不同的颜色绘制,星星的位置是树干和树冠的交点,圣诞球则随机绘制在树冠上。运行代码后,应该会显示一个简单的Java圣诞树窗口。
### 回答3:
下面是一个用Java编写的简单圣诞树程序:
```java
public class ChristmasTree {
public static void main(String[] args) {
int height = 10; // 圣诞树的高度
for (int i = 1; i <= height; i++) {
for (int j = 1; j <= height - i; j++) {
System.out.print(" "); // 打印空格,使得层次感更强
}
for (int k = 1; k <= (i * 2) - 1; k++) {
System.out.print("*"); // 打印星号,构成圣诞树的形状
}
System.out.println(); // 换行
}
// 打印圣诞树的底座
for (int i = 1; i <= height - 1; i++) {
System.out.print(" ");
}
System.out.println("I"); // 圣诞树底座的一部分
for (int i = 1; i <= height - 1; i++) {
System.out.print(" ");
}
System.out.println("III"); // 圣诞树底座的一部分
}
}
```
以上代码使用两层循环打印出一个等腰三角形的星号,构成了圣诞树的形状。在底部打印出圣诞树的底座,形状类似"I"和"III"。你可以根据需要调整变量`height`的值,来改变圣诞树的高度。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)