Hallo Java-Freunde,
ich bin gerade dabei mir eine Art Schiebepuzzle (3x3) zu programmieren und will zum ersten Mal mit Swing arbeiten. Ich bin nun schon soweit, dass mein Logikteil läuft, aber die grafische Umsetzung noch nicht lauffähig ist. Folgendes Problem. Derzeit habe ich es so umgesetzt, dass ich jedes einzelne Feld durch eine Nummer (getID()) per Schriftart darstellen lassen. Ich würde das ganze gerne einfach mit einem Bild realisieren, komme hier aber ums verrecken nicht weiter.
Ich hoffe ihr könnt mir weiterhelfen!
ich bin gerade dabei mir eine Art Schiebepuzzle (3x3) zu programmieren und will zum ersten Mal mit Swing arbeiten. Ich bin nun schon soweit, dass mein Logikteil läuft, aber die grafische Umsetzung noch nicht lauffähig ist. Folgendes Problem. Derzeit habe ich es so umgesetzt, dass ich jedes einzelne Feld durch eine Nummer (getID()) per Schriftart darstellen lassen. Ich würde das ganze gerne einfach mit einem Bild realisieren, komme hier aber ums verrecken nicht weiter.
Code:
...
private static final int ROWS = 3;
private static final int COLS = 3;
private static final int CELL_SIZE = 50;
private Font font;
public GraphicsPanel() {
font = new Font("Verdana", Font.BOLD, 20);
this.setPreferredSize(new Dimension(CELL_SIZE * COLS, CELL_SIZE*ROWS));
this.addMouseListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Ab hier will ich praktisch nicht mehr über Schrift arbeiten, sondern z.B ein festes Bild
// der Größe 32x32 verwenden. Den Namen meines Feldes bekomm ich über getID(),
// z.B. für den Wert 1, soll er das Bild "1.jpg" nehmen. Für den Wert 2, soll der Bild "2.jpg" nehmen,
// usw.
for (int r=0; r<ROWS; r++) {
for (int c=0; c<COLS; c++) {
int x = c * CELL_SIZE;
int y = r * CELL_SIZE;
String text = puzzle.getID(r, c);
if (text != null) {
g.setColor(Color.gray);
g.fillRect(x+2, y+2, CELL_SIZE-4, CELL_SIZE-4);
g.setColor(Color.black);
g.setFont(font);
g.drawString(text, x+20, y+(3*CELL_SIZE)/4);
...
Ich hoffe ihr könnt mir weiterhelfen!