//Jpanel和panel都为中间层容器,可显示文字、图像、绘制图形,主要功能是
在GUI中组织其他组件。但无边框,丌能做独立窗口。 以Jpanel为例,给一个曾经的实例
//MyPanel.java
import java.awt.*;
import javax.swing.*;
import java.util.Random;
public class MyPanel extends JPanel {
private Circle circle[];
public MyPanel() {
setBackground(Color.black); // 面板背景色
setPreferredSize(new Dimension(600,450)); // 面板大小
int numCircle=new Random().nextInt(6)+5;
//int numCircle=circle.length;
circle=new Circle[numCircle];
for(int i=0;i Color color=new Color(new Random().nextInt(256),new Random().nextInt(256),new Random().nextInt(256)); circle[i]=new Circle(new Random().nextInt(50)+10,color,new Random().nextInt(420)+61,new Random().nextInt(320)+61); } } /* 每个JPanel对象都有painComponent方法,绘制添加在容器上的组件, 在 * 组件首次显示或重新显示时被自动调用。 */ public void paintComponent(Graphics g) { super.paintComponent(g); // 调用父类方法, 清空画布,绘制背景色 setFont(new Font ("Times New Roman",Font.BOLD,20)); // 设置字体 g.setColor(Color.pink); g.drawString("Hello World!",250,200); for(int i=0;i circle[i].draw(g); } } } //Circle.java import java.awt.*; /**此类定义了绘制圆的基本方法 *@author JF *@version 1.0 */ public class Circle { // 直径和圆外接正方形左上角坐标 private int diameter,x,y; // 指定圆的大小和位置 private Color color; // 颜色 public Circle(){ } /**构造函数,设置圆类的属性 *@param int diameter,Color color,int x,int y *@return none */ Circle(int diameter,Color color,int x,int y ){ this.diameter=diameter; this.color=color; this.x=x; this.y=y; } /**填充圆类 *@param Graphics *@return none */ public void draw(Graphics g){ g.setColor(color); g.fillOval(x,y,diameter,diameter); } } //MyCircle.java import javax.swing.*; public class MyCircle{ public static void main(String[] args){ JFrame f=new JFrame("Circle"); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(new MyPanel()); f.pack(); } }