ImageIO.write-Probleme, Speicherüberlauf und Absturz

Status
Nicht offen für weitere Antworten.

-Hades-

Mitglied
Hi Leute,

ich brauche dringend Hilfe von ein paar Experten die mir mit meinem Halbwissen unter die Arme greifen.

Ich möchte eine Methode schreiben die permanent Screenshots macht (Sie soll ca. 4 Screenshots (45x45 pixel) parallel machen) und die Screenshots dann in Dateien schreibt und diese Dateien dann mit anderen Dateien (die schon vorliegen auf Gleichheit vergleicht. Ich benutze dazu die Robot Klasse und nutze robot.screencapture und ImageIO.write/read um den screenshot zu machen und in eine Datei zu schreiben und dann die Pixel auslesen.

Soweit so gut, das ganze klappt auch wunderbar solange ich die Methode einmal durchlaufen lasse. Nur wenn ich das jetzt permanent machen lassen möchte gibts Probleme, erst ist das Programm so nach ca. 1 Minute abgestürzt mit der Meldung FileNotFound exception (Zugriff verweigert). der Screenshot wurde plötzlich nicht mehr gemacht oder screateScreencapture ist nicht mehr mitgekommen oder irgendwelche Buffer waren voll, ich weiß es nicht. Mittlerweile läuft es nach einigen Modifikationen ohne diesen Fehler, dafür frisst sich das Programm mit Speicher voll und so nach 15 Minuten bekomme ich die Meldung das der Java Heap Space voll ist, ich habe keine Ahnung wie ich das löse. Ich weiß z.B. nicht ob da immer zusätzlich Speicher verbraucht wird wenn ich File x = new File oder so mache, ich hab versucht so viel wie möglich auszulagern aber klappt alles nicht. Also wenn jemand weiß wie ich das ganze stabil hinbekomme und mir erklärt wie ImageIO usw. genau arbeitet wäre cool.
Hier bekommt ihr jetzt noch den Code, das ganze überprüft jetzt ob ein Screenshot mit einer aus 6 vorgegebenen Dateien übereinstimmt, und das ganze muss ich ja mindestens 4 mal haben. Es darf also nicht abstürzen, muss dennoch recht zügig arbeiten und der Speicher sollte sich nicht so zufressen.

Ihr seht im Code sowas wie xx.flush(); und sowas, ich weiß allerdings nicht ob das überhaupt irgendwas bringt, habs irgendwo aufgeschnappt, also bitte ich um Experten die mich aufklären können.

Auch Sachen wie while (!tempshot.canread()) {this.sleep (10);} da weiß ich nicht obs irgendeinen sinn hat...

Danke im voraus, Gruß Dominik



Code:
public class Scanne extends Thread{
    public static int Zaehler = 1;
    public String[] FileNamesL1 = {"w1_1","w1_2","w1_3","w1_4","w1_5","w1_6"};
    public static int Welcher = 0;
    public boolean musswarten = false;
                Robot superhirn = new Robot();
                File tempshot = new File("tempshot.gif");
             Rectangle maßeL1 = new Rectangle(465,416,43,46);
     /** Creates a new instance of Scanne*/
    public Scanne() throws IOException, AWTException {
            ImageIO.write(superhirn.createScreenCapture(maßeL1), "gif", tempshot);
    }

    public void ScanningL1() throws IOException, InterruptedException {
                     ImageIO.setUseCache(false);
                     File extern = new File ("extern.gif");
            File datei = new File( FileNamesL1[Welcher] );
            while (!datei.canRead()) {this.sleep(5);}
            Image image2 = ImageIO.read(datei);
            
            BufferedImage imagex = (BufferedImage) image2;
            if (tempshot.canWrite() && tempshot.canExecute()) {if (Welcher == 0) {ImageIO.write(superhirn.createScreenCapture(maßeL1), "gif", tempshot);}}
            if (!tempshot.canWrite() || !tempshot.canExecute()) {
                tempshot.delete();
                this.sleep(10);
                tempshot.renameTo(extern);
                File tempshot = new File("tempshot.gif");
                ImageIO.write(superhirn.createScreenCapture(maßeL1), "gif", tempshot);
            }
            
            
            while (!tempshot.canRead()) {this.sleep(10);}
            Image tempimage = ImageIO.read(tempshot);
            BufferedImage tempimagex = (BufferedImage) tempimage;
          tempimage.flush();
          tempimagex.flush();

            int pixelarray[][] = new int[tempimagex.getWidth()][tempimagex.getHeight()];
            int pixelarray2[][] = new int[imagex.getWidth()][imagex.getHeight()];            
            boolean gleich = true;
           // if (imagex.hashCode() != tempimagex.hashCode()) {gleich = false;}
            for (int i =0;i < tempimagex.getWidth();i++) {
                for (int j = 0;j < tempimagex.getHeight();j++) {
                    pixelarray[i][j] = tempimagex.getRGB(i,j);
                    pixelarray2[i][j] = imagex.getRGB(i,j);
                    System.out.println("Farbwert an Position "+i+", "+j+" = "+pixelarray[i][j]);
                    if (pixelarray[i][j] != pixelarray2[i][j]) {gleich = false;break;}
                 }if (!gleich) {break;}
            }
             
             if (gleich && (musswarten==false)) {
                System.out.println("Erkannt");WriteTXTL1(Welcher);musswarten = true;}
             if (!gleich) {Welcher = (WelcherWuerfel + 1) %6;}
             if (!gleich && (Welcher == 5)) {musswarten = false;}
          tempimage.flush();
          tempimagex.flush();
          tempshot.delete();
          this.sleep(100);
          this.ScanningL1();
        
       
  }
 

HaBaLeS

Aktives Mitglied
Erstmal solltest du deinen Code sauber formatieren, das hilfr ungemein bei der Fehlersuche :wink:

ganz untern rufst du "this.ScanningL1(); " auf. Ich habe jedoch kein Abbruchkriterium gefunden. Kann es sein, das du dich in einer Endlosrekursion befindest, die dir den Speicher wegfrisst?

Generell solltest du beachten:

alle Onjekte die du nicht mehr brauchst null setzen, damit sie aufgeräumt werden können.
rekursionen ohne abbruchkriterium führen garantiert irgendwan zu Out Of Memory
wenn du die funktion endlos laufen lassen willst, trigger sie xtern in ner schleife
 
G

Gast

Gast
hrhr, wo soll denn da eine Rekursion sein ?
Es Wird ja kein Abbruch benoetigt, wofuer auch, das Dingen soll ja in einer "Endlosschleife" laufen"
Von einer anderen methode das dingen zu "triggern" wuerde ja nochmehr auslastung bedeuten.
 

HaBaLeS

Aktives Mitglied
Soso.....

Code:
  public void ScanningL1() throws IOException, InterruptedException {
           
         .... viel schlecht lesbarer code ....

          this.ScanningL1();
  }

wenn das keine Rekursion ist! Wie bezeichnest du es wenn eine Funktion sich selbst aufruft? Selbst wenn die Funktion keinen neuen Speicher allokiert, wird der Code wegen des wachsenden Call-Stacks früher oder später Out-Of-Memory laufen.
 

-Hades-

Mitglied
Hi,

danke schonmal für die Antworten und irgendwie kann ich euch allen zustimmen, einerseits hast du recht Habales, ich rufe die Methode am Ende (bewusst) wieder auf und es sieht wie ne Rekursion aus aber Gast muss ich auch recht geben, es ist ja nicht eine Rekursion in dem Sinne (oder?) ich meine die Methode is ja komplett abgearbeitet und erst dann (am Ende) rufe ich sie erneut auf, da ich das dingen ja endlos laufen lassen möchte.
Kannst du mir kurz beschreiben wie das gemeint ist mit dem externen triggern der schleife?

Mit der Formatierung gebe ich euch auch recht, das wird auch geändert.

Aber mal abgesehen von dem Speicherproblem, weiß denn jemand was darüber das er mir nach ner Zeit die Meldung: FileNotFound exception (Zugriff verweigert) tempshot (nicht ganz originalgetreu) ausspuckt? Also der Screenshot wird so wie ichs beobachtet habe plötzlich nicht mehr angelegt (irgendwelche Buffer von ImageIO voll oder was auch immer). Ich hoffe ihr habt dafür Antworten.

Das mit dem auf null setzen der Variablen werd ich sofort korrigieren!

Nochmal danke für die Antworten und ich hoffe ich könnt mir nochmals helfen.

Gruß Dominik
 

HaBaLeS

Aktives Mitglied
Erstmal zu dem "FileNotFound exception (Zugriff verweigert)"

Bei dem meisten Image/Grafik Operationen ist es so, das der return sofort kommt. d.h. es wird nicht gewartet bis die Operation komplett abgeschlossen ist sondern die Verarbeitung direkt weiterläuft und die angforderte Operation im Hintergrund läuft. (mehr dazu in den entsprechenden API-Docs). Dies hängt damit zusammen, das diese Funktionen meist nativ sind. Nachdem du keine besonders langwirigen Berechnungen machst, sondern die Methode direkt wieder aufrufst kann es sein, das du "Race Conditions" bekommst. z.B: löschen des Files wärend noch reingeschrieben wird oder 2 Bilder gleichzeitig in die Datei schreiben etc... (sind nur beispiele keine konkreten vermutungen) .

Um dies zu verhindern hast du ja selbst schon sleeps eingebaut. eine weiter Möglichkeit wäre in verschiedene temporäre Dateien zu schreiben. (aufräumennicht vergessen.)



Nun zur Rekursion:
wie weit du die Methode abgearbeitet hast spielt überhaupt keine Rolle. Sobald eine funtion sich selbst aufruft ist es eine Rekursion. Ohne abbruchkriterium hast du IMMER ein Problem.

Warum machst du nciht an der stelle an der du deine funtion aufrufst ein :

Code:
private boolean running = true;
while(running){
 running = ScanningL1();
}

Damit wird die Funktion in einer Endlosschleife aufgerufen solage sie true returnt. Die Schleife kannst du beenden, indem du aus der funktion ein false returnst.
 

-Hades-

Mitglied
Danke für die schnellen Antworten Habales!!

Ich werde deine Vorschläge direkt umsetzen.
Das mit den race conditions hab ich mir fast schon gedacht aber ich hab in den docs nichts dahingehendes gefunden aber es stimmt das die Methoden die versuchen die Datei zu schreiben ect. nativ sind.
Das mit der Schleife werd ich auch so machen, ich werde Bescheid geben inwieweit das ganze sich verbessert/stabilisiert hat danach!

Gruß Dominik
 

-Hades-

Mitglied
So, ich hab den Code ein wenig umgeschrieben und das Speicherproblem is annähernd gelöst, jedenfalls wächst er weitaus langsamer an, was aber hoffentlich noch ganz gelöst werden kann.

Das andere Problem besteht aber weiterhin, ich bekomme die FileNotFound exception nicht mehr und wenn er kein Bild findet das exakt gleich ist läuft auch alles prima bloß wenn er eins findet, dann macht er keine neuen Screenshots mehr wie mir scheint, er bleibt dann beim letzten hängen und vergleicht immer nur das.
Vielleicht geht bei der Modulo-Rechnung was schief oder so aber ich sehe nix, entweder ich bin ziemlich verpeilt gerade oder der Fehler is doch schwerer zu entdecken, vielleicht findet ihr ja was.

Ich lasse jetzt erst einen Screenshot machen und vergleiche dann erst diesen shot mit alle 6 vorliegenden Dateien und dann wird erst ein neuer shot gemacht. Ihr werdet es ja sehen:

Code:
public class Scanne extends Thread{
    //public static int Durchlauf = 0;
    public static int Zaehler = 1;
    public static int DateiZaehler = 0;
    public String[] TempDateiName = {"tempshot1.gif","tempshot2.gif","tempshot3.gif","tempshot4.gif","tempshot5.gif","tempshot6.gif"};
    public String[] FileNamesL1 = {"wuerfell1_1","w1_2","w1_3","w1_4","w1_5","w1_6"};
    public static int Welcher = 0;
    public boolean musswarten = false;
    int pixelarray[][];
    int pixelarray2[][];
    Robot superhirn = new Robot();
    Rectangle maßeL1 = new Rectangle(465,416,43,46);
    public Scanne() throws IOException, AWTException {
    }
    public boolean ScanningL1() throws IOException, InterruptedException {
        File tempshot = new File(TempDateiName[DateiZaehler]);
        ImageIO.setUseCache(false);
        //if (tempshot.canWrite() && tempshot.canExecute()) {
            ImageIO.write(superhirn.createScreenCapture(maßeL1), "gif", tempshot);
            DateiZaehler = (DateiZaehler + 1) % 6;
        //}
        Image tempimage = ImageIO.read(tempshot);
        BufferedImage tempimagex = (BufferedImage) tempimage;
        while (Welcher < 6) {
            File datei = new File( FileNamesL1[Welcher] );
            while (!datei.canRead()) {this.sleep(5);}
            Image image2 = ImageIO.read(datei);
            BufferedImage imagex = (BufferedImage) image2;
            
            int pixelarray[][] = new int[tempimagex.getWidth()][tempimagex.getHeight()];
            int pixelarray2[][] = new int[imagex.getWidth()][imagex.getHeight()];
            boolean gleich = true;
            // if (imagex.hashCode() != tempimagex.hashCode()) {gleich = false;}
            for (int i =0;i < tempimagex.getWidth();i++) {
                for (int j = 0;j < tempimagex.getHeight();j++) {
                    pixelarray[i][j] = tempimagex.getRGB(i,j);
                    pixelarray2[i][j] = imagex.getRGB(i,j);
                    System.out.println("Farbwert an Position "+i+", "+j+" = "+pixelarray[i][j]);
                    if (pixelarray[i][j] != pixelarray2[i][j]) {
                        gleich = false;break;
                    }
                }
                if (!gleich) {
                    break;
                }
            }
            
            if (gleich && (musswarten==false)) {
                System.out.println("Erkannt!");
                WriteTXTL1(Welcher);
                Welcher = 6;
                //           tempshot = null;
                datei = null;
                musswarten = true;
                break;
            }
            if (!gleich) {
                System.out.println(Welcher);
                Welcher = (Welcher + 1) ;
            }
            if (!gleich && (Welcher == 6)) {
                musswarten = false;
                //           tempshot = null;
            }
        }
        tempimage = null;
        tempimagex = null;
        tempshot = null;
        pixelarray = null;
        pixelarray2 = null;
        Welcher = 0;
        this.sleep(100);
        return true;
        
    }
 

HaBaLeS

Aktives Mitglied
Eine Anmerkung vorweg. Schreib bitte Variablem mit kleinem Buchstaben am Anfang. Das ist gängige Codeconvention.


Du hast hier eine Klassenvariable:

Code:
  public static int Welcher = 0;

Warum ist die public? Warum ist die static ? Greifst du van anderen Klassen darauf zu?
Vom context des Codes den ich hier sehe, wäre private angebracht.


Du gehtst nur in die Schleife, wenn weicher<6
Code:
      while (Welcher < 6) {
           ... vergleich der bilder ....
      }


Falls das du einen Treffer hattest setzt du die Klassenvariable weicher= 6
Code:
 if (gleich && (musswarten==false)) {
               .....
                Welcher = 6;
               .....
            }



Problem erkannt? Er Vergleicht nicht das den alten Screenshot sondern garncihtmehr.
Kleiner Tipp, wann wird weicher wieder 0?


P.S. Verrätst du mir, was das Programm macht das du schreibst.
 

-Hades-

Mitglied
Hi Dank dir, das public static is Quatsch, das is auch nur weil da nicht so drauf geachtet habe, die Variable wird nicht woanders benutzt.

Den Fehler habe ich erkannt, das Problem war nicht das Welcher nicht auf 0 geht (das passiert ganz am Ende der Methode) sondern das da eine Endlosschleife enstanden ist wenn er ein Bild gefunden hat, er aber noch warten muss (boolean musswarten auf true), das hab ich geändert indem ich am Ende der Schleife: Welcher +=1; geschrieben hab, jetzt läuft es so wie ichs möchte.

SO, jetzt bleibt eigentlich "nur" noch der Fehler mit dem FileNotFound Zugriff verweigert und ich kann mir das immer noch nicht erklären.

Ich habe ein bisschen im Netz gesucht und bin auf mehrere Seiten gestoßen auf denen dasselbe Problem erläutert wird. Es scheint so als wenn ImageIO.write bugbehaftet ist und manchmal leere Dateien schreibt, warum auch immer.

Einige Beispiele:

ImageIO.write bug

ImageIO.write bug


Wenn das jemand bestätigen kann oder sogar wie mans löst wäre ich sehr dankbar!

Gruß Dominik
 

HaBaLeS

Aktives Mitglied
Das letzte Weicher= 0 hab ich wohl übersehen. :shock:

Was du gegen den Bug machen kannst weiss ich leider nicht. Du kannst jedoch falls es die Rahmenbedingungen deines Programms erlauben ein sauberes Fehlerhandling für dieses Problem schreiben, sodass dein Programm troz JVM Bug weiterläuft.

Damit meine ich z.B. die Exception an der stelle fangen an der sie fliegt (was übrigens immer sinvoll ist!) und dann darauf reagieren, indem du die methode neu startest. In so einem Fall wäre eine Rekursion sogar nciht verkehrt.

Viel Erfolg
HaBaLeS
 

-Hades-

Mitglied
Das ist ne gute Idee, das fehlerhafte ImageIO abfangen und erneut schreiben lassen. Habales ich dank dir für deine ganze Hile und Mühe!! Cool solche Leute wie dich hier zu haben.

Wäre übrigens cool wenn wir uns vielleicht ma über n messenger oder so unterhalten könnten, ich kann noch einiges von dir lernen.

Also falls du INteresse hast schreib mir doch bitte eine Mail an: dominik.thalmann@uni-dortmund.de

Ich hoffe weiterhin das vielleicht jemand eine Lösung für das Problem/ eventuell bug hat.

Gruß Dominik
 

Marco13

Top Contributor
Prinzipiell kannst du auch so ein Image in einen (File)OutputStream rausschreiben

Code:
import com.sun.image.codec.jpeg.*;
...

        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image);
        param.setQuality(quality, false);
        encoder.setJPEGEncodeParam(param);
        encoder.encode(image);
Aber das dabei verwendete Package ist "eigentlich" nicht für den öffentlichen Gebrauch gedacht (ich glaube, bei Java 1.6 kommt schon eine Meldung, dass das in zukünftigen Versionen so evtl. nichtmehr funtionieren wird)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Problem mit ImageIO.write() AWT, Swing, JavaFX & SWT 7
M Bild Beschreibung mit ImageIO speichern AWT, Swing, JavaFX & SWT 1
M "ImageIO.read()" liest Bild nicht richtig ein AWT, Swing, JavaFX & SWT 3
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
B ImageIO und animerte gifs? AWT, Swing, JavaFX & SWT 4
N ImageIO Endung mitgeben AWT, Swing, JavaFX & SWT 4
M ImageIO, Bilderordner durchblättern AWT, Swing, JavaFX & SWT 4
B ImageIO gif Dateien laden AWT, Swing, JavaFX & SWT 7
S toolkit vs. imageIO AWT, Swing, JavaFX & SWT 4
T Swing ImageIO - nicht abfangbare IOException AWT, Swing, JavaFX & SWT 5
B ImageIO.read() zweimal hintereinander aus ObjectInputStream funktioniert nicht AWT, Swing, JavaFX & SWT 4
B Problem mit imageIO und ImageIcon AWT, Swing, JavaFX & SWT 5
U ImageIO.read verursacht heap space AWT, Swing, JavaFX & SWT 15
G Problem mit BufferedImage und imageIO AWT, Swing, JavaFX & SWT 2
I BMP mit ImageIO schreiben AWT, Swing, JavaFX & SWT 1
Q sun.awt.X11.XException: Cannot write XdndAware property - Was bedeutet das? AWT, Swing, JavaFX & SWT 2
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
P JFrame Location-/Size-Probleme AWT, Swing, JavaFX & SWT 5
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
C 3 kleine Probleme... AWT, Swing, JavaFX & SWT 13
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
M Probleme mit Verkleinern eines GUI AWT, Swing, JavaFX & SWT 7
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
B ImageIcon - Probleme mit dem Dateipfad AWT, Swing, JavaFX & SWT 5
H JTree Probleme AWT, Swing, JavaFX & SWT 9
F Probleme mit (Graphics g) II AWT, Swing, JavaFX & SWT 4
F Probleme mit (Graphics g) AWT, Swing, JavaFX & SWT 3
K 2D-Grafik .GIF macht mir Probleme AWT, Swing, JavaFX & SWT 14
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
T JTable Graphik probleme AWT, Swing, JavaFX & SWT 3
H GridBagLayout macht Probleme... AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben