1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Java

    • Frage
  • subatomic
  • 2. November 2003 um 00:57
  • Unerledigt
  • subatomic
    5
    subatomic
    Mitglied
    Punkte
    230
    Beiträge
    36
    • 2. November 2003 um 00:57
    • #1

    [EDIT: War kein sehr aussagekräftiger Subject]

    Weiß jemand, warum dieses Java-Programm (zumindest auf meinem Rechner) nicht terminiert?


    import javax.swing.*;

    ...
    ...

    String eingabe = "<keine Eingabe>";

    eingabe = JOptionPane.showInputDialog("Text eingeben");

    System.out.println("Es wurde " + eingabe + " eingegeben");

    // System.exit(0);

    :confused:

    "in 1000 years, we will be living machines, or dead gods"

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 2. November 2003 um 14:48
    • #2
    Zitat von subatomic

    [EDIT: War kein sehr aussagekräftiger Subject]

    Weiß jemand, warum dieses Java-Programm (zumindest auf meinem Rechner) nicht terminiert?


    import javax.swing.*;

    ...
    ...

    String eingabe = "<keine Eingabe>";

    eingabe = JOptionPane.showInputDialog("Text eingeben");

    System.out.println("Es wurde " + eingabe + " eingegeben");

    // System.exit(0);

    :confused:

    Alles anzeigen

    Das Problem ist der JOptionPane, der eigentlich für die Verwendung in Swing-Applikationen gedacht ist.

    Den Dialogen vom JOptionPane muss daher immer eine Elterncomponente zugeordnet werden. Das kannst Du entweder beim Erzeugen mit angeben
    [ JOptionPane.showInputDialog(java.awt.Container, javax.String); ]
    ,oder es wird, wie in Deinem Fall, ein default Frame erzeugt.
    Das hat dann den unangenehmen Effekt, das der Pane nicht g'scheit terminiert wird.

    Die Lösung ist aber sehr einfach: Wenn Du Dein Programm mit einem System.exit(0); beendest, wird das ganze Programm und damit auch der JOptionPane terminiert.

    Bejo

    lg, Benjamin Ferrari, bookworm.at

  • subatomic
    5
    subatomic
    Mitglied
    Punkte
    230
    Beiträge
    36
    • 2. November 2003 um 16:05
    • #3

    Für mich war allein die Notwendigkeit eine Konsolenanwendung mit System.exit(0) beenden zu müssen ein Indiz dafür JOptionPanes hier NICHT zu verwenden.
    Das mit dem Default-Frame ist aber nachvollziehbar. Swing-Anwendungen werden ja ebenfalls auf diese Art und Weise beendet.

    Danke,
    subatomic

    "in 1000 years, we will be living machines, or dead gods"

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung