将图片添加到JFrame

我要做的就是将图片添加到JFrame

我真的很困惑,并不是真的明白…我已经在这个网站上查找了所有可能的问题,看了其他java的东西,比如论坛。 我尽我所能,现在我必须请求帮助。 我希望代码清晰易读。 谢谢您的帮助。

 package zeus; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.ImageIcon; public class Main extends JFrame{ public static final int WIDTH = 800; public static final int HEIGHT = 600; public static final int SCALE = 1; public static void Launch(){ JFrame xF = new JFrame("xFrame"); xF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); xF.setResizable(false); xF.setVisible(true); xF.setSize(WIDTH*SCALE,HEIGHT*SCALE); xF.setLocationRelativeTo(null); xF.add(new JLabel(new ImageIcon("/Clicker/xS/cow.png"))); } public static void main(String[] args){ Launch(); } } 

非常抱歉混淆,eclipse显示没有错误,我也试图打开一个带有图像的JFrame,我最终可以创建一个按钮来更改int值的值。

我能看到的最大问题是……

  • JFrame扩展,但实际上没有使用它…
  • 真正需要时依赖static
  • 在实际开始添加之前调用setVisible 。 实际上,通常在添加任何内容之前以及在使其可见之后操纵框架属性…

    公共类Main {

      public static void main(String[] args){ EventQueue.invokeLater(new Runnable() { public void run() { JFrame xF = new JFrame("xFrame"); xF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); xF.add(new JLabel(new ImageIcon("/Clicker/xS/cow.png"))); xF.setResizable(false); xF.setSize(WIDTH*SCALE,HEIGHT*SCALE); xF.setLocationRelativeTo(null); xF.setVisible(true); } } } 

    }

但既然你从未真正描述过你遇到的问题,这些都是猜测……

我有几个提示:

  • 如果你知道你的帧大小,那么就没有必要使它过于复杂
  • 尝试使用frame作为JFrame的名称而不是xF,因此更容易查看。
  • 重新排列你的方法,使setVisible(true); 在最后。

现在,至于你的代码,我建议你使用两个类:一个用于框架,一个用于面板。

框架类

 import javax.swing.JFrame; public class Apollo { public static void main(String[] args) { Jframe frame = new JFrame("xFrame"); frame.setSize(800,600); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(new Poseidon()); frame.setVisible(true); } } 

小组课

 import javax.swing.*; import java.awt.*; public class Poseidon extends JPanel { public void paintComponent(Graphics g) { g.setColor(Color.WHITE); g.fillRect(0,0,800,600); ImageIcon clicker = new ImageIcon("/Clicker/xS/cow.png"); /*The following are two methods for image sizing, *Use the one that best fits your code: * *g.drawImage(clicker.getImage(), x, y, null); *Fill in the arguments for x and y to locate your upper left corner *The image will be in it's original size * *g.drawImage(clicker.getImage(), x, y, w, h, null); *Fill in the arguments for w and h to set the width and height of your image *The image will be in it's scaled size */ } } 

您可以使用xF.setContentPane(new JLabel(new ImageIcon(image_path)));