java gui映像问题:不';t在后台显示
我有一个问题,为什么我的图像没有显示在我的程序背景中。我的意思是,我做了所有必要的步骤,但还是不会显示出来。代码运行良好,但没有显示图像。目录被写入映像的正确位置。我正在使用java和gui。如果有人能帮我解决问题,我将不胜感激:)以下是代码: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(){
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图像文件在程序执行期间显示在程序的背景上,而这不会发生。