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 爬取豆瓣电影相关处理
  • ¥15 手机淘宝抓清除消息接口
  • ¥15 C#无selenium
  • ¥15 LD衰减计算的结果过大
  • ¥15 用机器学习方法帮助保险公司预测哪些是欺诈行为
  • ¥15 计算300m以内的LD衰减
  • ¥15 数据爬取,python
  • ¥15 怎么看 cst中一个面的功率分布图,请说明详细步骤。类似下图
  • ¥15 为什么我的pycharm无法用pyqt6的QtWebEngine
  • ¥15 FOR循环语句显示查询超过300S错误怎么办