import java.awt.Color;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
//满天繁星案例
public class Run {
public static void main(String[] args) throws IOException {
//创建一个窗体
JFrame f = new JFrame(); //Java中定义好的
//设置窗体的背景颜色为黑色
f.setBackground(Color.BLACK);
//往f窗体中放入画纸,画纸用之前要先创建才可以用,画纸就是MyPaper
MyPaper mp = new MyPaper(); //自己定义的
f.add(mp);
//设置窗体可见
f.setVisible(true);
//设置窗体的大小(自定义大小即可)
f.setSize(800, 600);
//设置窗体的位置(位置自定义)
f.setLocation(450, 200);
//设置位置居中
f.setLocationRelativeTo(null);
//设置关闭窗体的后台
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体的大小不可改变
f.setResizable(false);
//设置窗体的标题
f.setTitle("满天繁星");
//设置窗体标题左边的小图标(自己准备图片)
f.setIconImage(ImageIO.read(new File("star.jpg")));
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
//MyPaper类理解为自己的一张空白的画纸
//extends是继承,MyPaper继承了JPanel,子类是MyPaper,父类是JPanel
//#编程思想
public class MyPaper extends JPanel{
//继承之后,可以把带画笔的绘画的功能paint继承过来,画我们自己的东西
//Alt+/ 自动补全/自动提示的快捷键 例如:main,syso
//paint 表示绘画;Graphics g表示绘画用的画笔
// @Override
// public void paint(Graphics g) {
//
// super.paint(g);
//
// }
//在该方法中画自己的东西
public void paint(Graphics g) {
//修改画笔的颜色--为白色
g.setColor(Color.WHITE);
//使用画笔画一个圆--月亮
//fill rectangle 填充矩形 .fillRect()
//fill oval 填充圆形 .fillOval()
// g.fillRect(50, 50, 100, 100); //在50,50的位置画一个100,100大小正方形
g.fillOval(50, 50, 100, 100); //在50,50的位置画一个100,100大小的圆
//需改画笔的颜色--为黑色
g.setColor(Color.BLACK);
g.fillOval(30, 30, 100, 100); //覆盖,做弯月亮
//修改画笔的颜色--为白色
g.setColor(Color.WHITE);
//创建Random随机数类
Random r = new Random();
// g.drawString("*", 200, 100); 一颗一颗的画 ×
//使用循环画1000颗星星
for (int i = 0; i < 1000; i++) {
//设置成五颜六色的星星
// g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));
//使用画笔g先画一颗星星 *
//画笔默认初始颜色是黑色
//参数1:画谁;参数2和3:所画内容的坐标位置
//注:别超出了定义的窗体的大小
g.drawString("*", r.nextInt(800), r.nextInt(600)); //在坐标为300,200的位置画一颗 *
}
}
}
g.fillOval(x, y, w, h);
画图解释: