DialogFenster wird nicht in Schleife geöffnet?

el_pato

Mitglied
Hallo,
ich habe ein kleine Schleife die Nutzerauswahl kontrollieren soll.

[CODE lang="java" title="So funktioniet die showOptionDialog nicht" highlight="15"]import java.io.*;
import javax.swing.JOptionPane;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String eingabe;
int auswahl;
int weiter;

System.out.println("Hallo Herzlich willkommtn: \n\n\n");

//weiter = JOptionPane.showOptionDialog(null, "Test", "Ihre Auswahl", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,null, null, null);

while (true) {
System.out.println("Was kann ich für Sie tun: \n\n");
System.out.println("Bitte wählen Sie Ihr Aktion \n");

try {
eingabe = br.readLine();
auswahl = Integer.parseInt(eingabe);

} catch (Exception e) {
System.out.println("Bitte eine Zahl eingeben");
continue;
}

weiter = JOptionPane.showOptionDialog(null, "Sie haben dich für die Aktion nummer: " + auswahl + " entschieden!", "Ihre Auswahl", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,null, null, null);

if (weiter == 0) {break;}
else {continue;}

}
System.out.println("Auf wiedersehen");
}
}[/CODE]


Wenn ich vor der Schleife die
Java:
showOptionDialog
erschienen lasse (Kommentar Zeile 15) funktioniert es. Ich verstehe nur leider nicht warum?
Ich nutze IDE Eclipse 2021-09 (4.21.0) // JavaSE 16 // JDK 17.

Danke für eure Hilfe.
 

el_pato

Mitglied
Habe es gelöst.

