VaterFrame des modal-Dialogs beklickbar

Status
Nicht offen für weitere Antworten.

julchen81

Bekanntes Mitglied
Hallo,

ich habe eine Fenster mit Textfeldern erstellt.
Der Benutzer darf nur Double-Werte eingeben. Um das zu überprüfen, benutze ich Double.parseDouble (TextfeldInhalt)

Jetzt mache ich folgendes:
Code:
try {
    Aufruf der Methode, die überprüft, ob Double-Wert im Textfeld ist (beinhaltet Double.parseDouble...)
} catch (NumberFormatException nfe) {
    WrongInput wi = new WrongInput(gui, "Falsche Eingabe", true);
    wi.setVisible(true);
}

Falls sich also kein Double-Wert im Textfeld befindet, soll ein Hinweis-Dialog "wi" geöffnet werden. Natürlich soll dann das Vaterfenster nicht mehr 'beklickbar' sein, deshalb boolean modal auf true gesetzt beim Erzeugen dieses Dialogs.

Warum aber kann ich trotzdem noch auf den Button des Vaterfensters klicken, wenn gleichzeitig der Hinweis-Dialog geöffnet ist??

LG Julia
 
M

MiDniGG

Gast
Zeig doch ma bitte die Klasse "WrongInput"

Warum nimmst nicht einfach nen JOptionPane? Is doch so wie es aussieht eh nur ein Hinweis ( ...showMessageDialoge(..); )
 

julchen81

Bekanntes Mitglied
Warum ich keine JOptionPane hergenommen habe? Ich habe nach einem Fenster gesucht, und dachte, dass JDialog da ganz passend sei... vielleicht gibt's ja auch besseres...

Hier mal der Code von WrongInput:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class WrongInput extends JDialog {
	
	public WrongInput (JFrame GUI, String title, boolean modal) {
		
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent ev) {
				System.exit(0);
			}
		});
		
		GridBagLayout gbl = new GridBagLayout();
		setLayout (gbl);
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.insets = new Insets(10, 5, 5, 5);
		
		gbc.gridwidth = GridBagConstraints.REMAINDER;
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbc.fill = GridBagConstraints.CENTER;
		JLabel lbl = new JLabel ("Fehler!");
		gbl.setConstraints(lbl, gbc);
		add(lbl);
		
		gbc.gridwidth = GridBagConstraints.REMAINDER;
		gbc.gridx = 0;
		gbc.gridy = 1;
		gbc.fill = GridBagConstraints.CENTER;
		lbl = new JLabel ("Unerlaubte Eingabe");
		gbl.setConstraints(lbl, gbc);
		add(lbl);
		
		gbc.gridx = 2;
		gbc.gridy = 2;
		JButton bt = new JButton("OK");
		bt.addActionListener(new WIAction(this));
		gbl.setConstraints(bt, gbc);
		add(bt);

		setLocation(650, 450);
		pack();
	}
	
}

LG Julia
 
S

SlaterB

Gast
> deshalb boolean modal auf true gesetzt beim Erzeugen dieses Dialogs.

tja, dieser Wert kommt auch im Konstruktor
public WrongInput (JFrame GUI, String title, boolean modal) {
an,
aber wird dort nicht benutzt! soll Java von Zauberhand auslesen,
dass du den Dialog modal haben willst?
wie genau soll sich ein Wert true/ false denn auswirken?

du musst
super(GUI, title, modal); am Anfang des Konstruktors aufrufen,
damit der Konstruktor von JDialog das mitbekommt,
ansonsten wird der Standard-Konstruktor super() aufrufen,
so als würdest du einen new JDialog() erzeugen, welcher dann nicht modal ist
 

julchen81

Bekanntes Mitglied
Ich hatte gedacht, wenn ich
WrongInput wi = new WrongInput(gui, "Falsche Engabe", true);
befehle, dann wird hier dieses 'true' übernommen... "Falsche Eingabe" steht ja schließlich auch im Titel.

ich seh mir das morgen noch mal genauer an, geh jetzt in den Feierabend ;-)

Aber dickes Danke für eure (ausführlichen) Erläuterungen!

Ohne dieses Forum würd' ich noch sonst wo rumwursteln...

