Graphics类
package frank; import java.lang.*; import java.util.Random; import java.awt.*; import java.awt.event.*; /** * Graphics类 * */ public class App { private final String RECT_SHAPE = "rect"; private final String OVAL_SHAPE = "oval"; private Frame f = new Frame("测试窗体"); private Button rect = new Button("绘制矩形"); private Button oval = new Button("绘制圆形"); private MyCanvas drawArea = new MyCanvas(); private String shape = ""; public static void main(String[] args) { new App().init(); } public void init() { Panel p = new Panel(); rect.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { shape = RECT_SHAPE; drawArea.repaint(); } }); oval.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { shape = OVAL_SHAPE; drawArea.repaint(); } }); p.add(rect); p.add(oval); drawArea.setPreferredSize(new Dimension(250,180)); f.add(drawArea); f.add(p,BorderLayout.SOUTH); f.pack(); f.addWindowListener(new MyListener()); f.setVisible(true); } class MyCanvas extends Canvas { public void paint(Graphics g) { Random rand = new Random(); if(shape.equals(RECT_SHAPE)) { g.setColor(new Color(220,100,80)); g.drawRect(rand.nextInt(200),rand.nextInt(120),40,60); } if(shape.equals(OVAL_SHAPE)) { g.setColor(new Color(80,100,200)); g.fillOval(rand.nextInt(200),rand.nextInt(120),50,40); } } } class MyListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.out.println("用户关闭窗体!\n"); System.exit(0); } } }