为什么我的图片没有显示?按钮始终存在,但图像不会出现。它可能不是一个编程问题。我应该在哪里放置图像?
头等档案:
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);
}
}
答案 0 :(得分: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 :由于您不熟悉编程,因此您应该尝试遵循所使用语言的惯例。它使其他人更容易理解您的代码。查看here以了解Java约定。
答案 1 :(得分:-1)
您是否尝试过将main添加到内容中?
这样的事情:getcontent().add(main, BorderLayout.CENTER)