java有关图形界面复习--第二篇(绘制8个同心圆,各个圆应相差15个象素)

package p;
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;

public class Homework1MulitiCricle  extends JPanel {

	private static final String Graphics = null;

	//private BufferedImage bi = new BufferedImage(320, 240,
		//	BufferedImage.TYPE_INT_BGR);
	public Homework1MulitiCricle() {
		// TODO Auto-generated constructor stub
		setPreferredSize(new Dimension(500, 500));
		System.out.println("这是第3个输出");
	}
	public void paintComponent(Graphics g) {
		System.out.println("这是第4个输出");
		int radius = 50;
		g.setColor(Color.red);
		for (int i = 1; i <= 8; i++) {
		g.drawOval(200 - (radius + 15 * i), 200 - (radius + 15 * i),
		(radius + 15 * i) * 2, (radius + 15 * i) * 2);
		}

		}
	public void abc()
	{
		System.out.println("你好");

	}
		public static void main(String[] args) {
		JFrame frame = new JFrame("MultiCircle");
		System.out.println("这是第一个输出");
		frame.add(new Homework1MulitiCricle());
		System.out.println("这是第2个输出");
		frame.pack();
		System.out.println("这是第5个输出");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		System.out.println("这是第6个输出");
		
		frame.setVisible(true);
		System.out.println("这是第7个输出");
		}
} 

1、JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等,功能是对窗体上的这些控件进行组合,相当于C++和C#中的Panel类。

2、设置容器大小.
Dimension 类将组件的宽度和高度封装在一个单个对象中.它与组件的一些特性相关.一些由 Component 类和 LayoutManager 接口定义的方法返回 Dimension 对象.
width 和 height 的值通常是非负整数.允许创建一个 dimension 的构造子并不禁止用户为这些特性设置负值.若 width 或 height 的值为负数,则由其它对象定义的一些方法的行为是未定义的.

3、对于drawOval(int x,int y,int width,int height);来说,假想有个矩形刚好把圆包住,那么矩形的左上角坐标就是(x,y),矩形的右下角的坐标就是(x+width,y+height),圆心坐标是(x+width/2,y+height/2)

4、Pack()方法的作用:调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者还不可显示,则在计算首选大小之前都将变得可显示。在计算首选大小之后,将会验证该窗口。

5、类有一个方法paintComponent(Graphics g),当主方法并没有调用这个类的方法,而这个方法里的代码仍被执行。什么时候paintComponent(Graphics g)被调用?

当java认为需要重新绘制组件的时候由java调用。例如在程序中repaint();或者程序窗口最小化,然后恢复;或者程序窗口被遮挡,又显现的时候。

paintComponent就是本身这个容器自己画出自己组件的方法,且在JComponent中的方法paintComponent()还是保护类型的,即我们平常并不用管这个方法。只在我们需要改变绘制组件动作的时候,类只要先继承paintComponent(一般是JFrame),然后重写这个方法即可。
 

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值