首页 > 解决方案 > 在java中并排显示来自磁盘和URL的图片

问题描述

我想在从磁盘显示的图片旁边添加来自 URL 的图片,但在第 36 行收到错误并且不知道如何对其进行排序。你能帮我弄清楚吗?

它在线程“AWT-EventQueue-0”java.lang.Error 中返回异常:未解决的编译问题:未处理的异常类型 IOException

那么我应该抓住 MalformedURLException e + IOException e 吗?

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.awt.Image;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ObrazPanel extends JPanel {

    private BufferedImage image;
    private BufferedImage image2;

    public ObrazPanel()  {
        super();

    File imageFile = new File("C:\\Users\\KostrzewskiT\\eclipse-workspace\\zdjecie\\src\\zdjecie\\java.jpg");
    //File imageFile2 = new File("C:\\Users\\KostrzewskiT\\eclipse-workspace\\zdjecie\\src\\zdjecie\\java2.jpg");   

        try {
            image = ImageIO.read(imageFile);
        //  image2 = ImageIO.read(imageURL);
        } catch (IOException e) {
            System.err.println("Blad odczytu obrazka");
            e.printStackTrace();
        }

        try {
            URL imageURL = new URL ("http://beautyinspiration.pl/wp-content/uploads/2015/12/i-coach-otw.jpg");
            image2 = ImageIO.read(imageURL);
        } catch (MalformedURLException e) {
            System.err.println("Blad odczytu obrazka");
            e.printStackTrace();
        }

//wymiar wyswietlanych obrazkow
        Dimension dimension = new Dimension(image.getWidth() + image2.getWidth(), image2.getHeight());
        setPreferredSize(dimension);

    }


    @Override
    public void paintComponent(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(image, 0, 0, this); //punkty w ktorych jest wyswietlane
        g2d.drawImage(image2, image.getWidth(), 0, this);
    }
}

标签: java

解决方案


我更正我的代码

try {
    URL imageURL = new URL ("path");
    image2 = ImageIO.read(imageURL.openStream());
} catch (IOException d) {
    System.err.println("Blad odczytu obrazka URL");
    d.printStackTrace();

这是正确的方式,还是超出最佳实践?


推荐阅读