Java JFrame中未显示图像

Java JFrame中未显示图像,java,image,jframe,imageicon,Java,Image,Jframe,Imageicon,为什么不显示我的图像?按钮总是在那里,但图像不会出现。这可能不是一个编程问题。我应该把图像放在哪里 第一类文件: public class start { public static void main(String args[]){ menu m1 = new menu(); m1.setVisible(true); } } import java.awt.BorderLayout; import java.awt.GridBagConstra

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

第一类文件:

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);
    }
}
第二类文件:

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);
    }
}

您是否尝试将主内容添加到内容中? 类似这样的内容:
getcontent().add(main,BorderLayout.CENTER)
两件事:

首先,在使用布局之前,不要将其设置为borderlayout。做:

setLayout(new BorderLayout())
其次,要检查是否存在降落伞.jpg文件,可以这样检查:

 File f = new File("parachute.jpg");
 System.out.println(f.exists());
如果打印的是
false
,则表示找不到该文件。在这种情况下,您需要将映像文件放在正确的目录中

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


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

请使用大写字母调用构造函数。Menu()@asieranBarri他创建了class
Menu
而不是
Menu
,因此
Menu()
实际上会破坏他的代码。@Ankit一件事暗示另一件事。类也应该用大写字母命名。
getcontent
函数不存在。首先,它应该是
getContentPane()
,其次它与所请求的内容无关