JButton verursacht einen HeapSpace Error?

Status
Nicht offen für weitere Antworten.

milanwb

Aktives Mitglied
Hallo,

ich habe folgendes Problem mit meinem Programm.

Erst mal zum Programm selber: Es soll eine Textdatei (etwa 20 mb) groß öffnen und in einer JTextPane anzeigen.

Jetzt zu den Problem ich lade die den Pfad zur Datei mit einem JFileChooser. Bekomme den Pfad auch korrekt dann lese ich diese mit dem BufferedReader ein:

Code:
public void loadFile(String dateiname) {  // von chooseFile() gestartet und erhält den dateinamen übergeben

   try {

    BufferedReader in = new BufferedReader(new FileReader(dateiname));
     String tmp = null;
     
     while ( (tmp = in.readLine()) != null ) {

      if (stopped) break;  // wenn var stopped true ist schleife abbrechen
      write(tmp);            // schreibt den text in die TextPane
      tmp = null;

     }
   } catch (Exception e) {
     error("Fehler Code 001: " + e);
   }
  }

Das Funktioniert eigentlich sehr gut, nur das Problem ist es läuft nur ohne Probleme wenn ich die Methode, die den Ladevorgang startet, ohne Buttonklick direkt mit dem Programm starten soll.
Mach ich es allerdings mit einem Buttonklick, so hängt das JavaProgramm und ich bekomme diese lässtige HeapSpace Fehlermeldung...

Noch zur Hilfe:

Wie ich die Aktionen im Button vergeben habe:

Code:
data.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent avt) {
               stopped = false; // var zum stoppen des vorgangs
               write ("/clear"); // Methode zum Löschen und beschreiben der TextPane
               chooseFile();    // Methode, die den Filechooser startet und anschließend den lese Vorgang startet
            }
          });

Danke für die schnelle Antwort ihr seit Spitze :)
 

milanwb

Aktives Mitglied
Was meinst du mit Threads? (Implements Runnable?)

Wenn ja dann benutze ich das nicht. Das ganze Programm ist eine einzelne Applikation ohne weitere Prozesse...
 

Bleiglanz

Gesperrter Benutzer
dann hat der Button doch nur den Effekt dass sicher gelesen wird?

ausserdem: wenn stopped, dann würd ich den Stream schon noch zumachen mit close() - genauer gesagt hast du überhaupt kein close() drin??

und vielleicht gar nicht erst den Buffer öffnen und eine Zeile lesen, sondern gleich am Anfang if(stopped) return; schreiben
 

milanwb

Aktives Mitglied
Hab das close mal gesetzt. Nur der schmiert immer noch ab.
Das mit dem Stop soll nicht vorher passieren sondern währned der schon dran ist, dass man den vorgang abbrechen kann.

