Java 在JFrame中添加图像时获得错误输出

Java 在JFrame中添加图像时获得错误输出,java,swing,Java,Swing,我的问题是,当我在JFrame中使用 public void paint(Graphics g) {} 方法我得到的是一个黑屏,而不是问题代码片段所在的图像 ImageIcon i=new ImageIcon("logo.png); Image im=i.getImage(); public void paint(Graphics g) { g=getGraphics(); } 请为我的问题提出一个替代方法或解决方案 提前感谢 < P>你会考虑使用JPAND并覆盖PrimeTeCm方法吗?大

我的问题是,当我在JFrame中使用

public void paint(Graphics g)
{}

方法我得到的是一个黑屏,而不是问题代码片段所在的图像

ImageIcon i=new ImageIcon("logo.png);
Image im=i.getImage();
public void paint(Graphics g)
{
g=getGraphics();
}
请为我的问题提出一个替代方法或解决方案
提前感谢

< P>你会考虑使用JPAND并覆盖PrimeTeCm方法吗?大概是这样的:

BufferedImage image = ... //i'll leave this blank since there are several ways to get a bufferedimage. I'll leave an eg: ImageIO.read(new File("/path/to/image"));
        JPanel pane = new JPanel() {
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(image, 0, 0, null);
        }};

然后将面板添加到框架中。您可以对JFrame中的容器执行相同的操作。逻辑是相似的

您应该了解Java是如何将值传递给方法的……您还可以告诉我为什么setBackground()方法在JFrame中不起作用吗?它不起作用?你是怎么用的?在JFrame中,必须设置容器的背景,而不是框架本身。类似于:frame.getContentPane().setBackground(Color.BLACK);这就是你要问的吗?但是有一个问题
g.drawImage(image,0,0,null)
最好是
g.drawImage(image,0,0,this)
因为任何
JComponent
都是
ImageObserver
。“但是有一个问题…”有一个问题(每个问题线程)似乎已经得到了回答。如果你有一个基于这个新问题的进一步的问题,它应该在一个新的线程中。请