2015-05-10 53 views
-1

我只是Java编程的初学者,并且正在使用NetBeans。下面的代码运行并且没有错误显示,但没有看到图像!该图像位于这两个类旁边的“框架”包中。Java的drawImage方法不显示图像

package frame; 

import javax.swing.JPanel; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.io.IOException; 
import javax.imageio.ImageIO; 

public class Screen extends JPanel{ 

    private BufferedImage image; 

    public Screen(){ 
     try { 
      System.out.println("OK"); 
      image = ImageIO.read(getClass().getResourceAsStream("phantomPDF.png")); 
     } catch(IOException e) { 
      e.printStackTrace(); 
     } 

    repaint(); 
    } 

public void paint(Graphics g){ 
    g.drawImage(image, 100, 100, null); 
    System.out.println("Yes"); 
    } 

} 

,这是我的框架和主要方法:

package frame; 

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

public class Frame extends JFrame{ 

    Screen s; 

    public Frame() { 

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(400, 600); 
     setResizable(false); 
     setTitle("Graphics"); 
     setVisible(true); 

     init(); 

    } 


    public void init(){ 
     setLocationRelativeTo(null); 

     setLayout(new GridLayout(1, 1, 0, 0)); 

     s = new Screen(); 
     add(s); 


    } 

    public static void main(String[] args){ 
     new Frame(); 
    } 
} 
+0

System.out.println()是否向控制台输出“是”?在您加载图像之后,您可以检查它是否为空,这可能有助于确定导致问题的原因。你也可以尝试在添加Screen对象后将其设置为可见 – AlmasB

回答

0

我不得不把“尝试 - 抓”语句转换成“漆”类,因此现在工作得很好......但是我为什么要去做?