Ja der Button dient nur zum starten des Prozesses...Nur mit Buttonklick schmiert er hab und ohne funktioniert es ohne Probleme :-(
 

Bleiglanz

Gesperrter Benutzer
milanwb hat gesagt.:
Das mit dem Stop soll nicht vorher passieren sondern währned der schon dran ist, dass man den vorgang abbrechen kann.
:-(
versteh ich nicht -> wenns nur ein Thread ist, dann kann man den Button doch gar nicht anklicken während das Ding läuft

hat chooseFile() irgendeinen Seiteneffekt?

ButtonClick
-> Choose file
->->loadFile

schreib mal überall eine log-Meldung, damit du die Aufruf-hierarchie siehst...
 

milanwb

Aktives Mitglied
mhh Vielleicht ist das mein Problem? Das der Button anklickbar ist und sich das ganze nur in einem Thread befindet? Könnte das nicht sein?

Ich hab jetzt überall mal log Funktionen eingebaut. Also wenn ich den normal starte (ohne Button) dann funktioniert es und er zeigt auch alle logs an. Wenn ich den jedoch mit Button starte, zeigt er weder den Log vom FileChooser noch den von der loadFile... Irgendwo dazwischen bleibt er hängen. Ich hab dann auch mal die Whileschleife ausgeklammert, dann lief er durch alle Logs...

Also irgendwie muss dem das while im Zusammenhang mit dem Button zu viel sein.

Hier mal meine chooseFile Funktion:

Code:
public void chooseFile() {
     try {

        JFileChooser file = new JFileChooser("c:/Downloads/preise");

        if (file.CANCEL_OPTION ==  file.showOpenDialog(null))
           exclame("Bitte wählen Sie eine Datei zum Abgleichen aus!");
        else if (file.getSelectedFile().getPath().toLowerCase().endsWith(".txt")) {
          String dateiname = file.getSelectedFile().getPath();
          exclame("Textdatei " + dateiname + " erfolgreich geladen. Beginne Abgleich.");
          error("datei");
          loadFile(dateiname);
        } else {
          exclame("Bitte wählen Sie eine TEXTDATEI zum Abgleichen aus!");
          chooseFile();
        }
     }  catch (Exception e) {
       error("Fehler Code 003: " + e);
     }
  }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N JButton Konflikt mit Graphics Allgemeine Java-Themen 14
F JButton und ActionListener Allgemeine Java-Themen 3
H Schiffe versenken JButton Schiffe mit GUI verbinden Hilfe! Allgemeine Java-Themen 2
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
Aruetiise LayoutManager JButton in den Hintergrund Allgemeine Java-Themen 7
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
D AWT JButton und KeyAdapter Allgemeine Java-Themen 1
M JButton setEnabled(false) seltsames Ereignis Allgemeine Java-Themen 1
R via JButton in JTextArea printen Allgemeine Java-Themen 2
S Mit einem jButton eine andere Klasse öffnen Allgemeine Java-Themen 2
H JButton Ursprungsfarbe Allgemeine Java-Themen 2
Developer_X JButton Aktion Allgemeine Java-Themen 5
Developer_X JButton soll gar nichts machen Allgemeine Java-Themen 8
G Serialisieren eines JButton mit Icon Allgemeine Java-Themen 8
G JButton Allgemeine Java-Themen 7
S eigene Klasse die JButton extended - als Liste! Allgemeine Java-Themen 6
P JButton klonen Allgemeine Java-Themen 8
P JButton dnd Allgemeine Java-Themen 29
G Plug-in: Wie JButton einfügen? Allgemeine Java-Themen 12
M Swing JButton Farbe zurücksetzen Allgemeine Java-Themen 6
O JButton oder Checkboxes als Array ? Allgemeine Java-Themen 3
T Allgemeinklasse zu JPanel, JButton. Allgemeine Java-Themen 26
P eigener Thread für einen JButton Allgemeine Java-Themen 32
E JButton bleibt in der JTable Allgemeine Java-Themen 2
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
S JButton als Hyperlink ? Allgemeine Java-Themen 32
MQue JButton erkennen Allgemeine Java-Themen 2
MQue JButton an verschiedenen Variablen Allgemeine Java-Themen 2
MQue JButton zu JPanel hinzufügen Allgemeine Java-Themen 7
B Vermeiden das JButton schneller hintereinander drücken Allgemeine Java-Themen 3
G Hilfe - JButton in JTable (Spalte) einfügen! Allgemeine Java-Themen 6
N JList mit Mausklick auf einen JButton scrollen Allgemeine Java-Themen 28
thE_29 JButton einfärben Allgemeine Java-Themen 10
Robertop Mockito.when mit JDK 21 verursacht Buildfehler "RestrictedIdentifierWhen" Allgemeine Java-Themen 15
Hatsi09 Jar datei ausführen verursacht NumberFormatException Allgemeine Java-Themen 9
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2
Creylon Java verursacht sehr starkes ruckeln Allgemeine Java-Themen 5
A Parser verursacht Speicherprobleme auf Server Allgemeine Java-Themen 2
A Applet Mein Applet verursacht Browserabsturz Allgemeine Java-Themen 8
W Java verursacht Grafik-Fehler? Allgemeine Java-Themen 3
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
Robert Zenz Ich brauche bitte mal kurz einen Sanity/Reality-Check betreffend Tests. Allgemeine Java-Themen 9
R Wie gestaltet man einen Authentifizierungsflow? Allgemeine Java-Themen 6
berserkerdq2 Jemand einen Tipp wie man ein Javafx-Hintergrund "dynamisch" macht Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
N Wie mache ich einen UnitTest? Allgemeine Java-Themen 16
D Klassendesign für einen Pascal Interpreter Allgemeine Java-Themen 6
Jose05 Gibt es einen Nachteil bei dem JDK 8? Allgemeine Java-Themen 7
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
O Warum kann ich so keine Elemente löschen und erhalte einen IllegalStateException? Allgemeine Java-Themen 4
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
N Validator für einen SQL-Befehl Allgemeine Java-Themen 22
ZH1896ZH Best Practice Wie erstellt man am besten einen Kalender? Allgemeine Java-Themen 3
R Java Stream: Ist es möglich, einen stream zusammenzufassen Allgemeine Java-Themen 6
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
L Generator für einen Parser implementieren Allgemeine Java-Themen 13
W Haben Konstruktoren in Java eigentlich immer mindestens einen Parameter? Allgemeine Java-Themen 4
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
A Mithilfe von einer Nummer einen Namen finden n-Beziehung Allgemeine Java-Themen 8
B Long in einen Double umwandeln und im Label anzeigen Allgemeine Java-Themen 7
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
MoxxiManagarm Ich brauche einen smarten Ansatz Allgemeine Java-Themen 23
J Gebautes Jar per Maven in einen Docker Container kopieren Allgemeine Java-Themen 0
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
E Einen Bot Programmieren. Allgemeine Java-Themen 6
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
P [Webdriver] einen Datensatz signieren Allgemeine Java-Themen 0
R MAC-Adresse eindeutig für einen PC ? Bezug zu Netzwerk, wieso ? Allgemeine Java-Themen 7
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
N Wie öffne ich einen runtergeladadenen Code in IntelliJ Allgemeine Java-Themen 3
R Wie einen ClientBuilder / JarBuilder programmieren? Allgemeine Java-Themen 14
S Input/Output Beste Möglichkeit einen String in einen Datei zu Schreiben Allgemeine Java-Themen 2
L Input/Output Wie kann man in der Konsole einen Text farbig ausgeben z.b in grün Allgemeine Java-Themen 6
L Wie programmiert man einen Listener? Allgemeine Java-Themen 1
M Nanosekunden-Pause innerhalb einen Thread-Loops Allgemeine Java-Themen 3
Thallius Wie convertiere ich einen pkcs8 key in einen java lesbaren? Allgemeine Java-Themen 16
M Was braucht man, um einen Java Job zu bekommen? Allgemeine Java-Themen 8
G Substrings in einen String zusammenfassen Allgemeine Java-Themen 5
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
P Zum src Ordner einen Projektes navigieren Allgemeine Java-Themen 8
J Abhängigkeit zwischen Rechenzeit und Speicherbedarf in einen Algorithmus Allgemeine Java-Themen 7
MaxG. Swing Wie kann man einen Dateiordner auswählen ? Allgemeine Java-Themen 3
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
KeVoZ_ int Werte in einen String fassen Allgemeine Java-Themen 4
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
S Einen Punkt um den Ursprung drehen Allgemeine Java-Themen 5
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
M Genaues Bugtracking - jemand einen Vorschlag? Allgemeine Java-Themen 14
L Gibt es in Java einen Property Editor? Allgemeine Java-Themen 2
S Einen übergebenen String kopieren Allgemeine Java-Themen 3
J Wie erschaffe ich einen sicheren Datenaustausch zwischen Thread und Nicht-Threads Allgemeine Java-Themen 8
L Wie kann ich einen Keystore aus existierenden Zertifikaten erstellen? Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben