Flackern trotz Double-Buffering

Knuddel

Mitglied
Hallo liebe Java Community,
ich wende mich an euch, da ich nach stundenlangem ausprobieren nicht mehr weiter komme :(
Ich hoffe ihr könnt mir weiterhelfen, ich bin daher für jede Hilfe dankbar.:toll:

Mein Problem liegt in der Animation von 3 Bildern die sich ineinader verschieben. Hierbei ist jedoch auffälig, dass 2 Bilder durch den Double-Buffer flüssig dargestellt werden, das dritte jedoch nicht :(

Zuerst werden 2 Bilder aus einer Datei geladen, dass dritte Bild wird später durch einen CropImageFilter erstellt.
Java:
public void init()
{
       bild1 = getImage(getCodeBase(), "bild1.jpg");
       bild2 = getImage(getCodeBase(), "bild2.jpg");
       prepareImage(bild1, this);
       prepareImage(bild2, this);
       prepareImage(bild3, this);
}

Mein Double-Buffer
Java:
    //Double-Buffer
    @Override
    public void update(Graphics g)
    {

      //Double-Buffer initialisieren
      if (dbImage == null) {
         dbImage = createImage(
            this.getSize().width,
            this.getSize().height
         );
         dbGraphics = dbImage.getGraphics();
      }
      //Hintergrund löschen
      dbGraphics.setColor(getBackground());
      dbGraphics.fillRect(
         0,
         0,
         this.getSize().width,
         this.getSize().height
       );
      //Vordergrund zeichnen
      dbGraphics.setColor(getForeground());
      paint(dbGraphics);
      //Offscreen anzeigen
      g.drawImage(dbImage,0,0,this);
    }

Hier werden die Bilder gezeichnet
Java:
    @Override
    public void paint(Graphics g)
    {
        // Background zeichen
        g.drawImage(bild1, 0, 0, this);
        g.drawImage(bild2, 1200-x, 0, this); // Bild verschiebt sich durch Änderung des x-Wertes
        g.drawImage(bild3, 0, 0, this);
    }

Und zum Schluss noch die Erstellung des 3 Bildes, das leider flackert :(
Java:
    public void picture3create()
    {
       ImageFilter cropFilter = new CropImageFilter(x, 0, 1200-x, 800);
       bild3 = createImage(
       new FilteredImageSource(bild1.getSource(),cropFilter));
    }

Vielleicht ist es noch wichtig zu sagen das ich die picture3create hinter der Prozedur hängen muss die den x-wert verändert, nämlich wenn man wasd drückt, sodass man durchs bild steuert wobei sich dieses verändert! Schonmal Danke für eure Hilfe ;)
 

Marco13

Top Contributor
Warum verwendest du AWT und nicht Swing? Bei Swing ist Double-Buffering schon eingebaut...
Und ... was genau versuchst du mit dem CroppedImageFilter zu erreichen? Ein neues Bild zu erstellen, das nur den gewünschten Ausschnitt anzeigt, dürfte einfacher sein...
 

KrokoDiehl

Top Contributor
Außerdem sollte man nicht
Code:
paint()
überschreiben sondern
Code:
paintComponent()
, oder hat das was mit AWT zutun? :)
Letztere jedenfalls sollte man in Swing überschreiben.
 

Knuddel

Mitglied
Und ... was genau versuchst du mit dem CroppedImageFilter zu erreichen? Ein neues Bild zu erstellen, das nur den gewünschten Ausschnitt anzeigt, dürfte einfacher sein...

Ich schneide aus dem Bild1 einen Auschnitt aus den ich dann an die Position (0/0) setze, das bild 1 an stelle (-x/0) zu setzen geht ja nicht oder? Dadurch ensteht dann eine Bewegung im Bild.

Wäre nett, wenn ihr mir anhand eines kurzen Beispiels zeigen könntet wie das mit dem swing geht, wie ich dann die Bilder einbinden muss etc.! Bin leider noch blutiger Anfänger mit Java :oops:
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Eigentlich geht FAST alles genauso wie bei AWT. Die ganzen Components (Frame, Applet, Panel, Button) werden einfach durch das entsprechende aus Swing ersetzt (JFrame, JApplet, JPanel, JButton).

Nur bei der paint-Methode muss man aufpassen: Wo steht die im Moment? In einem Applet? Poste mal mehr zusammenhängenden (am besten Compilierbaren!) Code.

Ansonten geht's auch bei Swing mit g.drawImage(...) und so...
 

Knuddel

Mitglied
Ja hier mein kompletter Quellcode, nicht wundern wenn da alles bissl umständlich gemacht ist, jedoch könntest du mir hier sagen, wie es mit den swing dann funktionieren würde ;) Danke schonmal
Java:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;




public class game
extends Applet
implements KeyListener
{
    int feld[][] = new int[1200][800];
    Image background[][] = new Image[10][10];
    Image overlay;
    byte goup, godown, sprungart;
    int x= 25, y =245, t;
    boolean jump, released, releasea;

    //Double-Buffering
    private Image dbImage;
    private Graphics dbGraphics;
    //Game-Ticker
    final Timer timer = new Timer();
    String input = "";


    @Override
    public void init()
    {
       //Tastatur-Eingabe
       addKeyListener(this);
       released = true;
       releasea = true;
       //Grafikvorbereitung
       background[1][1] = getImage(getCodeBase(), "level1_teil1.jpg");
       background[1][2] = getImage(getCodeBase(), "level1_teil2.jpg");
       prepareImage(background[1][1], this);
       prepareImage(background[1][2], this);
       prepareImage(overlay, this);
       //Game-Ticker
       timer.scheduleAtFixedRate(task, 0, 5);
       //Game-Blocking
       for(int i=20;i<=453;i++)
       {
           feld[i][240]=1;
       }

    }

    /*public void loadWorld()
    {
        try{
            BufferedReader load =
            new BufferedReader(new FileReader("WORLD.txt"));

            String zeile = load.readLine();
            while (zeile != null)
            {
                String[] value = zeile.split("\\_");
                int takex =  Integer.parseInt(value[1]);
                int takey =  Integer.parseInt(value[2]);
                int takefunction =  Integer.parseInt(value[3]);
                feld[takex][takey] = takefunction;
            }
        }catch(IOException ioe){
        ioe.printStackTrace();
        }
    }*/

    public void bildchange()
    {
       //Grafik-Overlay
       ImageFilter cropFilter = new CropImageFilter(x, 0, 1200-x, 800);
       overlay = createImage(
       new FilteredImageSource(background[1][1].getSource(),cropFilter));
    }
    //Game-Ticker
    TimerTask task = new TimerTask() {
    public void run()
    {
        if(jump == true)
        {
            if(released == false)
                sprungart = 1;            
            if(releasea == false)
                sprungart = 2;

            switch(sprungart)
            {
                case 0:         //Sprung nach oben
                    if(goup < 50)
                        y--;
                    else
                        y++;
                    break;
                case 1:         //Schub-Sprung nach rechts
                    if(goup < 50)
                    {
                        y--;
                        x++;
                    }
                    else
                    {
                        y++;
                        x++;
                    }
                    break;
                case 2:         //Schub-Sprung nach links
                    if(goup < 50)
                    {
                        y--;
                        x--;
                    }
                    else
                    {
                        y++;
                        x--;
                    }
                    break;
            }

            if(goup < 50)
                goup++;
            else
                godown++;

            if(goup == 50 && godown == 50) // RESET
            {
                goup = 0;
                godown = 0;
                jump = false;
                sprungart = 0;
            }
        }
        else
        {
            switch(feld[x][y-5])
            {
                case 0: // Schwerkraft
                    ++y;
                    break;
            }
        }
        repaint();
    } };


    //Double-Buffering
    @Override
    public void update(Graphics g)
    {

      //Double-Buffer initialisieren
      if (dbImage == null) {
         dbImage = createImage(
            this.getSize().width,
            this.getSize().height
         );
         dbGraphics = dbImage.getGraphics();
      }
      //Hintergrund löschen
      dbGraphics.setColor(getBackground());
      dbGraphics.fillRect(
         0,
         0,
         this.getSize().width,
         this.getSize().height
       );
      //Vordergrund zeichnen
      dbGraphics.setColor(getForeground());
      paint(dbGraphics);
      //Offscreen anzeigen
      g.drawImage(dbImage,0,0,this);
    }

    //Game-Grafik
    @Override
    public void paint(Graphics g)
    {
        // Background zeichen
        g.drawImage(background[1][1], 0, 0, this);
        g.drawImage(background[1][2], 1200-x, 0, this);
        
        // Need Buffering (keinFlackern)
        g.drawImage(overlay, 0, 0, this);

        // Person zeichnen
        g.setColor(Color.blue);
        g.fillOval (x,y,20,20);


    }


    public void keyPressed(KeyEvent event)
    {
        requestFocus();
        int key = event.getKeyChar();
        if (key == 'd')
        {
            released = false;   // Taste d wird gedrückt
            if(jump != true)
            {
                if(x < 1180)
                    x = x + 5;      // laufe nach rechts
            }
        }
        if (key == 'a')
        {
            releasea = false;   // Taste a wird gedrückt
            if(jump != true)
            {
                if(x > 3)
                    x = x - 5;      // laufe nach links
            }

        }
        if (jump == false && key == 'w')
        {
            jump = true;    // Springen
        }
        if (key == 's')
        {
            y= y +1;
        }
        bildchange();
        repaint();
    }


        public void keyReleased(KeyEvent e)
        {
            requestFocus();
            int key = e.getKeyChar();
            if (key == 'd')
                 released = true; //Taste d wird nicht gedrückt
            if (key == 'a')
                 releasea = true; //Taste a wird nicht gedrückt
        }

    public void keyTyped(KeyEvent e)
    {
        throw new UnsupportedOperationException("Not supported yet.");
    }

}
 

Marco13

Top Contributor
Grundsätzlich ist DAfür nicht viel zu ändern
Java:
// From [url]http://www.java-forum.org/awt-swing-swt/103239-flackern-trotz-double-buffering.html#post658032[/url]

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.JPanel;
import javax.swing.JApplet;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;




public class SomeGame
extends JApplet
implements KeyListener
{
    int feld[][] = new int[1200][800];
    Image background[][] = new Image[10][10];
    Image overlay;
    byte goup, godown, sprungart;
    int x= 25, y =245, t;
    boolean jump, released, releasea;

    //Game-Ticker
    final Timer timer = new Timer();
    String input = "";


    @Override
    public void init()
    {
       //Tastatur-Eingabe
       addKeyListener(this);
       released = true;
       releasea = true;
       //Grafikvorbereitung
       background[1][1] = getImage(getCodeBase(), "image01.png");
       background[1][2] = getImage(getCodeBase(), "image02.png");
       prepareImage(background[1][1], this);
       prepareImage(background[1][2], this);
       prepareImage(overlay, this);
       //Game-Ticker
       timer.scheduleAtFixedRate(task, 0, 5);
       //Game-Blocking
       for(int i=20;i<=453;i++)
       {
           feld[i][240]=1;
       }
       getContentPane().add(new GamePanel());
    }

    /*public void loadWorld()
    {
        try{
            BufferedReader load =
            new BufferedReader(new FileReader("WORLD.txt"));

            String zeile = load.readLine();
            while (zeile != null)
            {
                String[] value = zeile.split("\\_");
                int takex =  Integer.parseInt(value[1]);
                int takey =  Integer.parseInt(value[2]);
                int takefunction =  Integer.parseInt(value[3]);
                feld[takex][takey] = takefunction;
            }
        }catch(IOException ioe){
        ioe.printStackTrace();
        }
    }*/

    public void bildchange()
    {
       //Grafik-Overlay
       ImageFilter cropFilter = new CropImageFilter(x, 0, 1200-x, 800);
       overlay = createImage(
       new FilteredImageSource(background[1][1].getSource(),cropFilter));
    }
    //Game-Ticker
    TimerTask task = new TimerTask() {
    public void run()
    {
        if(jump == true)
        {
            if(released == false)
                sprungart = 1;
            if(releasea == false)
                sprungart = 2;

            switch(sprungart)
            {
                case 0:         //Sprung nach oben
                    if(goup < 50)
                        y--;
                    else
                        y++;
                    break;
                case 1:         //Schub-Sprung nach rechts
                    if(goup < 50)
                    {
                        y--;
                        x++;
                    }
                    else
                    {
                        y++;
                        x++;
                    }
                    break;
                case 2:         //Schub-Sprung nach links
                    if(goup < 50)
                    {
                        y--;
                        x--;
                    }
                    else
                    {
                        y++;
                        x--;
                    }
                    break;
            }

            if(goup < 50)
                goup++;
            else
                godown++;

            if(goup == 50 && godown == 50) // RESET
            {
                goup = 0;
                godown = 0;
                jump = false;
                sprungart = 0;
            }
        }
        else
        {
            switch(feld[x][y-5])
            {
                case 0: // Schwerkraft
                    ++y;
                    break;
            }
        }
        repaint();
    } };


    private class GamePanel extends JPanel
    {
        //Game-Grafik
        @Override
        public void paintComponent(Graphics g)
        {
            super.paintComponent(g);

            // Background zeichen
            g.drawImage(background[1][1], 0, 0, this);
            g.drawImage(background[1][2], 1200-x, 0, this);

            // Need Buffering (keinFlackern)
            g.drawImage(overlay, 0, 0, this);

            // Person zeichnen
            g.setColor(Color.blue);
            g.fillOval (x,y,20,20);
        }
    }


    public void keyPressed(KeyEvent event)
    {
        requestFocus();
        int key = event.getKeyChar();
        if (key == 'd')
        {
            released = false;   // Taste d wird gedrückt
            if(jump != true)
            {
                if(x < 1180)
                    x = x + 5;      // laufe nach rechts
            }
        }
        if (key == 'a')
        {
            releasea = false;   // Taste a wird gedrückt
            if(jump != true)
            {
                if(x > 3)
                    x = x - 5;      // laufe nach links
            }

        }
        if (jump == false && key == 'w')
        {
            jump = true;    // Springen
        }
        if (key == 's')
        {
            y= y +1;
        }
        bildchange();
        repaint();
    }


        public void keyReleased(KeyEvent e)
        {
            requestFocus();
            int key = e.getKeyChar();
            if (key == 'd')
                 released = true; //Taste d wird nicht gedrückt
            if (key == 'a')
                 releasea = true; //Taste a wird nicht gedrückt
        }

    public void keyTyped(KeyEvent e)
    {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

}

Aber das ist wohl wieder mal ein Fall, wo man sieht dass es Java einem zu leicht macht. Mit 15 Zeilen hat man ein JPG auf dem Bildschirm, da kann zu einem Jump'n'Run ja nicht mehr viel fehlen :reflect: :autsch:

Wie auch immer. Was das mit dem CropImage soll, ist mir noch nicht klar.
 

Knuddel

Mitglied
Das ist super Danke, behebt aber nicht das Problem, daher werde ich die vorgehensweise mit dem CropImageFilter mal genauer erläutern, weil das Flackern wohl genau dadurch entsteht.

Aber das ist wohl wieder mal ein Fall, wo man sieht dass es Java einem zu leicht macht. Mit 15 Zeilen hat man ein JPG auf dem Bildschirm, da kann zu einem Jump'n'Run ja nicht mehr viel fehlen
Tut mir leid, wenn das total dumme Fehler sind die ich mache. Ich habe bis vorgestern auschließlich mit C++ programmiert. Nun wollte ich aber mal Java lernen, da es da doch ein paar tolle Features gibt, die C++ so nicht aufweist. Ein kleines Jump&Run sollte es dann werden :) Es funktioniert ja auch alles wunderbar sieht nur halt bischen unbeholfen aus, wenn das Bild aus dem CropImageFilter flackert^^.

Wie auch immer. Was das mit dem CropImage soll, ist mir noch nicht klar.
Nun aber hier zu :). Du hast ja bereits erkannt, dass es sich um ein Jump&Run Spiel handelt. Hierbei ist es nötig, dass das Bild weiterläuft, sobald man sich mit seiner Figur weiterbewegt.
Bild1 ist unser Ausgangsbild, dass beim Start des SPiel geladen wird. Wenn sich jetzt die Figur nach rechts bewegt(auf der x Achse), dann verschiebt sich das Bild. Auf der rechten Seite werden neue Spielinhalte sichtbar, dies ist Bild2. Daher auch
Java:
g.drawImage(background[1][2], 1200-x, 0, this);
Soweit so gut mit diesen beiden Elementen(Bild1 und Bild2) entshet bereits eine Anmation(ohne Flackern:)). Diese reicht aber nicht aus, da sich das Bild auch auf der linken Seite bewegen muss, sodass der Eindruck entsteht, dass man weiter läuft. Und genau an dieser Stelle verwende ich den CropImageFilter. Erschneidet vom Bild1 ein weiter vorne liegendes Element aus und setzt es an die Position (0/0). Somit verschwinden bei der Fortbewegung nach rechts im linken Bildschirmrand die alten Bildelemente und im rechten werden die neuen sichtbar.
Nur wieso flackert es links aber rechts nicht. Liegt es dadran das Bild3 bei jeder Bewegung ein neues Bild erzeugt, welches dann nicht im DoubleBuffer bearbeitet werden kann, die anderen Bilder sind ja quasi konstanten, es sind immer dieselben Bilder nur an einer anderen Position im Bild.
So genug erzählt, vielleicht ist es auch völliger Schrott, umgekehrt weißt du jetzt wodrauf ich hinaus möchte??????;(
 

Marco13

Top Contributor
Tut mir leid, wenn das total dumme Fehler sind die ich mache.
Nein, das meinte ich nicht - es kommt nur oft vor, dass jemand besagten Stand (ein Bild in einem JFrame oder so) erreicht hat, und dann meint, als nächstes Doom IIX programmieren zu können. War kein persönlicher Angriff.

Hierbei ist es nötig, dass das Bild weiterläuft, sobald man sich mit seiner Figur weiterbewegt.
Bild1 ist unser Ausgangsbild, dass beim Start des SPiel geladen wird. Wenn sich jetzt die Figur nach rechts bewegt(auf der x Achse), dann verschiebt sich das Bild. Auf der rechten Seite werden neue Spielinhalte sichtbar, dies ist Bild2.
...

OK, der Grobgranulare Ablauf sollte dann wohl sowas sein, dass immer ein Bild (das etwa Bildschirmbreite hat) von Rechts nach Links wandert, und dahinter ein neues Bild nachgeschoben, also sowas wie
Code:
verschiebeNachLinks(images[0]);
verschiebeNachLinks(images[1]);
male(images[0]);
male(images[1]);
if (images[0].istAußerhalbDesBildschirms())
{
    images[0] = images[1];
    images[1] = ladeNächstesBildDasJetztVonRechtsReinKommt();
}

Klingt... legitim und interessant, allerdings solltest du diesen Ablauf (falls er so gewünscht ist) etwas klarer beschreiben ... also, das ganze wirkt recht unbedarft - und was "feld" und Background (der Größe 10x10!?) sein soll, warum nur Background[1] verwendet wird und so... das erschließt sich alles nicht so.

In jedem Fall sollte es nicht nötig sein, dort während des Spiels noch an Bildern rumzuschnippeln und neue CroppedImages erstellen. Es sollte reichen, wenn man die Bilder passend malt. In einfachsten Fall sowas wie
Code:
graphics.drawImage(image, -100, 0, this);
dann sieht man eben die 100 linken Pixel nicht. Im Zweifelsfall kann man, statt ein neues Cropped Image zu erstellen, aber mit dieser Methode jeden beliebigen Ausschnitt eines Bildes an jede beliebige Stelle malen...
 

Knuddel

Mitglied
und dann meint, als nächstes Doom IIX programmieren zu können
:D Ne keine Angst

Wenn das geht,
Java:
graphics.drawImage(image, -100, 0, this);
also negativen x-Werte angeben zu können, dann wäre Bild 3 überflüssig, dann müsste ich nur bild 1 immer weiter negativ setzen und es würde nach links verschwinden und gleichzeit würde bild2 rechts neu einlaufen :)

Was meine Image-Array angeht, siehtn bischen scheiße aus ich weiß, das hab ich schonmal vordefiniert, werde ich noch später brauchen, da mein Jump&Run schon bischen größer als 2 Bilder sein wird. Die Definition ist: background[level][levelteil] :D;)

Ich schau mal, ob dein Vorschlag funktioniert mit den negativen x-Werten, melde mich dann wieder ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Flackern trotz DoubleBuffering AWT, Swing, JavaFX & SWT 8
K AWT flackern trotz buffering AWT, Swing, JavaFX & SWT 4
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
S animation Flackern trotz doppelpufferung wieso? AWT, Swing, JavaFX & SWT 2
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
G Swing Flackern nach Override von paintComponent() AWT, Swing, JavaFX & SWT 3
S Swing Flackern und ausbrechen bei neuzeichnung AWT, Swing, JavaFX & SWT 7
J Flackern wie mit BufferedImage beheben AWT, Swing, JavaFX & SWT 4
V Applet JApplet Flackern durch Repaint AWT, Swing, JavaFX & SWT 11
L Swing Flackern in Frame bei erstem Klick AWT, Swing, JavaFX & SWT 19
R Flackern beim JPanel-Übermalen AWT, Swing, JavaFX & SWT 9
P SWT SWT flackern beheben AWT, Swing, JavaFX & SWT 9
D Undecorated JFrame ohne Flackern resizen AWT, Swing, JavaFX & SWT 21
sylo Flackern des Mauszeigers bei DND AWT, Swing, JavaFX & SWT 4
G ColorReader, bei Fadenkreuz zeichnen mit repaint() flackern AWT, Swing, JavaFX & SWT 19
eQuest Swing Snake repaint() "flackern" AWT, Swing, JavaFX & SWT 13
J Flackern in JEditorPane() AWT, Swing, JavaFX & SWT 14
JRTHEFROG Auflösungsabhängiges Flackern von Bildschirmmasken AWT, Swing, JavaFX & SWT 3
B JFrame flackern durch setSize() AWT, Swing, JavaFX & SWT 8
N Flackern beim neuzeichnen von JPanel AWT, Swing, JavaFX & SWT 19
S Falsche Position, Elemente erscheinen nicht, Flackern AWT, Swing, JavaFX & SWT 6
U Flackern verhindern AWT, Swing, JavaFX & SWT 5
J Flackern beim ersten laden von JPanel AWT, Swing, JavaFX & SWT 4
T Labels verschieben / Flackern AWT, Swing, JavaFX & SWT 2
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
M editorPane bleibt zu klein trotz setPage AWT, Swing, JavaFX & SWT 6
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
U Swing NullPointerException trotz Referenz auf Textfield & Button AWT, Swing, JavaFX & SWT 6
K JavaFX Tableview mit fxml ohne Aktualiserung trotz Thread AWT, Swing, JavaFX & SWT 13
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
M Trotz richtiger Daten, falsches Bild wird gezeichnet?! AWT, Swing, JavaFX & SWT 4
0 JTextPane copy/paste trotz editable(false) ? AWT, Swing, JavaFX & SWT 10
C Applet java.security.AccessControlException trotz signierten Jar AWT, Swing, JavaFX & SWT 7
J Swing JWindow flackert trotz Doppelpufferung AWT, Swing, JavaFX & SWT 2
B Swing JButton flackert trotz DoubleBufferings AWT, Swing, JavaFX & SWT 11
S Swing JTable RowSorter trotz RowFilter abschalten? AWT, Swing, JavaFX & SWT 2
T Fenster wird trotz repaint() und revalidate() nicht sofort neu gezeichnet AWT, Swing, JavaFX & SWT 6
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
B JProgressbar wird nicht aktualisert, trotz Threads AWT, Swing, JavaFX & SWT 6
F Java heap space error trotz -Xmx512m AWT, Swing, JavaFX & SWT 9
O JFrame permanet im Vordergrund trotz Alt+Tab AWT, Swing, JavaFX & SWT 2
@ JPanel: kein paintComponent() trotz repaint() AWT, Swing, JavaFX & SWT 4
G Tabellenköpfe trotz Scrollpane ausschalten AWT, Swing, JavaFX & SWT 5
T JFrame#setSize trotz maximiert AWT, Swing, JavaFX & SWT 4
T Animation will nicht trotz Thread. AWT, Swing, JavaFX & SWT 14
S JFrame trotz undecorated vergroessern AWT, Swing, JavaFX & SWT 3
N Trotz richtiger ListSelectionMode kann ich keine Zeile sel? AWT, Swing, JavaFX & SWT 4
S Unterschiedliche Optik trotz gleicher Look and Feel Code? AWT, Swing, JavaFX & SWT 11
T repaint wird trotz Thread nicht ausgeführt AWT, Swing, JavaFX & SWT 5
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
S Polygon mit double-Koordinaten AWT, Swing, JavaFX & SWT 2
N Double Buffern von BILDERN AWT, Swing, JavaFX & SWT 6
V Applet Double Buffering AWT, Swing, JavaFX & SWT 2
B Graphics2d drawString mit double Werten? AWT, Swing, JavaFX & SWT 5
O 2D-Grafik Rectangle mit double Werten zeichnen AWT, Swing, JavaFX & SWT 3
T 2D-Grafik Double Buffering AWT, Swing, JavaFX & SWT 7
lumo SWT Double Buffering AWT, Swing, JavaFX & SWT 5
M Object[][] in double[][] casten AWT, Swing, JavaFX & SWT 6
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
J JSlider mit Double Werten AWT, Swing, JavaFX & SWT 5
T JTextField nur Double werte eingeben AWT, Swing, JavaFX & SWT 2
A Explicit casting Point2D.Double AWT, Swing, JavaFX & SWT 3
A TableRowSorter für double Werte mit Formatierung AWT, Swing, JavaFX & SWT 3
iLoveTheInternet AWT Rectangle2D.Double intersecs AWT, Swing, JavaFX & SWT 6
hdi Wie implementiere ich Double Buffering AWT, Swing, JavaFX & SWT 12
R drawString mit double Koordinaten AWT, Swing, JavaFX & SWT 5
L JTextField Umwandeln in double-Werte AWT, Swing, JavaFX & SWT 5
K double / int einlesen? AWT, Swing, JavaFX & SWT 12
G Frage zu Double Buffering AWT, Swing, JavaFX & SWT 4
L double in JTable formatieren AWT, Swing, JavaFX & SWT 7
P Integer, Double, etc mit getTableCellRendererComponent AWT, Swing, JavaFX & SWT 6
P Double-Werte sortieren mit TableRowSorter AWT, Swing, JavaFX & SWT 2
U Double Buffering AWT, Swing, JavaFX & SWT 6
B JFormattedTextField mit DecimalFormat in ein Double AWT, Swing, JavaFX & SWT 11
J Double-Buffering zu langsam AWT, Swing, JavaFX & SWT 4
S double in String umwandeln AWT, Swing, JavaFX & SWT 6
L Double-Buffering AWT, Swing, JavaFX & SWT 2
R Double in der Tabelle statt String und Integer AWT, Swing, JavaFX & SWT 3
Student "Dicke" einer Linie - Line2D.Double AWT, Swing, JavaFX & SWT 12
G Double-Click f. alle Komps UNIX u. WIN verschieden ? AWT, Swing, JavaFX & SWT 5
D double Buffering abschalten? AWT, Swing, JavaFX & SWT 4
G Ellipse2D.Double funktioniert nicht AWT, Swing, JavaFX & SWT 3
W SWT - Tree: Problem mit Double-Click expand AWT, Swing, JavaFX & SWT 5
L Double Buffering bei JTable AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben