Java-满天繁星案例(2)

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);
画图解释:
在这里插入图片描述

发布了53 篇原创文章 · 获赞 33 · 访问量 1273

猜你喜欢

转载自blog.csdn.net/qq_44458489/article/details/104837116