LG Julia
 
M

MiDniGG

Gast
Aha. Jetzt frag ich mich, für was du diese 3 Sachen: JFrame GUI, String title, boolean modal übergibst. Du benutzt sie ja gar nicht... Von dem her wird natürlich auch "ignoriert" was im modal steht...

Ich bin immernoch für den JOptionPane... ;-)

Sorry für den Post.... :( Aba hier ist das I-Net grad so lahm... Konnte nicht sehn, dass doch schon so viele Antworten da waren ^^
 

julchen81

Bekanntes Mitglied
Muss mich noch kurz korrigieren:
der Titel wird ja doch nicht übernommen, nur mit super (GUI, title, true).

Jetzt aber ciao :wink:
Julia
 

julchen81

Bekanntes Mitglied
und ich bin nach einem kurzen Blick in die Definition auch für JOptionPane :D

Aber das dann endgültig morgen.

Julia
 

Quaxli

Top Contributor
Noch ein Hinweis. Dieses Stück Code:

Code:
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent ev) {
            System.exit(0);
         }
      });

geht auch kürzer:

Code:
  setDefaultCloseOperaiton(JDialog.EXIT_ON_CLOSE);
 

L-ectron-X

Gesperrter Benutzer
Quaxli hat gesagt.:
setDefaultCloseOperaiton(JDialog.EXIT_ON_CLOSE);
Dieses Element gibts nicht!
Aber dieses:
Code:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


Und für JDialoge z.B.:
Code:
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
 

julchen81

Bekanntes Mitglied
Hallo!

Mal zwischendrin:
vielen Dank für eure Tipps!
Ich muss zwar gerade an anderer Stelle programmieren, werde mich aber nächste Woche noch mal über eure Anweisungen beugen.

Schönes Wochenede!
Julia
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Maximieren des Application-Modal Popup-Dialoges+Parent AWT, Swing, JavaFX & SWT 1
I Modal Window AWT, Swing, JavaFX & SWT 26
E Swing Dialog modal aufrufen AWT, Swing, JavaFX & SWT 2
S Swing Mehrere Modal-Dialoge übereinander AWT, Swing, JavaFX & SWT 5
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame modal setzen? AWT, Swing, JavaFX & SWT 13
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
T JPopup modal machen AWT, Swing, JavaFX & SWT 2
W SWT keybinding ESC bzw. [x] bei Shell (modal) AWT, Swing, JavaFX & SWT 2
H JDialog, Modal - Klassenübergreifend => Problem AWT, Swing, JavaFX & SWT 5
J Swing Probmel mit JDialog (Modal/FocusLost/Button) AWT, Swing, JavaFX & SWT 5
K JDialog zeigt keine Komponenten wenn es modal ist AWT, Swing, JavaFX & SWT 2
G JDialog Modal? AWT, Swing, JavaFX & SWT 1
C modal ignorieren? AWT, Swing, JavaFX & SWT 3
S "normales" Fenster als modal einstellen AWT, Swing, JavaFX & SWT 2
G JPanel setEnabled modal AWT, Swing, JavaFX & SWT 3
megachucky JInternalFrame modal setzen AWT, Swing, JavaFX & SWT 3
E JFrame soll Modal sein! AWT, Swing, JavaFX & SWT 4
F Dialog (JOptionPane) modal machen AWT, Swing, JavaFX & SWT 3
G Non-Modal JFileChooser erzeugen AWT, Swing, JavaFX & SWT 10
Luma JDialog anpassen unmöglich / JFrame modal machen? AWT, Swing, JavaFX & SWT 10
R JFrame modal machen? AWT, Swing, JavaFX & SWT 3
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
M Swing Rahmengröße des Frames/Dialogs AWT, Swing, JavaFX & SWT 3
H Problem mit der Größe eines Dialogs mit ExpandBar AWT, Swing, JavaFX & SWT 2
K Automatisches schliessen eines Dialogs AWT, Swing, JavaFX & SWT 4
S Default Button in Dialogs(Ok und Cancel) AWT, Swing, JavaFX & SWT 4
S Rückgabe beim Schließen eines Dialogs AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben