Was mache ich hier falsch?

Status
Nicht offen für weitere Antworten.

titus

Mitglied
Ich habe eine Frage zu nachfolgendem, selbstgeschriebenem Gewusel. Und zwar habe ich hier gleich zwei Probleme:

1. Warum schließt das Programm nicht, wenn ich im Dialog auf "Ja" klicke? Irgendwie wird in der main der boolsche Wert nicht übergeben und ich habe keine Ahnung warum. :(

2. Wie kriege ich es hin, dass das Dialog-Fenster über dem Hauptfenster liegt und das Hauptfenster für diese Dauer nicht benutzbar ist? Das Problem ist nämlich, dass ich von diesen YesNo-Dialogen so viele aufrufen kann, wie ich lustig bin, wenn ich das Fenster zu schließen versuche. :(

EDIT: Ok, ich habe die Antwort auf Frage 2 selbst gefunden. Ich muss Zeile 11 durch folgendes ersetzen:
[JAVA=11]super(parent, title, true);[/code]

Kann mir da jemand bitte helfen?


Java:
package solitaire;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class YesNoDialog extends JDialog {
    boolean status = false;

    public YesNoDialog(JFrame parent, String title, String question) {
        setTitle(title);
        JPanel text = new JPanel();
            text.add(new JLabel(question));
        getContentPane().add(text, BorderLayout.NORTH);

        JPanel buttons = new JPanel();
            JButton yesButton = new JButton("Ja");
            buttons.add(yesButton);
            yesButton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    status = true;
                    returnStatus();
                }
            });
            JButton noButton  = new JButton("Nein");
            buttons.add(noButton);
            noButton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    returnStatus();
                }
            });
        getContentPane().add(buttons, BorderLayout.SOUTH);

        pack();
        setVisible(true);
    }

    public boolean returnStatus() {
        return status;
    }
}

public class Main extends JFrame{

    public Main() {
        super("Solitaire");
        setSize(500, 400);
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        setVisible(true);

        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                YesNoDialog beenden = new YesNoDialog(new JFrame(), "Beenden?", "Möchten Sie das Programm wirklich beenden?");
                if (beenden.returnStatus()) {
                    dispose();
                    System.exit(0);
                }
            }
        });
    }

    public static void main(String[] args) {
        new Main();
    }
}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
in den ActionListenern musst du dispose() aufrufen, damit der Dialog beendet wird, den Rest macht windowClosing()
 

hdi

Top Contributor
Das Ding ist dass dein Dialog ja jetzt modal ist. Der Thread, der diesen Dialog anzeigt, also der in deiner Main-Klasse, wird solange blockiert bis der Dialog disposed() wird.
Aber das tust du ja nicht beim Klick auf einen Button. Sondern erst in der Main nachdem du prüfst was der Status ist. Was nie passiert, weil er ja blockiert ist.

