ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1322
1322
EMPFEHLEN
-
10.12.11 00:37 #1
- Registriert seit
- Jul 2011
- Beiträge
- 2
Hi,
ich möchte mir eine eigene Klasse für einen JDialog erstellen den ich extern
benutzten kann.
Wie kann ich beim Klick auf den Ok Button die eingegebenen Werte an die
aufgerufene Klasse zurückgeben
Wenn ich den Dialog in der Klasse erstellen in der ich ihn benutze ist
das alles kein Problem.
Ich würds gern als eigenständige Klasse machen den ich in jeden Prog benutzen kann.
Ähnlich dem JOptionPane nur das ich ihn freier gestallten kann.
Vielen Dank für die Hilfe
Solidus
-
10.12.11 09:52 #2
Reicht dir denn der InputDialog von JOptionPane nicht aus? Du kannst da ein Icon angeben, den Titel und die Nachricht setzen und bekommst auch den eingegebenen Text zurück. Mehr will man doch von so einem InputDialog nicht, eigentlich bräuchte man nicht einmal das Icon.
Naja, sowas zu basteln ist aber auch nicht sonderlich schwer. Der Trick dabei ist, dass der Dialog modal sein muss, damit das Programm an der Stelle hängen bleibt und sobald der Dialog zerstört wird, läuft das Programm weiter.
Hab da mal ein einfaches Beispiel zur Veranschaulichung gebastelt:
Wie du siehst, kannst du den Dialog gestalten, wie du lustig bist und genauso auch machen, was du willst.Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
package de.tutorials.forum.help.solidus0815.dialogs; import java.awt.Dialog.ModalityType; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.GridLayout; import java.awt.Window; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JTextField; public class MyDialogs { public static String showInputDialog(Window owner, String message, String title) { final JDialog dialog = new JDialog(owner, title, ModalityType.APPLICATION_MODAL); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); JLabel messageLabel = new JLabel(message); JTextField inputTextField = new JTextField(); JButton okButton = new JButton("OK"); okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dialog.dispose(); } }); dialog.setLayout(new GridLayout(3, 1)); dialog.add(messageLabel); dialog.add(inputTextField); dialog.add(okButton); dialog.setSize(350, 100); dialog.setLocationRelativeTo(null); dialog.setVisible(true); return inputTextField.getText(); } }
Testen kannst du das dann z.B. so:
Da siehst du auch, dass es erst weiter geht, wenn man den Dialog zerstört hat. Das passiert z.B. beim Klick auf den OK-Button. Leider auch beim Klick auf den Schließen-Button des Dialogs, das müsste dann abgefangen werden. Aber wie gesagt, dient ja eigentlich auch nur der Vernaschaulichung und mehr nicht.Geändert von Akeshihiro (10.12.11 um 09:55 Uhr)
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
-
10.12.11 11:27 #3
- Registriert seit
- Jul 2011
- Beiträge
- 2
Ok vielene dank,
damit wär das Rätsel gelöst, dann war es wohl komplett unnötig die eingaben erst bei
actionPerformed abzufragen.
Der Grund warum ich einen eigenen erstellen will ist das ich bei JOptionPane im Design
sehr eingeschränkt bin, wenn ich mehrere Eingabefelder einbauen will.
Außerdem lassen sich da die Buttons nicht ändern.
Und eigenen bauen ist mit dem jetzigen Hinweis auch nich mehr schwer
mfg
Solidus
-
10.12.11 12:10 #4
Kann es sein, dass das auf eine Art Formular hinaus läuft?
Wie gesagt, der Trick dabei ist einfach, dass der Dialog einfach modal geschaltet sein muss, dann ist das auch kein Problem, man kann sich dann also austoben, wie man Lust hat. Ansonsten kann man sich auch die Klasse JOptionPane anschauen, die Sources sind ja frei verfügbar. Ist sicherlich auch sehr lehrreich.Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
Ähnliche Themen
-
Index als Rückgabe von JList in einem InputDialog
Von Fesco im Forum JavaAntworten: 2Letzter Beitrag: 04.01.11, 22:36 -
JDialog mit ESC schliessen
Von Dox im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 10Letzter Beitrag: 27.09.08, 22:17 -
JDialog schließen
Von xxTejaxx im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 16Letzter Beitrag: 01.04.08, 10:32 -
[SWT-Snippet] InputDialog mit dynamischer Anzahl von Feldern
Von SNOWMAN-X im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 02.02.08, 21:59 -
JDialog in DinA4 Format erstellen
Von Patriot2k im Forum JavaAntworten: 0Letzter Beitrag: 02.04.07, 15:09





Zitieren
Login





