Hey,
Ich habe die Klasse JComponent erweitert und würde gerne in dieser eigenen Komponente ein Bild zeichnen lassen. Ich habe mich an folgendem Beispiel aus der Insel orientiert:
Java ist auch eine Insel – 14.9 Bilder anzeigen und Grafiken verwalten
Die Komponente wird folgendermaßen einem ScrollPane hinzugefügt
Die Methode
wird von einem JComboBoxListener aufgerufen. Das scheint auch zu funktionieren, da bei Benachrichtigung des Listeners folgende System.outs ausgegeben werden (oben im Code ist zu sehen welche wo ausgegeben werden).
Allerdings wird aus einem Grund der repaint nicht ausgeführt. Ich hab keine Idee woran es liegt. Das Beispiel aus der Insel funktioniert.
Hat jemand eine Idee woran es liegt?
Vielen Dank schonmal.
Grüße,
sMau
Ich habe die Klasse JComponent erweitert und würde gerne in dieser eigenen Komponente ein Bild zeichnen lassen. Ich habe mich an folgendem Beispiel aus der Insel orientiert:
Java ist auch eine Insel – 14.9 Bilder anzeigen und Grafiken verwalten
Java:
public class PreviewThemeslideComponent extends JComponent {
private static final long serialVersionUID = -4411192008897145428L;
private Image image;
public void setThemeBackground(File file) {
System.out.println("setthembg reached: " + file.getAbsolutePath());
image = Toolkit.getDefaultToolkit().getImage(file.getAbsolutePath());
System.out.println(image);
if (image != null)
System.out.println("setthemebg if reached");
repaint();
}
@Override
protected void paintComponent(Graphics g) {
System.out.println("paintcomp reached.");
if (image != null)
g.drawImage(image, 0, 0, this);
}
}
Die Komponente wird folgendermaßen einem ScrollPane hinzugefügt
Java:
jScrollPane2 = new javax.swing.JScrollPane();
viewComponent = new PreviewThemeslideComponent();
viewComponent.setEnabled(true);
viewComponent.setVisible(true);
viewComponent.setIgnoreRepaint(false);
jScrollPane2.add(viewComponent);
Die Methode
Java:
setThemeBackground(File file)
Java:
combobox listener reached
setthembg reached: /home/samu/Pictures/neue bilder/P1809_15-05-11.JPG
sun.awt.image.ToolkitImage@2ffb8c83
setthemebg if reached
Allerdings wird aus einem Grund der repaint nicht ausgeführt. Ich hab keine Idee woran es liegt. Das Beispiel aus der Insel funktioniert.
Hat jemand eine Idee woran es liegt?
Vielen Dank schonmal.
Grüße,
sMau