在jframe上显示图像

时间:2018-08-01 13:44:57

标签: java image swing jframe

import javax.swing.*;

public class test extends JFrame {

    public static void main(String args[]) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setLocation(400, 100);
        frame.setTitle("hello world");

        ImageIcon img = new ImageIcon();
        img.getClass().getResource("/testing/youlost.png");
        JPanel panel = new JPanel();
        JLabel label = new JLabel(img);
        panel.add(label);
        panel.setVisible(true);
        frame.pack();
    }
}

我在Eclipse中运行这些代码,并且由于frame.pack()弹出了框架,没有给出任何错误,但是图像没有出现。有人可以帮助我提供代码吗?

2 个答案:

答案 0 :(得分:0)

错误是您没有为ImageIcon设置图片。

ImageIcon img = new ImageIcon(test.class.getResource("image.png"));    

不要忘记将JPanel添加到JFrame中。

frame.add(panel);

完整代码应该是

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLocation(400, 100);
frame.setTitle("hello world");

ImageIcon img = new ImageIcon(test.class.getResource("image.png"));
JPanel panel = new JPanel();
JLabel label = new JLabel(img);
panel.add(label);
panel.setVisible(true);

frame.add(panel);
frame.pack();

enter image description here

答案 1 :(得分:0)

我认为问题是您打电话给

frame.setVisible(true);

在创建对象之后。尝试在之后致电

frame.pack();

除此之外,您需要使用来将面板添加到框架中

frame.add(panel);