JDialog mit Problem-Zusatz

Status
Nicht offen für weitere Antworten.

Spoocky

Aktives Mitglied
Habe folgendes Problem:

Ich habe einen JDialog in eine class gepackt, die mit new MyClass aufgerufen wird.
Mit einem Button wird der Dialog beendet. setModal ist auf 'true' gesetzt, habe aber auch schon 'false' ausprobiert.

Das Problem ist jetzt, dass entweder, je nachdem wie setModal gesetzt wurde, ein kleines Fenster zusätztlich erscheint, ohne inhalt.

Woran kann das liegen?
 

Spoocky

Aktives Mitglied
Hier der Code:

Code:
		class FensterEingabe extends JFrame {
		
			private static final long serialVersionUID = -4961244315464056255L;
			JDialog Fenster = new JDialog(f, true);
			
			public FensterEingabe() {
			    	
			   Container container= Fenster.getContentPane();							
			   GridBagLayout gbl2 = new GridBagLayout();									
			   container.setLayout(gbl2);														
			   
			   
			   Fenster.setModal(true);
			   Fenster.setResizable(false);									
			   Fenster.setTitle("Eingabe:"); 						
			   Fenster.setBounds(400, 200, 600, 500);							
			   
			   JButton speichern = new JButton("Speichern und Schließen");											
			   
			   String Text = new String ("Geben Sie hier die Werte ein: \n"); 
					   															
			   JTextArea text = new JTextArea(Text);

			   
			   text.setFont(new Font("Verdana", Font.BOLD, 16));					
			   text.setBackground(Color.GREEN);										
			   //text.setEnabled(false);											
			 
			 		   
			  
			   
			   addComponentHauptfenster (container, gbl2, text, 0, 0, 0, 1, 1, 0);
			   
			   addComponentHauptfenster (container, gbl2, wert1, 	0, 1, 1, 1, 1, 0);
			   addComponentHauptfenster (container, gbl2, wert1Inhalt, 2, 1, 1, 1, 1, 0);
			   
			   addComponentHauptfenster (container, gbl2, wert2, 	   0, 2, 1, 1, 1, 0);
			   addComponentHauptfenster (container, gbl2, wert2Inhalt, 2, 2, 1, 1, 1, 0);
			   

			   
			   addComponentHauptfenster (container gbl2, speichern, 0, 3, 0, 1, 1, 0);
			   
			  
			   
			   speichern.addActionListener(new ActionListener() {					
			    	  public void actionPerformed (ActionEvent e) {
			    		Info.setBackground(Color.GREEN);
			    		Ausgeben();
			    		Fenster.dispose();
	    		 		
			    	  }});
			   
			   
			   Fenster.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);			
			   Fenster.setVisible(true);											
			   
			
				}
			}
 

Wildcard

Top Contributor
Methoden und Variablen werden klein geschrieben.
Meine Vermutung ist das du einen Frame zuviel instanzierst. Du hast einen Frame der im Konstruktor einen Dialog zusammenbaut und übergibst diesem Dialog ein ominöses 'f' als owner.
Sieh am besten nochmal nach was du da wirklich machst, dieser Code alleine reicht jedenfalls nicht aus um den Fehler eindeutig bestimmen zu können.
 

Spoocky

Aktives Mitglied
ich erzeuge ganz am Anfang meines Programms ein JFrame f wie folgt:

Code:
JFrame f = new Jframe();

Kann es damit irgend etwas zu tun haben?
 

EOB

Top Contributor
ja, wenn du das meinst:

Code:
JFrame f = new JFrame();

das zweite gross geschrieben? was machst du damit noch? also mit f?

gruess
 

Spoocky

Aktives Mitglied
ja, genau, dsa zweite auch gross geschrieben.

ich benutzte es bei 2 JDialogs als Owner!

Aber nachdem ich einen der beiden Dialoge mit .dispose geschlossen habe, erscheint ein neues Fenster ohne Inhalt.
 

Fatal Error

Bekanntes Mitglied
warum erbt deine fensterEingabe klasse von jframe??

das bringt dir in deinem code rein garnichts. wenn dann ändere extends jframe in extends jdialog und lösche die dialog variable innerhalb der klasse und schreib statt fenster immer this hin.

super(owner, title, modal); im konstruktor nicht vergessen.

aja und "fenster.setModal" ist unnötig, weil du beim initzialisieren der dialog variable (f, true) angegeben hast.

und noch etwas:

Code:
speichern.addActionListener(new ActionListener() {                                
    public void actionPerformed (ActionEvent e) { 
    Info.setBackground(Color.GREEN);  // <- was ist info? eine variable?
    Ausgeben();  // wo ist diese methode?
    Fenster.dispose(); 
}});

ich glaube du hast nicht den ganzen code gepostet.
 

Spoocky

Aktives Mitglied
@Fatal Error:
Danke für die Tips, habe sie gut nutzen können.
Was genau bewirkt 'this' ?
Und was bewirkt: super(owner, title, modal); im Konstruktor?
Und ja, es fehlt etwas an Code, der aber nicht wichtig ist, würde auch nur zuviel verwirren.

Sorry für die vielen Fragen hier, aber habe noch nicht so viel mit Fenstern und JDialogs etc. gearbeitet.
 

EOB

Top Contributor
hi, also this ist immer ein object der klasse. also mal ein beispiel:


Code:
class EineKlasse{
     public EineKlasse(NochEineKlasse nek){
    }
}

dann noch

Code:
class NochEineKlasse{
    EineKlasse ek = new EineKlasse(this); //<-- uebergibt ein object von sich selbst

}

daher this wie eben dieses oder das hier, oedr das gleiche. super ruft immer den uebergeordneten kontruktor auf. bei dir sieht es start nach dem kontruktor fuer jdialog aus. das bedeuetet soviel wie:

Code:
super(vonWoWirdDerDialogGeoeffnet, derTitelDesDialogs, modalOderNicht);

keine ahnung ob das erstmal hilft...

gruesse
 

Fatal Error

Bekanntes Mitglied
ich hab mal deinen code so geändert wie ich es gemeint hab, vl hilft dir das auch weiter...ich mag die gui programmierung lieber als das "interne".

Code:
class FensterEingabe extends JDialog { 
       
         private static final long serialVersionUID = -4961244315464056255L; 
          
         public FensterEingabe(JFrame f) { // du musst die Variable f ja irgendwo her bekommen 
            super(f,  "Eingabe:", true);
            Container container= Fenster.getContentPane();                      
            GridBagLayout gbl2 = new GridBagLayout();                            
            container.setLayout(gbl2);                                           
             
            this.setResizable(false);                                               
            this.setBounds(400, 200, 600, 500);                      
             
            JButton speichern = new JButton("Speichern und Schließen");                                  
             
            String Text = new String ("Geben Sie hier die Werte ein: \n"); 
                                                                
            JTextArea text = new JTextArea(Text); 

             
            text.setFont(new Font("Verdana", Font.BOLD, 16));                
            text.setBackground(Color.GREEN);                                                                
             
            addComponentHauptfenster (container, gbl2, text, 0, 0, 0, 1, 1, 0); 
             
            addComponentHauptfenster (container, gbl2, wert1,    0, 1, 1, 1, 1, 0); 
            addComponentHauptfenster (container, gbl2, wert1Inhalt, 2, 1, 1, 1, 1, 0); 
             
            addComponentHauptfenster (container, gbl2, wert2,       0, 2, 1, 1, 1, 0); 
            addComponentHauptfenster (container, gbl2, wert2Inhalt, 2, 2, 1, 1, 1, 0); 
             

             
            addComponentHauptfenster (container gbl2, speichern, 0, 3, 0, 1, 1, 0); 
             
           
             
            speichern.addActionListener(new ActionListener() {                
                  public void actionPerformed (ActionEvent e) { 
                   Info.setBackground(Color.GREEN);  // ka habs mal so stehen lassen
                   Ausgeben(); // das auch
                   close(); // statt Fenster.dispose(); ...  würde auch anders funktionieren...
                     
                  }}); 
             
             
            this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); // Da hast du JDialog. vergessen         
            this.setVisible(true);                                  
             
          
            } 

            public void close() {
                this.dispose();
            }
         }

