java中swing的imageicon插入图片时爆空指针

import javax.swing.*;
import java.awt.*;
import java.net.URL;

import static java.lang.Math.abs;

public class Main {
    public static void main(String[] args) {
      myFrame x=new myFrame(50,50,600,600,Color.WHITE,"登录");
    }
}
class myFrame extends JFrame {
    myFrame (int x,int y,int w,int h,Color color,String s)
    {
        setTitle(s);
        setBounds(x,y,w,h);
        setBackground(color);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        JLabel label =new JLabel("Imageicon");
        label.setIcon(new ImageIcon(ImageIcon.class.getResource("RC.jpg")));
        getContentPane().add(label);


    }
}

img

img

是这个为空?

img

  • 建议你看下这篇博客👉 :Java中swing使用ImageIcon类添加图片
  • 除此之外, 这篇博客: JavaSE:GUI编程入门到游戏实战中的 3. Icon、ImageIcon标签 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 图标标签

    package com.demo8_gui.demo04_swing;
    
    import javax.swing.*;
    import java.awt.*;
    
    //图标,需要实现类,Frame继承
    public class IconDemo extends JFrame implements Icon {
    
        private int width;
        private int height;
    
        public IconDemo(){}//无参构造
    
        public IconDemo(int width,int height){
            this.width = width;
            this.height = height;
        }
    
        public void init(){
            IconDemo iconDemo = new IconDemo(15, 15);
            //图标放在标签上,也可以放在按钮上!
            JLabel label = new JLabel("icontest",iconDemo,SwingConstants.CENTER);
    
            Container container = getContentPane();
            container.add(label);
    
            this.setVisible(true);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    
        public static void main(String[] args) {
            new IconDemo().init();
        }
    
        @Override
        public void paintIcon(Component c, Graphics g, int x, int y) {
            //组件 Component,画笔 Graphics
            g.fillOval(x,y,width,height);
        }
    
        @Override
        public int getIconWidth() {
            return this.width;
        }
    
        @Override
        public int getIconHeight() {
            return this.height;
        }
    }
    
    

    图片标签

    package com.demo8_gui.demo04_swing;
    
    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;
    
    public class ImageIconDemo extends JFrame {
    
        public ImageIconDemo(){
            //获取图片的地址
            JLabel label = new JLabel("ImagIcon");
            URL url = ImageIconDemo.class.getResource("1.jpg");//放的是绝对路径下的资源(不同电脑,设置可能不一样)
    
            ImageIcon imageIcon = new ImageIcon(url);//命名不要冲突了!原来的类名为ImageIcon,产生冲突了报错
            label.setIcon(imageIcon);
            label.setHorizontalAlignment(SwingConstants.CENTER);
    
            Container container = getContentPane();
            container.add(label);
    
            setVisible(true);
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setBounds(100,100,200,200);
        }
    
        public static void main(String[] args) {
            new ImageIconDemo();
        }
    }