Rückgabe beim Schließen eines Dialogs

Status
Nicht offen für weitere Antworten.

skaal

Mitglied
wie bewerkstellige ich es, dass mir beim schließen eines dialogs daten zurückgegeben werden, welche im dialog erfasst werden/ einzutragen sind? so wie das auch bei JColorChooser.getColor() läuft.
oder nochmal anders ausgedrückt: sobald ich auf einen bestimmten button drücke soll der dialog verschwinden und die daten zurück ans hauptprogramm gehen, das darauf gewartet hat.
 

Illuvatar

Top Contributor
Mal ein Beispiel aus etwas, das ich gerade mache:

Code:
					}else if (gac.equals(resource.getString("popup4"))){
							class MoveDialog extends JDialog
							{
								public static final long serialVersionUID = 1;
								public MoveDialog ()
								{
									super (Control.this.view, resource.getString("popup4"), true); //Modal
									JComponent cp = new JPanel();
									setContentPane (cp);
									setLayout (new GridLayout (4, 1, 7, 7));
									JLabel jlab = new JLabel (resource.getString("move") + picked.getLocation());
									add (jlab);
									JPanel jpan = new JPanel(new FlowLayout (FlowLayout.LEFT, 5, 0), true);
									spinX = new JSpinner (new SpinnerNumberModel (picked.getLocation().x, -300, 300, .1));
									jpan.add (new JLabel (resource.getString("move2") + " : ("));
									jpan.add (spinX);
									jpan.add (new JLabel ("/")); //öffentliche Variablen
									spinY = new JSpinner (new SpinnerNumberModel (picked.getLocation().y, -300, 300, .1));
									jpan.add (spinY);
									jpan.add (new JLabel ("/"));
									spinZ = new JSpinner (new SpinnerNumberModel (picked.getLocation().z, -300, 300, .1));
									jpan.add (spinZ);
									jpan.add (new JLabel (")"));
									add (jpan);
									JPanel jpan2 = new JPanel (new GridLayout (1, 2, 7, 7));
									JButton exit = new JButton (resource.getString("cancel"));
									jpan2.add(exit);
									JButton ok = new JButton ("OK");
									jpan2.add(ok);
									add (jpan2);
									class MoveDialogListener implements ActionListener
									{
										public void actionPerformed (ActionEvent evt)
										{
											if (evt.getActionCommand().equals("OK")){
												OKPressed = true; //OK
											}
											MoveDialog.this.setVisible (false);
										}
									}
									MoveDialogListener mdl = new MoveDialogListener();
									ok.addActionListener(mdl);
									exit.addActionListener(mdl);
									JButton preview = new JButton (resource.getString("preview"));
									preview.addActionListener(new ActionListener(){
										public void actionPerformed (ActionEvent evt)
										{
											//unwichtig, Vorschaufenster
										}
									});
									add (preview);
									((JComponent)getContentPane()).setBorder (BorderFactory.createEmptyBorder(6, 6, 6, 6));
									pack();
									setLocationRelativeTo (null);
									setVisible (true);
								}
								public boolean OKPressed = false; //Variable ob der Dialog mit OK beendet wurde
								public JSpinner spinX; //öffentliche Variablen zum Abfragen
								public JSpinner spinY;
								public JSpinner spinZ;
							}
							MoveDialog md = new MoveDialog();
							if (md.OKPressed){
								Point3f newloc = new Point3f (
									((Number)md.spinX.getModel().getValue()).floatValue(),
									((Number)md.spinY.getModel().getValue()).floatValue(),
									((Number)md.spinZ.getModel().getValue()).floatValue());
								Control.this.view.actual.actionDone (UndoRedoAction.getMoveInstance(picked, picked.getLocation(), newloc));
								picked.setMindLocation(newloc);
							}else{
								return;
							}
						}

Edit: Ups, wollte Vorschau drücken ;)
Noch die Erklärung:
Ich habe einen Modalen Dialog mit den drei JSpinner-Variablen und einer Variable, die besagt, ob OK gedrückt wurde.
In Zeile 63 kann ich ja davon ausgehen, dass der Dialog schon offen war, weil er ja modal ist.
Im actionPerformed von OK wird die entsprechende Variable verändert. Im weiteren Programmverlauf kann ich dann eben einfach auf die JSpinner Variablen zugreifen.

PS:Diese Klasse verursacht übrigens schöne Namen wie Control$Model$1PopupListener$1MoveDialog$1$2.class ;)
 

skaal

Mitglied
also ein eingabedialog.
aufgerufen in etwa so:
Code:
String str = new Dialog(this,"",true).getInput();

im dialog dann folgende ausführung:
Code:
public class Dialog extends JDialog {

    private JtextField tf = new JTextField();
    private JButton btn = new JButton("schließen");

  public Dialog ( Frame frame , String title , boolean modal ) {
    super(frame,title,modal);

    // komponenten initialisieren
  }

  public String getInput  (  ) {
    show();
    
    // auf klicken des buttons warten

    dispose();
    return tf.getText();
  }

}

das problem ist, dass ich nicht weiß wie ich das warten auf die einagbe bewerkstelligen soll, denn einen zweiten thread über implementieren von Runnable kann ich nicht legen, weil ich die daten nicht rausbekomme ( public VOID run() ). und in der methode extra noch einen initialisieren geht, wenn ich das richtig sehe, auch nicht.
und wenn ich einfach eine schleife lege, die auf eingabe des buttons wartet und ich von diesem eine boolsche variable ändere, an die die schleife gekoppelt ist, leidet die performance.
und die variablen über konstruktor weitergeben ( erst den dialog öffnen und dann das frame ) oder tf public machen, will ich eigentlich nicht.
aber irgendwie muss das ja eigentlich gehen, nur wie?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Eigener Dialog mit Rückgabe -> Warten auf Button AWT, Swing, JavaFX & SWT 3
S Swing JDialog mit KeyEvent als Rückgabe AWT, Swing, JavaFX & SWT 1
F Swing Jcombobox mit manueller Rückgabe AWT, Swing, JavaFX & SWT 4
JavaInBrain Swing Rückgabe aus MouseListener-Klasse AWT, Swing, JavaFX & SWT 3
N jComboBox mit eigenem Renderer und eigenem Datentyp als Rückgabe in einer Tabelle AWT, Swing, JavaFX & SWT 2
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
E Swing Rückgabe eines Wertes aus einem Dialog zu einem Dialog AWT, Swing, JavaFX & SWT 4
E JDialog Rückgabe von Werten AWT, Swing, JavaFX & SWT 2
L DOS-Rückgabe auf einem JPanel ausgeben AWT, Swing, JavaFX & SWT 5
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
G Gui updated beim zweiten Aufruf nicht mehr AWT, Swing, JavaFX & SWT 15
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Kann mir jemand beim MediaPlayer helfen ? AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
steven789hjk543 Swing Verstehe etwas beim GUI nicht AWT, Swing, JavaFX & SWT 3
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
L JSplitPane Divider Location beim Maximieren AWT, Swing, JavaFX & SWT 6
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
Thallius Swing "..." beim JLabel verhindern? AWT, Swing, JavaFX & SWT 3
P Scrollbalken verschwinden beim Zoomen AWT, Swing, JavaFX & SWT 4
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
J JavaFx/SceneBuilder/Felder beim verlassen prüfen AWT, Swing, JavaFX & SWT 1
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
D JavaFX build.fxbuild error beim Erstellen einer exe AWT, Swing, JavaFX & SWT 2
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben