Add & entfernen JTextField zur Laufzeit in Java(Schaukeln) Programm
hinzufügen und entfernen von Komponenten(JButons , JTextField usw.), die zur Laufzeit in einem Swing-Programm (Java ) , ohne Verwendung von NetBeans ? welches Layout soll ich verwenden ?
Ich möchte den Benutzer zum eingeben von Benutzername & Passwort und , wenn er klickt auf Absenden-button , wird der neue Bildschirm mit neuen Komponenten(JButtons , JTextField usw.) erscheinen soll , ich bin nicht in der Lage zu erreichen, den übergang zur Laufzeit.
- Ich habe laufen in dieses problem vor und alle Antworten bisher scheinen gut zu mir; ich habe Sie alle in verschiedenen Szenarien.
- Gegeben, dass er speziell ist die Schaffung eines Benutzernamen - /Passwort-panel, ich würde nicht wählen Sie eine der Lösungen, die Einbeziehung der Wiederverwendung von dieser gleichen panel für andere Zwecke. Es ist einfach schlechtes design Praxis. Ich konnte denken Sie an andere Situationen, in denen ein panel wiederverwendet werden konnte, aber nicht diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie möchten zwei verschiedene panels, um dieses Ergebnis zu erreichen. Es ist nicht eine gute Idee, verwenden Sie die Rückseite und entfernen Sie alle ersten Komponenten, und fügen Sie alle von der zweiten.
Machen ein LoginPanel Klasse, die aus legt die Benutzername-und Passwort-Felder, labels, und-senden-Schaltfläche. Dann, wenn der submit-button gedrückt wird, nach dem login authentifiziert ist, verstecken login-panel und display ein neues panel mit dem layout, das Sie möchten für den nächsten Bildschirm.
Diese Art von Ansatz macht es viel einfacher zu halten die beiden Platten, und deutlich trennt, Ihre layouts und Funktionalität von einander.
Können Sie center diese neuen Rahmen, die über das bisherige panel, mit diesem code:
Anderen Ansatz zu nennen
setVisible(false)
auf die spezifische Komponente, wenn Sie wünschen, es zu verbergen.In den Fällen, wo ich Sie haben wollte hinzufügen/entfernen eines gesamten sub-panel, das ich verwendet habe, die folgenden:
Den Sie anrufen möchten, die letzten beiden Methoden, wenn Sie Komponenten hinzufügen/entfernen.
Ein Ansatz wäre, die Nutzung
CardLayout
. Ihre login-button-handler würde überprüfen Sie die Anmeldeinformationen und verwendenshow()
zu offenbaren, den zweiten Bereich.Nachtrag: Für Sicherheit, erwägen Sie die Verwendung
JPasswordField
für das Passwort; für die Bequemlichkeit, consdiersetLocationRelativeTo()
für die Positionierung des Rahmens.Window#show()
: download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/...könnte man eine neue Klasse erstellen, für z.B. gerne MyFrame Dank diesem extends JFrame, dass rapresetns Ihre neuen Fenster, im Konstruktor der Klasse müssen Sie auf das contentpanel Ihr alle contolr....
in dieser Weise kann man einem jbutton zu Ihrem JFrame.
nach der Anmeldung könnten Sie Ihre neue Bild in dieser Art und Weise: