KeleQAQ 2019-11-02 20:33 采纳率: 0%
浏览 260
已采纳

JAVA怎么在容器或者标签上绘图啊?

不太懂paint( Graphics g ), repaint。

我是想用读取一张图片,然后绘制到面板上。

图片说明

没有显示

图片说明
代码

public class My1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new MyWins1();
    }

}

class MyWins1 extends JFrame{
    BufferedImage pic;

    public MyWins1() {
        setTitle("绘图");
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 400, 300);
        validate();
    }
    //这个方法重写了。哪里出问题了
    public void paint(Graphics g) {
        super.paint(g);
        // 绘图
        try {//读取图片
            pic = ImageIO.read(new File("D:\\其它\\sun.jpg"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Graphics2D g2=(Graphics2D) g;
        BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
        g2 = image.createGraphics();
        g2.drawImage(pic, 200, 200, this);
    }
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-02 23:10
    关注

    g2.drawImage(pic, 200, 200, this);
    是不是200 200太远了,导致画在了显示区域外,用0, 0看看
    看下pic得到图片了没有
    g2 = image.createGraphics();
    这个去掉,因为你在窗体上画,不是在内存位图里面画

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名