Endlosschleife bei drawImage()

Status
Nicht offen für weitere Antworten.
F

FMeise

Gast
Hallo,

ich habe folgendes Problem in dieser Klasse:

Code:
import java.awt.*;
import javax.swing.JPanel;

public class DrawArea extends JPanel
{
    private Image pic;
    
    public DrawArea()
    {
        try
        {
            pic = Toolkit.getDefaultToolkit().getImage("pic.gif");
        }
        catch (Exception e)
        {
            System.exit(0);
        }
    }
    
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);

        g.drawImage(pic.getScaledInstance(getWidth(), getHeight(), 0), 0, 0, this);
    }
}

Wenn ich die Klass in einem JFrame benuzte, wird paintComponent() in einer Endlosschleife aufgerufen. Wenn ich das Bild (
Code:
g.drawImage(pic, 0, 0, this);
) nicht skaliere, wird das Bild normal geladen und auch angezeigt. Wo liegt der Fehler? Danke schon mal im Voraus.

Gruß FMeise[/code]
 

Soulfly

Bekanntes Mitglied
Versuch mal das Image gleich zu Anfang zu skalieren.
Das Skalieren ist ziemlich aufwendig und sollte nur wenig benutzt werden.

Code:
public DrawArea()
    {
        try
        {
            pic = Toolkit.getDefaultToolkit().getImage("pic.gif");
            //getrennt für die Übersicht
            pic = pic.getScaledInstance(getWidth(), getHeight(), 0);
        }
        catch (Exception e)
        {
            System.exit(0);
        }
    }
 
G

Guest

Gast
So läuft das ganze nicht in einen Endlosschleife, löst aber leider auch nicht mein Problem, da getHeight() und getWidth() im Konstruktor noch 0 zurückliefern. Auserdem soll sich mein Bild ja auch verändern, wenn der User die Fenstergröße ändert.
 

Sky

Top Contributor
füge einen ComponentListener hinzu, der auf Größenänderungen derart reagiert, dass die Skalierung erneut durchgeführt wird.
 
G

Guest

Gast
Mit dem Listener gehts. Aber kann mir einer erklären, warum es bei meinem Beispiel zur OutOfMemory Exception kommt. Eigentlich passiert doch mit dem Listener das selbe in grün, nur dass der Listener nicht ganz so oft gerufen wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JavaFX TreeView aufstellen läuft irgendwie auf Endlosschleife AWT, Swing, JavaFX & SWT 3
N Swing Endlosschleife blockt Frame AWT, Swing, JavaFX & SWT 11
C Endlosschleife AWT, Swing, JavaFX & SWT 4
S Live Ticker "Endlosschleife" AWT, Swing, JavaFX & SWT 10
R Endlosschleife auf JButton druck beenden AWT, Swing, JavaFX & SWT 9
E Endlosschleife bei anklickbarer Fläche AWT, Swing, JavaFX & SWT 2
S Objekt wird während Endlosschleife nur einmal bewegt AWT, Swing, JavaFX & SWT 2
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
G Checkbox, die eine Endlosschleife ausführt AWT, Swing, JavaFX & SWT 3
G Endlosschleife bei paint() + setBackground() AWT, Swing, JavaFX & SWT 2
K JComboBox: Endlosschleife durch Events AWT, Swing, JavaFX & SWT 4
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
J drawImage Fehlersuche AWT, Swing, JavaFX & SWT 5
U drawImage mit EPS AWT, Swing, JavaFX & SWT 0
A Problem mit drawImage AWT, Swing, JavaFX & SWT 1
M Graphics.drawImage von unten nach oben abbilden lassen AWT, Swing, JavaFX & SWT 6
P 2D-Grafik g2.drawImage() langsam AWT, Swing, JavaFX & SWT 110
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
P Swing Skalieren mit DrawImage macht Linien kaputt AWT, Swing, JavaFX & SWT 6
G .ico drawImage AWT, Swing, JavaFX & SWT 5
B drawImage funktioniert nicht AWT, Swing, JavaFX & SWT 4
B drawImage auf JPanel bleibt ohne Auswirkungen AWT, Swing, JavaFX & SWT 9
K Graphics.drawImage() sehr schnell AWT, Swing, JavaFX & SWT 5
M Graphics.drawImage verlangsamt sich plötzlich AWT, Swing, JavaFX & SWT 15
0 AWT Graphics2D.drawImage() funktioniert nicht mehr korrekt mit Core i7 AWT, Swing, JavaFX & SWT 4
G Graphics.drawImage() AWT, Swing, JavaFX & SWT 6
? Problem mit drawImage: bei Frame ok, bei JPanel nicht AWT, Swing, JavaFX & SWT 4
F Problem mit drawImage() AWT, Swing, JavaFX & SWT 6
M drawImage bremst GUI AWT, Swing, JavaFX & SWT 2
I drawImage AWT, Swing, JavaFX & SWT 4
B drawImage() hängt! AWT, Swing, JavaFX & SWT 18
O performance g2d.drawImage() AWT, Swing, JavaFX & SWT 17
L Bildbewegung mit g.drawImage AWT, Swing, JavaFX & SWT 3
K g.DrawImage unter paintComponent klappt nur beim 1. Aufruf AWT, Swing, JavaFX & SWT 3
S kurze Frage zu drawImage AWT, Swing, JavaFX & SWT 12
L Gezeichnetes Image mit DrawImage überzeichnen AWT, Swing, JavaFX & SWT 3
M drawImage mit seltsamen verhalten AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben