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()
,其次它与所请求的内容无关