单击两个按钮分别绘制矩形和椭圆(Java)

效果显示

单击”绘制矩形“按钮后: 

单击”绘制椭圆“后:

代码实现 

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//测试绘图
public class SimpleDraw {
    private final String RECT_SHAPE="rect";//矩形

    private final String OVAL_SHAPE="oval";//椭圆

    Frame frame = new Frame("演示绘图");

    Button bt1 = new Button("绘制矩形");
    Button bt2 = new Button("绘制椭圆");

    //定义变量记录当前绘制的图形
    private String shape = "";

    //自定类继承Canvas类,重写paint(Graphics g)方法完成画图,即画布
    private class MyCanvas extends Canvas {
        @Override
        public void paint(Graphics g) {
            if(shape.equals(RECT_SHAPE)){
                //绘制矩形
                g.setColor(Color.BLACK);//画笔黑色
                g.drawRect(100,100,150,100);//绘制矩形
            }else if(shape.equals(OVAL_SHAPE)){
                //绘制椭圆
                g.setColor(Color.RED);//红色
                g.drawOval(100,100,150,100);//绘制椭圆
            }
        }
    }

    //创建自定义画布对象
    MyCanvas drawArea = new MyCanvas();

    //组装视图
    public void init(){
        bt1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //修改标记的值为rect
                shape = RECT_SHAPE;//矩形
                drawArea.repaint();//刷新绘图
            }
        });
        bt2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //修改标记的值为oval
                shape = OVAL_SHAPE;//椭圆
                drawArea.repaint();//刷新绘图
            }
        });

        Panel p = new Panel();
        p.add(bt1);
        p.add(bt2);
        frame.add(p,BorderLayout.SOUTH);//放在南部区域

        //drawArea画布的大小需要设置
        drawArea.setSize(300,300);
        frame.add(drawArea);

        frame.pack();
        frame.setVisible(true);
    }
    public static void main(String[] args) {
        new SimpleDraw().init();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_54702911/article/details/121878187