falls jemandem ein fehler auffällt, wartet nicht damit ihn richtig zu stellen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
S Problem mit JDialog AWT, Swing, JavaFX & SWT 3
H JDialog, Modal - Klassenübergreifend => Problem AWT, Swing, JavaFX & SWT 5
O JDialog-JScrollPane-JTable Problem AWT, Swing, JavaFX & SWT 3
T Problem mit JDialog AWT, Swing, JavaFX & SWT 8
Z Swing Problem mit JDialog öffnen AWT, Swing, JavaFX & SWT 10
C Problem mit JDialog und Runtime.getRuntime().exec AWT, Swing, JavaFX & SWT 2
G JDialog.setResizable() - Problem AWT, Swing, JavaFX & SWT 2
I Problem mit JDialog AWT, Swing, JavaFX & SWT 2
J Problem beim Multi-Threading mit einem JDialog AWT, Swing, JavaFX & SWT 2
V JFrame -> JDialog -> JDialog: Problem owner AWT, Swing, JavaFX & SWT 3
G MouseEvent Problem mit JFrame über einen modalen JDialog AWT, Swing, JavaFX & SWT 3
C Schweres Problem mit JDialog und Threads! Anzeige blockiert! AWT, Swing, JavaFX & SWT 5
G Problem mit JDialog-Layout AWT, Swing, JavaFX & SWT 4
P JDialog / JMenue Problem AWT, Swing, JavaFX & SWT 6
E JDialog mit count down timer AWT, Swing, JavaFX & SWT 1
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
A ViewController (IFrame) > Jdialog > Model AWT, Swing, JavaFX & SWT 1
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
L JDialog hat manchmal keinen Inhalt AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
B Eingaben im JDialog abwarten AWT, Swing, JavaFX & SWT 4
S Swing JDialog mit KeyEvent als Rückgabe AWT, Swing, JavaFX & SWT 1
O Swing JDialog öffnen und dann warten bis er geschlossen wurde AWT, Swing, JavaFX & SWT 2
stylegangsta JDialog bestimmte Zeilen kursiv AWT, Swing, JavaFX & SWT 20
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
L KeyListener für JDialog AWT, Swing, JavaFX & SWT 7
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
D Button auf geöffnetem JDialog AWT, Swing, JavaFX & SWT 5
N Definitionen JDialog AWT, Swing, JavaFX & SWT 7
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
N JDialog als Progress-Anzeige AWT, Swing, JavaFX & SWT 6
M JDialog statt JFrame AWT, Swing, JavaFX & SWT 22
I focus an ein jdialog geben AWT, Swing, JavaFX & SWT 3
3 JDialog über einem Vollbildfenster anzeigen AWT, Swing, JavaFX & SWT 5
M JDialog soll JFrame "blockieren" AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
S Jframe aus JDialog starten AWT, Swing, JavaFX & SWT 4
M JDialog übergibt eingaben nicht an aufrufende klasse AWT, Swing, JavaFX & SWT 15
S Assistent im JDialog AWT, Swing, JavaFX & SWT 7
H Swing JDialog cannot be resolved as a typ AWT, Swing, JavaFX & SWT 12
C Swing JDialog "flutet" den Arbeitsspeicher AWT, Swing, JavaFX & SWT 9
S Swing Eigenen JDialog mit Rückgabewert AWT, Swing, JavaFX & SWT 3
C Swing JDialog Ladebildschirm wird nicht angezeit AWT, Swing, JavaFX & SWT 5
Jagson Mit JMenu auf jDialog zurück? Wie? AWT, Swing, JavaFX & SWT 8
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
Jagson Swing Von JDialog zu anderem JDialog wechseln AWT, Swing, JavaFX & SWT 2
S JDialog direkt über dem MainFrame aufpoppen lassen AWT, Swing, JavaFX & SWT 2
A Swing JDialog KeyBindings und Textfelder AWT, Swing, JavaFX & SWT 5
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
D JDialog alwaysOnTop, aber nur innerhalb der Applikation AWT, Swing, JavaFX & SWT 3
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
J Swing JDialog gleichzeitig mit JFrame anzeigen AWT, Swing, JavaFX & SWT 8
S Probleme jDialog einfügen AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
S Schrift ändern in JDialog AWT, Swing, JavaFX & SWT 3
D Elternfenster vom JDialog aktualisieren oder nicht ? AWT, Swing, JavaFX & SWT 7
hdi Swing Genaue Funktionsweise von modalem JDialog? AWT, Swing, JavaFX & SWT 11
U JDialog ohne Taskleiste AWT, Swing, JavaFX & SWT 7
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
X JEditorPane Größe in JDialog automatisch anpassen AWT, Swing, JavaFX & SWT 2
Ollek JDialog Koponenten neu anordnen AWT, Swing, JavaFX & SWT 3
A JDialog AWT, Swing, JavaFX & SWT 10
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
A Frage zu JDialog AWT, Swing, JavaFX & SWT 3
A JDialog ausdrucken AWT, Swing, JavaFX & SWT 7
aze JDialog mit runden ecken AWT, Swing, JavaFX & SWT 8
Dit_ JDialog nur horizontal vergrößern AWT, Swing, JavaFX & SWT 3
C Swing JProgressBar in JDialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
M Swing Vererbung, Probleme mit JDialog AWT, Swing, JavaFX & SWT 12
S Swing Bild (Gif) in Bitte warten JDialog AWT, Swing, JavaFX & SWT 6
U JFrame minimiert nach JDialog, JOptionPane AWT, Swing, JavaFX & SWT 3
K Swing JDialog aus Frame ausrufen AWT, Swing, JavaFX & SWT 2
B JDialog über JFileChooser anzeigen AWT, Swing, JavaFX & SWT 6
B JDialog AWT, Swing, JavaFX & SWT 6
J Swing Probmel mit JDialog (Modal/FocusLost/Button) AWT, Swing, JavaFX & SWT 5
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
F ActionListener von JButton funktioniert mit JFrame aber nicht mit JDialog AWT, Swing, JavaFX & SWT 2
D Mehrere Comboboxen in JDialog AWT, Swing, JavaFX & SWT 2
F JDialog per Button schliessen - klappt nicht AWT, Swing, JavaFX & SWT 4
BattleMaster246 JDialog erscheint in der Taskbar AWT, Swing, JavaFX & SWT 7
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
P Swing eigenen Modalen JDialog AWT, Swing, JavaFX & SWT 6
J JDialog verliert Werte AWT, Swing, JavaFX & SWT 3
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben