尝试将图像添加到标签但不起作用?



我试图将图像"Pic.png"添加到这个JLabel "label1"并在JFrame "window1"上的JPanel "panel1"上显示它。但当我点击运行时,它不会显示我的图像。有人帮助吗?(我读过关于将其添加到源文件或其他东西,但我不确定我在做什么,因为我是Java新手。如果图片不在源中,它将无法访问图片吗?)

public class UIForIshidaQuery {
    public static void main(String[] args) {
        System.out.println("Running...");
        JFrame window1 = new JFrame();
        window1.setVisible(true);
        window1.setSize(1080, 720);
        window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel1 = (JPanel) window1.getContentPane();
        JLabel label1 = new JLabel();
        panel1.setLayout(null);
        ImageIcon image = new ImageIcon("C:\Users\BC03\Pictures\Saved Pictures\Other\Pic.png");
        label1.setIcon(image);
        label1.setBounds(500, 500, 500, 500);
        panel1.add(label1);
    }
}

应该在最后一次调用时设置为可见窗口。不要使用null布局1。这工作。

import java.net.*;
import javax.swing.*;
public class UIForIshidaQuery {
    public static String url = "https://i.stack.imgur.com/gJmeJ.png";
    public static void main(String[] args) throws MalformedURLException {
        System.out.println("Running...");
        JFrame window1 = new JFrame();
        window1.setSize(1080, 720);
        window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel1 = (JPanel) window1.getContentPane();
        JLabel label1 = new JLabel();
        //panel1.setLayout(null);
        ImageIcon image = new ImageIcon(new URL(url));
        label1.setIcon(image);
        //label1.setBounds(500, 500, 500, 500);
        panel1.add(label1);
        window1.setVisible(true);
    }
}
  1. Java gui必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,使用不同地区的不同plaf。因此,它们不利于像素完美的布局。相反,使用布局管理器,或它们的组合以及布局填充和空白边框。

如果您正在使用IntelliJ IDEA:

    右键单击项目根目录,选择New> directory;
  1. 将新目录命名为'resources',例如;
  2. 右键单击新创建的目录,选择"将目录标记为>资源根";
  3. 将您的图像文件添加到目录中;
  4. 正确访问文件:CurrentClass.class.getClassLoader().getResource("pic.png").getFile();

ImageIcon可以这样初始化:

File file = new File(CurrentClass.class.getClassLoader().getResource("pic.png").getFile());
        BufferedImage image = null;
        try {
            image = ImageIO.read(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        ImageIcon imageIcon = new ImageIcon(image);

相关内容

  • 没有找到相关文章

最新更新