import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class awtPaint {
//设置两个常量,用来识别是绘制矩形还是椭圆
private final String reactString="react";
private final String orvalString="oval";
Frame frame=new Frame();
Button b1=new Button("点击绘制矩形");
Button b2=new Button("点击绘制椭圆");
Panel panel=new Panel();
String name="";//定义一个变量用来判断绘制的图形
myCanvas mc=new myCanvas();//继承Canvas类,是一个组件
//自定义类,继承Canvas类,重写Paint方法完成绘图
private class myCanvas extends Canvas{
@Override
public void paint(Graphics g) {
if(name.equals(reactString)){
//绘制矩形
g.setColor(Color.BLACK);//设置画笔颜色是黑色
g.drawRect(100,100,200,200);
}
else if(name.equals(orvalString)){
//绘制椭圆
g.setColor(Color.RED);//设置画笔颜色是红色
g.drawOval(100,100,150,100);
}
}
}
private void invint(){
panel.add(b1);
panel.add(b2);
//设置mc画布的大小
mc.setPreferredSize(new Dimension(500,500));
//监听按钮
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
name=reactString;//修改变量值
mc.repaint();//刷新画布
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
name=orvalString;
mc.repaint();
}
});
//设置组件位置
panel.add(b1);
panel.add(b2);
frame.add(panel,BorderLayout.SOUTH);
frame.add(mc);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new awtPaint().invint();
}
}