2016-04-05 26 views
0

Ich versuche, einen Blackjack-Tisch als Hintergrund zu erstellen, wie ich ein Blackjack-Spiel erstellen. Ich kann nicht herausfinden, wie man den Code schreibt, das Bild blackjack3.gif ist in der SRC-Datei mit der .java-Datei.Blackjack-Hintergrundbild in Eclipse

Aktuelle Code:

`import java.awt.Graphics; 
import java.awt.Image; 

import javax.swing.ImageIcon; 
import javax.swing.JComponent; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.WindowConstants; 

class MyCanvas extends JComponent { 
    ImageIcon icon = new ImageIcon(this.getClass().getResource("blackjack3.gif").getImage()); 
    @Override 
    protected void paintComponent(Graphics g) { 
     // TODO Auto-generated method stub 
     super.paintComponent(g); 
     g.drawImage(icon.getImage(), 0, 0, getWidth(), getHeight(), null); 
    } 
} 



public class BlackJack { 

    public static void main(String args[]) { 

    JFrame myFrame = new JFrame("BlackJack"); 
    // JLabel label = new JLabel(); 
    // ImageIcon icon = new ImageIcon(blackjack3.gif); 

    MyCanvas canvas = new MyCanvas(); 
    myFrame.add(canvas); 

    myFrame.setSize(1200,604); 

    myFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

    myFrame.setVisible(true); 
    } 
}` 

braucht nur etwas Hilfe auf, was zu tun ist.

Antwort

1

Das Bild blackjack3.gif befindet sich in der SRC-Datei mit der .java-Datei.

Es muss auf dem Klassenpfad sein. Das wäre also der Ort Ihrer Klassendatei, nicht die Quelldatei.

Oder Sie können versuchen, ImageIO.read(...) verwenden, um das Bild zu laden. Sie erhalten einen Fehler, wenn die Datei nicht geladen werden kann.

g.drawImage(icon.getImage(), 0, 0, getWidth(), getHeight(), null); 

Es ist möglich, das Bild wurde nicht vollständig gelesen, wenn die Malmethode aufgerufen wird.

Sie sollten werden:

g.drawImage(icon.getImage(), 0, 0, getWidth(), getHeight(), this); // note the "this" 

Das Bild der Komponente benachrichtigt wird sich neu zu zeichnen, wenn es vollständig geladen ist.

Lesen Sie auch den Abschnitt aus dem Swing-Tutorial auf How to Use Icons für Arbeitsbeispiele und bessere Möglichkeiten, das Bild zu laden.

Der Democode zeigt Ihnen, wie Sie Ihren Code besser strukturieren können, damit die GUI im Event Dispatch Thread erstellt wird, was wichtig ist, da alle Swing-Komponenten auf dem EDT erstellt/geändert werden sollten.