java gui映像问题:不';t在后台显示

java gui映像问题:不';t在后台显示,java,image,user-interface,swing,Java,Image,User Interface,Swing,我有一个问题,为什么我的图像没有显示在我的程序背景中。我的意思是,我做了所有必要的步骤,但还是不会显示出来。代码运行良好,但没有显示图像。目录被写入映像的正确位置。我正在使用java和gui。如果有人能帮我解决问题,我将不胜感激:)以下是代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class hehe extends JPanel{ public hehe(){

我有一个问题,为什么我的图像没有显示在我的程序背景中。我的意思是,我做了所有必要的步骤,但还是不会显示出来。代码运行良好,但没有显示图像。目录被写入映像的正确位置。我正在使用java和gui。如果有人能帮我解决问题,我将不胜感激:)以下是代码:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*;

public class hehe extends JPanel{

    public hehe(){

            setOpaque(false);
            setLayout(new FlowLayout()); 
          }

    public static void main (String args[]){
           JFrame win = new JFrame("yooooo"); // it is automaticcally hidden

           JPanel mainPanel = new JPanel(new BorderLayout()); 
                win.add(mainPanel);

     JLabel titleLabel = new JLabel("title boss"); 
           titleLabel.setFont(new Font("Arial",Font.BOLD,18)); 
           titleLabel.setForeground(Color.blue);
           mainPanel.add(titleLabel,BorderLayout.NORTH);

           win.setSize(382,269); // the dimensions of the image
           win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           win.setVisible(true);
        }


            public void paint(Graphics g) {

                      Image a = Toolkit.getDefaultToolkit().getImage("C:\\Users\\andrea\\Desktop\\Gui\\car"); // car is the name of the image file and is in JPEG
                g.drawImage(a,0,0,getSize().width,getSize().height,this);
                super.paint(g);
            }
            }
super.paint()在绘制图像后绘制背景,并且图像被隐藏。 在绘制图像之前,请尝试设置不透明(false)或更改调用super.paint()的顺序


还应避免在paint()方法中获取图像。经常调用Paint,因此每次在Paint()上都会读取图像。为图像创建一个字段,并在创建时读取一次。

在您提供的代码中,main()方法中没有对hehe类的引用。我猜您可能想创建该对象并将其添加到窗口中


您还需要在文件名中包含.jpg扩展名

setOpaque(false)已经为false,您的意思是将其设置为true?它仍然没有桌面背景。我正在尝试将super.paint()放在行开始之前-图像a…-而线条的起点是g.drawImage但仍然没有效果。我真的很困惑。扩展完成后,我将尝试创建对象,您的意思是:hehe c=new hehe();//跳过一行。添加(c);这就是你的意思吗?是的,这就是你创建呵呵对象的方式。我的意思是更改代码,然后编辑问题以显示新代码。我还不太清楚你想做什么。我猜你会想让主面板不透明,让它显示下面的hehe面板。我想做的就是让我的JPEG图像文件在程序执行期间显示在程序的背景上,而这不会发生。