ich muste vor der Schleife noch ein neues Objekt von JOptionPane erzeugen.
Java:
JOptionPane jO = new JOptionPane();
while (true) {

Dann statt
Java:
 weiter = JOptionPane.showOptionDialog(null, "Sie haben dich für die Aktion nummer: " + auswahl + " entschieden!",  "Ihre Auswahl", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,null, null, null);
Das vorher angelgte Objekt verwenden.
Java:
weiter = jO.showOptionDialog(null, "Wollen sie eine weiter Eingabe vornehmen",  "Bitte wählen", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,null, null, null);
 
K

kneitzel

Gast
Also erst einmal: Dein Code funktioniert bei mir einwandfrei (Naja - nicht zu 100%, aber egal). Es erscheint ein Fenster wie gewollt.

Und für eine statische Methode eine Instanz erzeugen ist natürlich auch Quatsch… Das darf nicht sein. Und eine statische Methode auf einer Instanz aufrufen wird auch so nicht gut sein...

Aber ein Problem hat Dein Code: Du hat den Option Dialog erstellt - da ist die Rückgabe die gewählte Option und nicht der Wert des Buttons. Daher ist der Ja-Knopf nicht die 0 sondern die 1.

Da wäre meine Empfehlung: Wechsel zu dem showConfirmDialog und dann hast Du also Ergebnis auch die 0 - aber bitte statt der 0 einfach die JOptionPane.YES_OPTION prüfen, damit es besser lesbar ist.
 
K

kneitzel

Gast
wo macht er das den ?

In seiner "Lösung" in #2.

Wenn ich vermuten würde, dann hat er bei sich irgendwas nicht richtig übersetzt, weshalb er immer einen alten Stand ausgeführt hat und nicht den Code, den er uns gezeigt hat. Nach diesen Änderungen wurde dann der Code übersetzt - mit dem Effekt, dass es dann jetzt auch bei ihm läuft. Die Instanz selbst ändert nichts und die statische Methode wird nun auf der Instanz aufgerufen - das geht halt auch, auch wenn davon abgeraten wird.
(es führt teilweise zu schwerer lesbaren Code)
 

el_pato

Mitglied
Hallo,

danke nochmal für die vielen Rückmeldungen. Aber nein, bei mir fünktioniert es nicht. Ich habe nochmal den Quellcode in eine neues Projekt gepackt. Es war auch ein abgewandeltes Skript aus einem Buch was ich hier genutzt habe. Wenn ich aber ein JOptionPane Methode vor der Schleife aufrufe bekomme funktioniert es. Ich möchte dies aber nicht müssen so war es nur möglich mit einer neuen Instanz vor der Schleife.

Ich wies nicht was noch falsch sein kann.
 
K

kneitzel

Gast
Hallo,

danke nochmal für die vielen Rückmeldungen. Aber nein, bei mir fünktioniert es nicht. Ich habe nochmal den Quellcode in eine neues Projekt gepackt. Es war auch ein abgewandeltes Skript aus einem Buch was ich hier genutzt habe. Wenn ich aber ein JOptionPane Methode vor der Schleife aufrufe bekomme funktioniert es. Ich möchte dies aber nicht müssen so war es nur möglich mit einer neuen Instanz vor der Schleife.

Ich wies nicht was noch falsch sein kann.
Ich habe keine Ahnung, was Du genau machst und was bei Dir evtl. nicht gehen könnte...

Vielleicht beschreibst Du erst einmal genau im Detail, was denn das Problem ist. Was erwartest Du und was passiert?

Der Code, den Du in #1 hast, hat bei mir in der Schleife eine entsprechende Option Pane geöffnet und ich konnte - wie gewünscht ja / nein auswählen und habe den entsprechenden Rückgabewert bekommen.
 

el_pato

Mitglied
Ich habe keine Ahnung, was Du genau machst und was bei Dir evtl. nicht gehen könnte...

Vielleicht beschreibst Du erst einmal genau im Detail, was denn das Problem ist. Was erwartest Du und was passiert?

Ich habe jetzt eine neue IDE die Intellij IDEA 2021 installiert. Dort funktioniert es auch ohne Probleme. Nur nicht im Eclipse. Gibt es da noch eine Einstellung bei Eclipse die zu tätigen ist?
 

mihe7

Top Contributor
Da ist das continue auch an ganz anderer Stelle, das break ist allerdings trotzdem nicht notwendig, vor allem, wenn weiter schon außerhalb der Schleife deklariert wurde. Das kann hier aber auch didaktische Grüne haben, die mir nicht bekannt sind :)
 

mihe7

Top Contributor
Um das "Problem" nochmal zu verdeutlichen:
Java:
int weiter;
while (true) {
    weiter = // irgendwas
    if (weiter == 0) {
        break;
    } else {
        continue;
    }
}

Das lässt sich problemlos umformulieren zu:
Java:
int weiter;
do {
    weiter = // irgendwas
} while (weiter != 0);

Wobei ich eine boolean-Variable bevorzugen würde.
 

el_pato

Mitglied
Um das "Problem" nochmal zu verdeutlichen:
Java:
int weiter;
while (true) {
    weiter = // irgendwas
    if (weiter == 0) {
        break;
    } else {
        continue;
    }
}

Das lässt sich problemlos umformulieren zu:
Java:
int weiter;
do {
    weiter = // irgendwas
} while (weiter != 0);

Wobei ich eine boolean-Variable bevorzugen würde.
Ja das stimmt, hatte ich auch gemerkt als du den Kommetar mit den Kindern gemacht hast. Das es so nicht ganz so gut ist. Da ich mit unter ja die Gefahr einer Endlosschleife haben könnte. Und das continue in der if ist auch unnötig das hatte ich dann aus sicherheitsgründen eingfügt. Aber ist so sinnlos. Als Programmierstill nehme ich es mir auf alle Fälle mit das es so nicht sinvoll ist. Danke.
 

el_pato

Mitglied
Noch mlal die allgeiene Frage, hat jemande eine Idee warum es in der einen IDE geht und in der anderen IDE nicht.

Intellij IDEA 2021 --> funktioniert.
Eclipse 2021 --> funktioniert nur wenn ich etwas mit JOptionPane vor der Schleife ausführen lasse.

Ansonsten wäre für mich der Punkt des Lernen, dass wenn etwas nach langem suchen und einem aus meiner Sicht funktionierenden Code nicht funktioniert ich es mit einer anderen IDE versuchen sollte.
 
K

kneitzel

Gast
Da wir nicht genau wissen, was Du wie in eclipse gemacht hast, ist es extrem schwer, dazu etwas zu sagen. Der Code sollte auch in Eclipse problemlos funtionieren. Die IDE ist ja unter dem Strich auch nur ein Editor + etwas Unterstützung für Compiler Aufrufe und so. Daher ist die Frage, was Du da mit Eclipse im Detail machst.

Aber wenn Du mit Eclipse nicht klar kommst, dann nimm einfach Intellij. IntelliJ bietet deutlich mehr Unterstützung für Anfänger meine ich und ist deutlich weniger überladen.
 
K

kneitzel

Gast
Hmm, mit was für Schuhen funktioniert Eclipse denn am besten? Meine Abneigung gegen Eclipse kann evtl. daran liegen, dass ich im HomeOffice keine festen Schuhe trage.... Würde sich das bessern, wenn ich ganz auf Schuhe verzichte (Es gibt ja so Socken mit Gumminoppen drunter und so) ...

Oder kann ich mir das sparen, weil klar ist, dass dann eine org.erclipse.NoShoesException geworfen wird? Oder kennt da jemand ein Plugin für Eclipse, das Eclipse virtuelle Schuhe unterschiebt?
 

mihe7

Top Contributor
Ja Ja macht euch nur über den Tipp Fehler lustig.
Finde es ja selber auch lustig. :)
Du weißt ja, wie es hier läuft: wer den Schaden hat, braucht für den Spott nicht zu sorgen :)

Meine Abneigung gegen Eclipse kann evtl. daran liegen, dass ich im HomeOffice keine festen Schuhe trage.... Würde sich das bessern, wenn ich ganz auf Schuhe verzichte (Es gibt ja so Socken mit Gumminoppen drunter und so) ...
Aus eigener, traumatischer Erfahrung würde ich eher sagen, dass sich kindlicher Hüttenschuhzwang tendenziell in einer Eclipse-Aversion manifestiert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Per Klick ein Dialogfenster öffnen Java Basics - Anfänger-Themen 18
I dialogfenster Java Basics - Anfänger-Themen 6
DEvent Dialogfenster in dem man Verzeichnisse auswählen kann Java Basics - Anfänger-Themen 6
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
M Referenzen zuweisen und wird gleichzeitig ausgeführt Java Basics - Anfänger-Themen 6
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
F Session wird mehrfach erzeugt Java Basics - Anfänger-Themen 11
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
krgewb Long wird gerundet Java Basics - Anfänger-Themen 2
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
H GridPane wird nicht angezeigt Java Basics - Anfänger-Themen 0
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
H Endkapital wird nicht korrekt ausgegeben. Java Basics - Anfänger-Themen 5
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
kodela Hauptklasse wird nicht gefunden Java Basics - Anfänger-Themen 3
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
N package wird doppelt im exporer angezeigt Java Basics - Anfänger-Themen 2
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
H Wie wird ein String intern gespeichert? Java Basics - Anfänger-Themen 10
A char array wird überschrieben Java Basics - Anfänger-Themen 6
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
S setContentView(R.Layout.XXX) wird Rot angezeigt Java Basics - Anfänger-Themen 0
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
J Int wird als Null ausgegeben Java Basics - Anfänger-Themen 8
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
S for-Schleife wird ignoriert Java Basics - Anfänger-Themen 15
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
M BorderLayout, 2Panels, EAST wird nicht angezeigt ?? Java Basics - Anfänger-Themen 2
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben