如何在Java中在面板上显示图像? [初学者]

时间:2016-06-09 23:01:12

标签: java image panel frame

我需要在游戏中放置菜单,因此我创建了一个名为menuFrame的框架和一个名为menuPanel的面板。我已经能够在此面板上显示一个按钮和带有文字的标签,但我无法显示图像。

以下是我的大部分代码:

try {
JPanel menuPanel = new JPanel();
BufferedImage img = ImageIO.read(this.getClass().getResource("background2.png"));
JLabel menuLabel = new JLabel(new ImageIcon(img));
    menuLabel.setSize(800, 540);
    menuLabel.setLocation(0, 0);
    menuLabel.setVisible(true);         
    menuPanel.add(menuLabel);
    this.add(menuPanel);
    menuPanel.grabFocus();
    menuPanel.requestFocusInWindow();

} catch (IOException e) {
    e.printStackTrace();
}

我已经搞了很长时间了,图像根本就不会出现。我尝试过使用ImageIcon而没有使用BufferedImage,但是没有用。我将图像放在与类相同的包中。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

ImageIcon imgIcon = new ImageIcon("background2.png");
JLabel menuLabel = new JLabel();
label.setBounds(0, 0, x, y);
label.setIcon(imgIcon);

答案 1 :(得分:0)

try {
JPanel menuPanel = new JPanel();
BufferedImage img = ImageIO.read(this.getClass().getResource("background2.png"));
JLabel menuLabel = new JLabel(new ImageIcon(img));
    menuLabel.setSize(800, 540);
    menuLabel.setLocation(0, 0);
    menuLabel.setVisible(true);         
    menuPanel.add(menuLabel);
    this.add(menuPanel); //This might not work, try the name of the JFrame instance
    menuPanel.grabFocus();
    menuPanel.requestFocusInWindow();
    this.revalidate() //Use the name of the JFrame if this is not a JFrame or if this.add(menuPanel); doesnt work
} catch (IOException e) {
    e.printStackTrace();
}