1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Java

    • Frage
  • subatomic
  • 2. November 2003 um 00:57
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • subatomic
    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:

  • a9bejo
    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

  • subatomic
    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

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum