Hallöchen liebe Programmier:
Ich programmiere derweil eine Anwendung und möchte ein Bild laden. Natürlich ist das so einfach, dass Onkel Google eine Lösung hat. Doch nicht für mein Problem. Meine Inkompetenz hat zugeschlagen:
Ich habe eine extra Klasse ( Window.java ) in der ich mein Window programmiere. Ich habe auch ein HintergrundBild mit einem JLabel hinzugefügt ( Hatte erstmals nichts anderes auf dem ersten Blick gefunden ). Jetzt wollte ich ein Bild in der Mitte haben, dieses soll aber einzeln gezeichnet werden. Natürlich mit paintComponent. Doch:
Doch mein paintComponent wird nicht aufgerufen. (Die Klasse Window.java ist nicht meine Main Klasse)
Ich bin zu inkompetent um den Fehler zu finden.
Mfg
-cool_brick24
Ich programmiere derweil eine Anwendung und möchte ein Bild laden. Natürlich ist das so einfach, dass Onkel Google eine Lösung hat. Doch nicht für mein Problem. Meine Inkompetenz hat zugeschlagen:
Ich habe eine extra Klasse ( Window.java ) in der ich mein Window programmiere. Ich habe auch ein HintergrundBild mit einem JLabel hinzugefügt ( Hatte erstmals nichts anderes auf dem ersten Blick gefunden ). Jetzt wollte ich ein Bild in der Mitte haben, dieses soll aber einzeln gezeichnet werden. Natürlich mit paintComponent. Doch:
Java:
package de.coolbrick.catan.gui;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Window extends Component{
private static final long serialVersionUID = 1L;
JLabel map;
Icon icon1;
public Window() {
JFrame jf = new JFrame();
jf.setSize(900, 700);
jf.setTitle("...");
jf.setResizable(false);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
jf.setBackground(new Color(0, 162, 232));
icon1 = new ImageIcon("img/Map/FirstTestMap.png");
map = new JLabel(icon1);
jf.add(map);
jf.setVisible(true);
}
public void paintComponent(Graphics g) {
AffineTransform at = AffineTransform.getTranslateInstance(100, 100);
BufferedImage area = LoadImage("img/Map/Area.png");
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(area, at, null);
}
BufferedImage LoadImage(String FilePath){
BufferedImage img = null;
try {
img = ImageIO.read(new File(FilePath));
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("" + FilePath + " konnte nicht geladen werden!!!");
}
return img;
}
}
Doch mein paintComponent wird nicht aufgerufen. (Die Klasse Window.java ist nicht meine Main Klasse)
Ich bin zu inkompetent um den Fehler zu finden.
Mfg
-cool_brick24