Also ganz einfach: das dispose() kommt in den ActionListener der Buttons, nachdem sie status auf einen Wert setzen.
returnStatus() musst du in den ActionListenern übrigens nicht aufrufen, die Methode macht ja nichts.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Wie mache ich die Variable xyz eindeutig/unique? Java Basics - Anfänger-Themen 20
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
D Wenn ich repaint(); mache, flackert es so stark, das man fast nichts erkennen kann. Java Basics - Anfänger-Themen 11
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
Silvascus Was mache ich falsch? Java Basics - Anfänger-Themen 15
L Variable an andere Klasse weitergeben - Was mache ich falsch? Java Basics - Anfänger-Themen 2
J Klassen Fehler Datei kopieren - was mache ich falsch Java Basics - Anfänger-Themen 19
G mache aus Test nach sortieren estt oder java aajv Java Basics - Anfänger-Themen 5
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
A Variablen Was mache Ich falsch? Java Basics - Anfänger-Themen 5
B Klassen Wie mache ich das "the java way"? Java Basics - Anfänger-Themen 4
A was mache ich falsch? Java Basics - Anfänger-Themen 3
J Wie mache ich ein JFrame modal Java Basics - Anfänger-Themen 30
D Wie mache ich das? Java Basics - Anfänger-Themen 2
F Ich raffs nicht! - Wie mache ich ein einfaches Java-window? Java Basics - Anfänger-Themen 54
D Muss ein Applet schreiben was Mittelwerte berechnet nur was mache ich falsch? Java Basics - Anfänger-Themen 11
H Wie mache ich aus pfad\\unterpfad pfad\unterpfad? Java Basics - Anfänger-Themen 3
S Wie mache ich mir eine universelle Timermethode Java Basics - Anfänger-Themen 20
D Brauche mehr Flexibilität bei der Realisierung und weiss nicht wie ich das mache. Java Basics - Anfänger-Themen 10
D Boolean funktioniert nicht, was mache ich falsch? Java Basics - Anfänger-Themen 6
S Deserialisieren: alle Objekte ausgeben - wie mache ich das? Java Basics - Anfänger-Themen 2
M Wie mache ich einen Eventdispatcher? Java Basics - Anfänger-Themen 9
M Counter erstellen - Was mache ich falsch? Java Basics - Anfänger-Themen 17
Q TextArea - wie mache ich einen Absatz? Java Basics - Anfänger-Themen 9
S Fehler in Javaprogramm, was mache ich falsch? Java Basics - Anfänger-Themen 9
T Button Dis/Enablen - Was mache ich falsch? Java Basics - Anfänger-Themen 3
S Was mache ich falsch? Java Basics - Anfänger-Themen 4
D Pascal'sche Drreieck. was mache ich in der ausgabe flasch? Java Basics - Anfänger-Themen 5
D Was mache ich falsch beim ScrollPane ? Java Basics - Anfänger-Themen 2
T Was mache ich falsch? File klasse. Java Basics - Anfänger-Themen 3
G Fehler: Illegal Expression. Was mache ich falsch? Java Basics - Anfänger-Themen 4
W Was mache ich Falsch?? Java Basics - Anfänger-Themen 4
N Womit mache ich ein menue Java Basics - Anfänger-Themen 2
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
D Ist Ableiten hier sinnvoll Java Basics - Anfänger-Themen 5
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
B Dekorator Muster - Irgendwas stimmt hier doch nicht? Java Basics - Anfänger-Themen 4
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
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 Kann mir jemand hier die Logik vermitteln? Java Basics - Anfänger-Themen 3
M Wie kann ich hier den Abstand ausgeben? Java Basics - Anfänger-Themen 3
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
P Weswegen entstehen hier Syntaxfehler? Java Basics - Anfänger-Themen 3
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
A Wieso bekomme ich hier zwei unterschiedliche Ausgaben? Java Basics - Anfänger-Themen 6
S Was für Aufgaben könnten sich hier hinter verbergen? Java Basics - Anfänger-Themen 5
R Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht? Java Basics - Anfänger-Themen 5
R Wie würde hier die if-Anweisung aussehen? Java Basics - Anfänger-Themen 18
S Operatoren i=i++; Was passiert hier? Java Basics - Anfänger-Themen 21
G Warum ist hier ein Lamda-Ausdruck möglich Java Basics - Anfänger-Themen 2
O Was bedeutet das hier 999_983? Java Basics - Anfänger-Themen 2
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
L Collections Ist eine Arraylist hier das richtige? Java Basics - Anfänger-Themen 12
S Unklarer Code (was passiert hier?) Java Basics - Anfänger-Themen 1
R Kann mir hier jemand weiterhelfen? Java Basics - Anfänger-Themen 1
B Wieso wird hier so viel als falsch angezeigt? Java Basics - Anfänger-Themen 2
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Kann mir jemand erklären, warum hier dreimal was ausgegeben wird und nicht nur zweimal? Java Basics - Anfänger-Themen 16
P Compiler-Fehler Wo befindet sich hier der Fehler und warum? Java Basics - Anfänger-Themen 21
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
K Was wird hier nacheinander gemacht? Java Basics - Anfänger-Themen 1
L [ARRAY] Werden hier die Indezes oder die Werte vergliechen? Java Basics - Anfänger-Themen 4
M Liegt hier bereits ein Bad Smell vor? Java Basics - Anfänger-Themen 9
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
V in diesem Forum wurde mir am meisten geholfen, daher eine Frage die hier nicht passt. sry (VB Frage) Java Basics - Anfänger-Themen 3
T boolean, was passiert hier? Java Basics - Anfänger-Themen 4
O euer chat hier Java Basics - Anfänger-Themen 1
R kann mir jemand erklären was hier gemacht wurde? Java Basics - Anfänger-Themen 10
K Wie übergebe ich hier korrekt die Werte Java Basics - Anfänger-Themen 5
B Warum gibst hier Equals false zurück ? Java Basics - Anfänger-Themen 23
V Warum wird hier 200 ausgeliefert? Java Basics - Anfänger-Themen 39
S Klassen Klasse oder nicht Klasse - das ist hier die Frage Java Basics - Anfänger-Themen 6
W Methoden Wie wird eine Methode hier aufgerufen? Java Basics - Anfänger-Themen 5
S wieso Fehlermeldung cannot find symbol hier Java Basics - Anfänger-Themen 10
K Was ist hier Falsch? Java Basics - Anfänger-Themen 3
L Erste Schritte Sollte ich hier lieber Cases verwenden oder wäre eine If-Bedingung besser? Java Basics - Anfänger-Themen 6
E Kann mir jemand sagen was hier falsch ist? Java Basics - Anfänger-Themen 6
J Was passiert hier? Java Basics - Anfänger-Themen 6
D Wie "unchecked cast" hier vermeiden? Java Basics - Anfänger-Themen 2
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
Q switch case hier möglich Java Basics - Anfänger-Themen 10
P Was ist hier falsch? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben