0

为什么我的图像不显示?按钮总是在那里,但图像只是没有出现。这可能不是编程问题。我应该把图像放在哪里?

一级档案:

public class start {
    public static void main(String args[]){
        menu m1 = new menu();
        m1.setVisible(true);
    }
}

第二类文件:

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.*;

public class menu extends JFrame{

    private static final long serialVersionUID = 1L;

    public menu(){
        super("Parachute!");
        setSize(1000, 800);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel main = new JPanel(new GridBagLayout());
        JPanel title = new JPanel(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.insets = new Insets(15, 15, 15, 15);
        JButton play = new JButton("Play!");
        JButton help = new JButton("Help");
        JButton options = new JButton("Options");
        ImageIcon logo = new ImageIcon("parachute.jpg");
        JLabel imageLogo = new JLabel(logo);
        gbc.gridx = 0;
        gbc.gridy = 0;          

        main.add(play, gbc);

        gbc.gridx = 0;
        gbc.gridy = 1;

        main.add(help, gbc);

        gbc.gridx = 0;
        gbc.gridy = 2;

        main.add(options, gbc);
        title.add(imageLogo);
        add(title, BorderLayout.NORTH);
        add(main, BorderLayout.CENTER);
    }
}
4

2 回答 2

1

两件事情:

首先,您没有在使用之前将布局设置为borderlayout。做:

setLayout(new BorderLayout())

其次,要检查 parachute.jpg 文件是否存在,您可以像这样检查:

 File f = new File("parachute.jpg");
 System.out.println(f.exists());

如果打印出来false,则表示找不到文件。在这种情况下,您需要将图像文件放在正确的目录中。

我相信您正在使用像 Netbeans 或 Eclipse 这样的 IDE。在这种情况下,将图像放在项目的根目录中。例如,您有一个项目Test。然后图像文件应该在 Test 文件夹中。IDE 通常从项目的根目录中查找文件。

PS:由于您是编程新手,因此您应该尝试遵循所使用语言的约定。它使其他人更容易理解您的代码。在此处查找Java 约定。

于 2013-05-22T21:11:44.797 回答
-1

您是否尝试将主要内容添加到内容中?像这样的东西:getcontent().add(main, BorderLayout.CENTER)

于 2013-05-22T20:59:58.647 回答