java使用for循环语句,不要直接用System.outpminth简单输出,在屏幕的正中间(上下 居中、左右居中、7行7列,)输出图案如下: ☆☆☆☆☆☆☆ ☆☆☆☆☆ ☆☆☆ ☆
时间: 2024-10-16 22:18:09 浏览: 26
在Java中,我们可以使用`BufferedImage`和`Graphics2D`来创建并显示这种复杂的图形,而不是直接通过控制台打印。以下是创建和显示这种图案的步骤:
```java
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
public class Main {
public static void main(String[] args) {
int width = 80; // 图案总宽度
int height = 56; // 图案总高度
int starWidth = 5; // 星星的宽度
int gap = (width - (4 * starWidth)) / 2; // 左右空白的像素数
// 创建一个新的图像
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
// 获取绘图上下文
Graphics2D g = img.createGraphics();
// 设置填充样式
g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height); // 清除背景
// 在中心位置绘制星星
for (int y = 0; y < height; y++) {
if (y <= starWidth || y >= height - starWidth) { // 第一行和最后一行全画星星
for (int x = gap; x < width - gap; x += starWidth) {
g.setColor(Color.YELLOW);
g.fillPolygon(new int[]{x, x + starWidth}, new int[]{y, y}, 2);
}
} else if (y % 2 == 0) { // 奇数行只画一半星星
for (int x = gap; x < width - gap; x += starWidth) {
g.setColor(Color.YELLOW);
g.fillPolygon(new int[]{x, x + starWidth}, new int[]{y, y + starWidth / 2}, 2);
}
}
// 每两行换一次颜色和星星的位置
if ((y / starWidth) % 2 != 0) {
g.setColor(Color.RED);
}
}
// 将图片保存到文件或显示在窗口
try {
ImageIO.write(img, "png", new File("stars.png"));
// 或者显示在Swing组件上
// JFrame frame = new JFrame();
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// frame.getContentPane().add(new JLabel(new ImageIcon(img)));
// frame.pack();
// frame.setVisible(true);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序首先创建了一个指定大小的缓冲图像,然后使用`Graphics2D`在图像上绘制出星星的图案。最后将图案保存成图片或展示在GUI上。
阅读全文