java JFrame 绘图方法

此博客展示了一段Java代码,定义了一个继承自JPanel的类myPanel。代码中包含读取图片的操作,并重写了JPanel的多个方法,如paintBorder等,在这些方法里实现了绘制矩形、椭圆、文本、弧线等图形,以及绘制图片的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.LayoutManager;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class myPanel extends JPanel {

    BufferedImage image=null;
   //源码  超类重构 jpanel
    public myPanel() {
        super();
        
        try {
            image=ImageIO.read(getClass().getResource("image.jpg"));//图片在同一类中
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        
        // TODO 自动生成的构造函数存根
        
    }

    public myPanel(boolean isDoubleBuffered) {
        super(isDoubleBuffered);
        // TODO 自动生成的构造函数存根
    }

    public myPanel(LayoutManager layout, boolean isDoubleBuffered) {
        super(layout, isDoubleBuffered);
        // TODO 自动生成的构造函数存根
    }

    public myPanel(LayoutManager layout) {
        super(layout);
        // TODO 自动生成的构造函数存根
    }

    @Override
    protected void paintBorder(Graphics g) {
        // TODO 自动生成的方法存根
        g.setColor(Color.orange);
        g.drawRect(10, 10,50, 50);//矩形框
        g.fillRect(0, 0, 20, 20);//填充的矩形
        //g.fillRoundRect(x, y, width, height, arcWidth, arcHeight);//填充圆角矩形
        g.drawOval(90, 90, 10, 10);//椭圆
        g.setFont(new Font("a",Font.BOLD, 20));//文本
        g.drawString("test",200, 200);
        g.drawArc(50, 50, 30, 30, 0, 180);//弧线,逆时针
        g.fillArc(0, 0, 200, 200, 180, 0);
        if(image!=null)
        {
            g.drawImage(image, 20, 20, null);
            //g.drawImage(img, x, y, width, height, observer);
        }
        //g.drawPolyline(xPoints, yPoints, nPoints);//x坐标,y坐标,顶点数
    }

    @Override
    protected void paintChildren(Graphics g) {
        // TODO 自动生成的方法存根
        super.paintChildren(g);
    }

    @Override
    protected void paintComponent(Graphics g) {
        // TODO 自动生成的方法存根
        super.paintComponent(g);
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值