2015-04-06 36 views
0

我是一名嘗試使用Java eclipse創建Pacman遊戲的初學者程序員。我在這個過程的開始,我只是想在JFrame屏幕上獲得我的主"Princess Pacman"字符,但是,我有這個覆蓋錯誤彈出。我也嘗試過無需重寫,但它似乎並沒有爲我這樣工作。無法將圖像放在幀中

這裏是我的代碼:

import java.awt.*; 
import java.awt.image.*; 
import java.io.File; 
import java.io.IOException; 
import java.awt.event.KeyEvent; 
import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class Pacman extends JFrame { 
    public static final int WIDTH = 500; 
    public static final int HEIGHT = 500; 

    public static void main(String args[]){ 
     Pacman gui = new Pacman(); 
     gui.setVisible(true); 
    } 

    BufferedImage princess = null; 
    public Pacman(){ 
     super("Princess Pacman"); 
     //set size of playing space 
     setSize(WIDTH,HEIGHT); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     try{ 
      princess =ImageIO.read(new File("images/Elsa.jpeg")); 
     } 
     catch (IOException e){ 
      System.out.println("image not found"); 
     } 

    } 

    @Override 
    public void draw(Graphics2D g){ 
     g.drawImage(princess.getScaledInstance(100, 100, Image.SCALE_DEFAULT), 0, 0, this); 
    } 

} 

回答

1
  • draw是不是JFrame或其任何父類中定義的方法,所以它不能被重寫
  • draw是從來沒有被任何實際繪製
  • 你應該避免直接畫到上面叫只有很多東西被塗在它上面。
  • 您可以使用JLabel,但是這有問題。相反,創建從JPanel延伸的自定義類並覆蓋其paintComponent方法,確保您撥打super.paintComponent您呈現圖像

採取在Painting in AWT and SwingPerforming Custom Paintingthis for example

1

你試圖重寫不JFrame類存在的方法。刪除覆蓋註釋。

+0

哦,仔細一看,好知道了。謝謝。但是,這並沒有解決我的問題,即圖像沒有顯示在JFrame上。有什麼建議麼? – Aliya 2015-04-06 06:20:48