Dialog wird nach Schließung neu geöffnet

FUT320

Mitglied
Hallo,

ich bin gerade dabei ein kleines Programm zu schreiben. Ziel ist es, dass ein Text in ein Textfeld geschrieben wird und dieser auf Richtigkeit überprüft wird. Sollte dieser falsch sein, wird eine Fehlermeldung geöffnet.

Hier wird es überprüft und ggf. die Meldung geöffnet:

Java:
if(modelE.getErrorStatus() != null){
   modelF.berechneBreite(modelE.getErrorStatus());
   viewF.setVisible(true);

Hier wird die Dialogbreite berechnet, welche je nach Textlänge angepasst werden soll:

Java:
public class ModelFehlermeldung extends Observable {

    int laenge;
    double faktor = 13.871;
    double rechnung;
    int dialogBreite;
    String mitteilung;
   
    public void berechneBreite(String mitteilung){
       
        this.mitteilung = mitteilung;
        laenge = mitteilung.length();
        rechnung = laenge * faktor;
        dialogBreite = (int) Math.round(rechnung);
        setChanged();
        notifyObservers(this);
       
    }
   
    public int getDialogBreite(){
        return this.dialogBreite;
    }
public String getMitteilung(){
     return this.mitteilung;
   } 
       
}

Schließlich wird die Meldung angezeigt:

Code:
private JPanel pnlFehlermeldung;
    private int dialogBreite;
    private JLabel lblNachricht = new JLabel();
   
    public ViewFehlermeldung(Control control){
       
    setTitle("Fehlermeldung");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setName(StaticsEingabe.VIEW_FEHLERMELDUNG_NAME);

    pnlFehlermeldung = new JPanel();
    setContentPane(pnlFehlermeldung);
   
    lblNachricht.setHorizontalAlignment(JLabel.CENTER);
    lblNachricht.setVerticalAlignment(JLabel.CENTER);
    lblNachricht.setFont(new Font("text",0,25));
       
    pnlFehlermeldung.add(lblNachricht);

    addWindowListener(control);
   
    }

    @Override
    public void update(Observable o, Object arg) {
        // TODO Auto-generated method stub
       
        if(arg instanceof ModelFehlermeldung){
        this.lblNachricht.setText((((ModelFehlermeldung) arg).getMitteilung()));
        setSize(this.dialogBreite = (((ModelFehlermeldung) arg).getDialogBreite()),100);
        }
    }
}

Die Meldung soll automatisch nach einer bestimmten Zeit wieder verschwinden:

Code:
public void windowOpened(WindowEvent e) {
if(e.getComponent().getName() == StaticsEingabe.VIEW_FEHLERMELDUNG_NAME){
           
              try {
                    Thread.sleep(2000);
                       viewF.dispose();   
                       }
                 catch(InterruptedException ie) {
                    Thread.currentThread().interrupt();
               }
           }
}

Mein Problem ist nun, dass die Fehlermeldung zwar an der richtigen Stelle erscheint und auch nach der Zeit wieder geschlossen wird, jedoch öffnet sich nach dem Schließen sofort das gleiche Fenster noch einmal und bleibt auch sichtbar. Es lässt sich nur durch drücken auf X schließen. Wisst ihr, was ich falsch gemacht habe?
 

StarSheriff

Mitglied
Ich habs bei mir mal soweit wie möglich nachgebaut. Deine Logik fürs automatische Schließen der View ist korrekt (das equals hat dir Harry Kane ja schon angestrichen :)). Die einzige Stelle die im geposteten Code dafür sorgt dass der Fenster nochmal geöffnet wird ist ja innerhalb der if-Abfrage ob das Model einen Error-Status hat:

if(modelE.getErrorStatus() != null){
modelF.berechneBreite(modelE.getErrorStatus());
viewF.setVisible(true);

Wie wird diese Codestelle aufgerufen?, hast du mal versucht den errorStatus zurückzusetzen, nachdem du die View anzeigst?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Dialog wird nicht angezeigt Java Basics - Anfänger-Themen 3
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
A Dialog schließt erst nach 2x Klicken auf Schließen Java Basics - Anfänger-Themen 2
P Threads Im Dialog geöffneter Thread zeichnet nicht Java Basics - Anfänger-Themen 4
G Dialog Java Basics - Anfänger-Themen 2
T requestFocus() nach modalem Dialog Java Basics - Anfänger-Themen 3
J Über ... Dialog (Mac OS) Java Basics - Anfänger-Themen 8
B Bestimmungspfad im Dialog auswaehlen Java Basics - Anfänger-Themen 9
S Dialog im Thread Java Basics - Anfänger-Themen 2
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
H customized dialog Java Basics - Anfänger-Themen 2
C Felder im Dialog zurücksetzen Java Basics - Anfänger-Themen 3
J SWT / Datei-Öffnen Dialog Java Basics - Anfänger-Themen 2
S Dialog dynamisch vergrößern Java Basics - Anfänger-Themen 2
jnoob Checkbox in Dialog Dynamisch erstellen Java Basics - Anfänger-Themen 2
H Internes Dialog im Programm Java Basics - Anfänger-Themen 15
Q Wie öffne ich einen "Speichern unter" - Dialog? Java Basics - Anfänger-Themen 2
G Button soll Speicher Dialog aufrufen Java Basics - Anfänger-Themen 10
D dialog listener? Java Basics - Anfänger-Themen 2
F Vom Dialog zum Hauptframe Java Basics - Anfänger-Themen 3
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
G Controls einem Dialog uebergeben Java Basics - Anfänger-Themen 4
M Dialog im undecorated Fullscreen Java Basics - Anfänger-Themen 2
M JOptionPane - Dialog Java Basics - Anfänger-Themen 6
G Dialog soll nicht in Vordergrund springen Java Basics - Anfänger-Themen 13
I Dialog - "Ja" / "Nein" abfangen Java Basics - Anfänger-Themen 3
I SaveFile Dialog - wie realisieren ? Java Basics - Anfänger-Themen 4
J Dateiöffnen-Dialog und einlesen Java Basics - Anfänger-Themen 6
K SourceFolder Dialog Java Basics - Anfänger-Themen 8
Bernasconi Dialog und Fenster Liste? Java Basics - Anfänger-Themen 10
V Text aus Dialog auslesen. Java Basics - Anfänger-Themen 3
E "Datei öffnen"-Dialog Java Basics - Anfänger-Themen 2
M Dialog aus Menü aufrufen Java Basics - Anfänger-Themen 13
K Probleme mit AWT Dialog Java Basics - Anfänger-Themen 8
5 File->Open Dialog mit nachheriger Aktion ausführen. Java Basics - Anfänger-Themen 3
G Schrift-Auswahl-Dialog? Java Basics - Anfänger-Themen 6
M JFileChooser Überschreiben Dialog? Java Basics - Anfänger-Themen 2
C Dialog immer vor Hauptfenster anzeigen Java Basics - Anfänger-Themen 9
T Wie öffne ich einen Dialog? Java Basics - Anfänger-Themen 3
D Dialog mit eigenem Bild Java Basics - Anfänger-Themen 7
F Dialog mit allen verfügbaren Druckern Java Basics - Anfänger-Themen 2
G Input Dialog Problem Java Basics - Anfänger-Themen 11
F Dialog zum Durchsuchen von Verzeichnissen nach Datei Java Basics - Anfänger-Themen 11
V List mit Dialog Java Basics - Anfänger-Themen 3
V Ein Fenster durch Menu-Dialog schliessen Java Basics - Anfänger-Themen 2
I Dialog Fenster anzeigen lassen. Java Basics - Anfänger-Themen 2
A Tabulator in Dialog Java Basics - Anfänger-Themen 2
P Funktion einer anderen Klasse aus einem Dialog aufrufen Java Basics - Anfänger-Themen 8
G Dialog-Problem Java Basics - Anfänger-Themen 6
G Logging-Ausgabe in einem Dialog Java Basics - Anfänger-Themen 2
DEvent modaler dialog: showmodal ? Java Basics - Anfänger-Themen 4
EagleEye Dialog Java Basics - Anfänger-Themen 2
M Ändern einer Socket-Eigenscheft aus einem modalen Dialog? 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

Ähnliche Java Themen

Neue Themen


Oben