0
点赞
收藏
分享

微信扫一扫

组件绘图Graphics的基本使用

RJ_Hwang 2022-04-23 阅读 34
java

 

 

 

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();
    }
}
举报

相关推荐

Python的基本绘图<三>

vue组件基本使用

0 条评论