JavaFX - Objekt an neue Stage übergeben

SteffiBee

Mitglied
Hallo Zusammen,

ich versuche derzeit ein Programm für eine Mitarbeiterverwaltung zu erstellen.

Dort kann ich durch Klick auf einen Mitarbeiter aus der Liste mir diesen auch anzeigen lassen.
Ebenso wird dort durch Klick auf "Facharbeiter zufügen" bzw. "Hilfsarbeiter zufügen" eine neue
View geöffnet, in der ich einen neuen Mitarbeiter anlegen kann.

Probleme macht mir der Menü-Punkt "Mitarbeiter bearbeiten".
Ich möchte durch Klick auf einen Mitarbeiter aus der Liste diesen wie gehabt anzeigen lassen
und durch einen weiteren Klick auf den darunter liegenden Button den Mitarbeiter bearbeiten.

Ich habe keine Ahnung, wie ich den ausgewählten Mitarbeiter mit seinen Attributen der
sich dann öffnenden View übergeben soll.
Ich weiß, dass ich die Textfelder mit getVorname() etc. füllen kann, aber eben nicht, wie der Mitarbeiter
aus der Liste übergeben wird.

Ich würde gerne die jeweiligen Views zum Anlegen eines Mitarbeiters (Facharbeiter und Hilfsarbeiter sind getrennt)
wiederverwenden. Nur dann eben mit den vordefinierten Werten des gewählten Mitarbeiters. Geht das?

Folgende Methode nutze ich zur Anzeige eines selektierten Mitarbeiters:

Java:
[/B]
list.getSelectionModel().selectedItemProperty()
                .addListener((ChangeListener<? super Mitarbeiter>) new ChangeListener<Mitarbeiter>() {

                    @Override
                    public void changed(ObservableValue<? extends Mitarbeiter> observable, Mitarbeiter oldValue,
                            Mitarbeiter newValue) {
                        text.setText(newValue.drucke());
                    }
        });
[B]

Und mit der Methode öffne ich die jeweilige View zur Neuanlage:

Java:
[/B]
facharbHinzu.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                FacharbeiterView viewF1 = new FacharbeiterView(primaryStage, new Facharbeiter(), mitarbeiterliste, obliste);
                viewF1.showView();
            }
        });
[B]

Ich weiß leider nicht, welchen Code Ihr noch benötigt, um eventuell zu helfen.
Kann ich aber ohne Weiteres posten.

Danke im Voraus und Liebe Grüße
Steffi
 

mihe7

Top Contributor
Wenn ich Dich richtig verstanden habe, musst Du doch lediglich beim Erstellen der FacharbeiterView den ausgewählten Mitarbeiter (list.getSelectionModel().getSelectedItem()) als Parameter mitgeben.
 

SteffiBee

Mitglied
Ja, aber irgendwie bekomme ich das nicht hin 😞. Im Übrigen muss noch der Status abgefragt werden, je nachdem ob Facharbeiter oder Hilfsarbeiter muss die dementsprechende Stage geöffnet werden.
 

mihe7

Top Contributor
Ja, aber irgendwie bekomme ich das nicht hin
Warum nicht? Du hast doch list und per list.getSelectionModel().getSelectedItem() erhältst Du den ausgewählten Mitarbeiter und den übergibst Du an den Konstruktor von FacharbeiterView (den musst Du natürlich anpassen).

Im Übrigen muss noch der Status abgefragt werden, je nachdem ob Facharbeiter oder Hilfsarbeiter muss die dementsprechende Stage geöffnet werden.

Naja, wenn Du den Mitarbeiter hast, kannst Du ja problemlos dessen Status abrufen, oder?


Zeig mal den Code.
 

SteffiBee

Mitglied
Hey.
Hab es jetzt so versucht, aber das funktioniert auch nicht.
Er zeigt zwar keinerlei Fehler, aber er öffnet einfach das Fenster nicht.


Java:
[/B]
mabearbeiten.setOnAction(new EventHandler<ActionEvent>() {
          
             @Override 
             public void handle(ActionEvent event) {
                 list.getSelectionModel().selectedItemProperty()
                     .addListener((ChangeListener<? super Mitarbeiter>) new ChangeListener<Mitarbeiter>() {
          
                         @Override 
                         public void changed(ObservableValue<? extends Mitarbeiter>
                             observable, Mitarbeiter oldValue, Mitarbeiter newValue) { 
                                 if (newValue.getStatus().equals("Facharbeiter")) { 
                                     FacharbeiterView viewF1 = new FacharbeiterView(primaryStage, newValue, 
                                             mitarbeiterliste, obliste); 
                                     viewF1.showView(); 
                                 } 
                         } 
                 }); 
            } 
        });
[B]

Der Konstruktor dazu sieht so aus:

Java:
[/B]
public FacharbeiterView(Stage primaryStage, Mitarbeiter mitarbeiter, Mitarbeiterliste mitarbeiterliste,
            ObservableList<Mitarbeiter> obliste) {
        super(primaryStage, mitarbeiterliste, obliste);
        this.facharbeiter = (Facharbeiter) mitarbeiter;
}
[B][B]
[/B]

Ich hab jetzt noch keine Textfelder oder so zugewiesen.
Wollte erstmal nur wissen, ob er mir die Stage dann öffnet.
Aber das funktioniert schon nicht.
 

SteffiBee

Mitglied
Habe es jetzt mal umgebaut:

Java:
[/B]
list.getSelectionModel().selectedItemProperty()
                .addListener((ChangeListener<? super Mitarbeiter>) new ChangeListener<Mitarbeiter>() {

                    @Override
                    public void changed(ObservableValue<? extends Mitarbeiter> observable, Mitarbeiter oldValue,
                            Mitarbeiter newValue) {
                        maAnzeigen.setText(newValue.drucke());
                        
                        mabearbeiten.setOnAction(new EventHandler<ActionEvent>() {
                              
                             @Override 
                             public void handle(ActionEvent event) {
                                 
                                 if (newValue.getStatus().equalsIgnoreCase("Facharbeiter")) { 
                                         FacharbeiterView viewF1 = new FacharbeiterView(primaryStage, newValue, 
                                                 mitarbeiterliste, obliste); 
                                         viewF1.showView(); 
                                     } 
                                 else if (newValue.getStatus().equalsIgnoreCase("Hilfsarbeiter")) { 
                                         HilfsarbeiterView viewF1 = new HilfsarbeiterView(primaryStage, newValue, 
                                                 mitarbeiterliste, obliste); 
                                         viewF1.showView(); 
                                     } 
                             
                        }
[B]

Daraufhin schmeißt er mir ne NullPointerException. Und zwar hier: if (newValue.getStatus().equalsIgnoreCase("Facharbeiter"))
 

Trjavnamen

Bekanntes Mitglied
Die Blöcke beginnen doch mit
Java:
[B]
list.getSelectionModel().selectedItemProperty()
                .addListener((ChangeListener<? super Mitarbeiter>) new ChangeListener<Mitarbeiter>() {

                    @Override
                    public void changed(ObservableValue<? extends Mitarbeiter> observable, Mitarbeiter oldValue,
                            Mitarbeiter newValue) {
                        maAnzeigen.setText(newValue.drucke());
                        
                        mabearbeiten.setOnAction(new EventHandler<ActionEvent>() {
                              
                             @Override
                             public void handle(ActionEvent event) {
                                
                                 if (newValue.getStatus().equalsIgnoreCase("Facharbeiter")) {
                                         FacharbeiterView viewF1 = new FacharbeiterView(primaryStage, newValue,
                                                 mitarbeiterliste, obliste);
                                         viewF1.showView();
                                     }
                                 else if (newValue.getStatus().equalsIgnoreCase("Hilfsarbeiter")) {
                                         HilfsarbeiterView viewF1 = new HilfsarbeiterView(primaryStage, newValue,
                                                 mitarbeiterliste, obliste);
                                         viewF1.showView();
                                     }
                            
                        }
[/B]
" Umgekehrt sind sie leer oder?
 

SteffiBee

Mitglied
Was meinst Du mit umgekehrt?
Habe es grob jetzt erstmal hinbekommen.
Nur das Geburtsdatum funktioniert noch nicht ganz im DatePicker.
Geht irgendwie nur mit setPromptText. Dann wird es nur schwach grau angezeigt. Wie ein Platzhalter
 
K

kneitzel

Gast
Nur das Geburtsdatum funktioniert noch nicht ganz im DatePicker.
Geht irgendwie nur mit setPromptText. Dann wird es nur schwach grau angezeigt. Wie ein Platzhalter
setPromptText setzt den Text, der als Information dienen soll, was in das Feld gehört, der grau angezeigt wird, wenn das Feld leer ist.

Willst Du das Geburtsdatum in dem DatePicker Control anzeigen / ausgewählt haben? Dann wäre vermutlich setValue die Methode, die Du aufrufen willst. (Kommt von ComboBoxBase und verlangt ein LocalDate (DatePicker ist abgeleitet von ComboBoxBase<LocalDate> daher ist T in der Dokumentation LocalDate).

Ist auch in der Beschreibung der Klasse so angegeben worden:
The value property represents the currently selected LocalDate. An initial date can be set via the constructor or by calling setValue(LocalDate). The default value is null.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Netbeans mit JavaFX, FXML und Scenebuilder Java Basics - Anfänger-Themen 11
Juelin javaFX mit Elementen Java Basics - Anfänger-Themen 6
Juelin Netbeans und javafx Java Basics - Anfänger-Themen 6
M Wo den Ordner javafx-sdk-21.0.2 unter Linux ablegen? Java Basics - Anfänger-Themen 5
A Kapazität JavaFX TextField Java Basics - Anfänger-Themen 4
L JavaFX - grundlegende Verständnisprobleme Java Basics - Anfänger-Themen 1
S JavaFX Java Basics - Anfänger-Themen 1
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
A JavaFX Toggle_Button_Disable Java Basics - Anfänger-Themen 2
ac83 JavaFX - Kompilierungsproblem Java Basics - Anfänger-Themen 1
R Intellij javafx --> jar Java Basics - Anfänger-Themen 11
O Compiler-Fehler JavaFX fmxl LoadExeption Java Basics - Anfänger-Themen 4
M Javafx Timeline Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
A JavaFX-Filechooser Java Basics - Anfänger-Themen 5
H JavaFX Hintergrundfarbe ändern, warten, Hintergrundfarbe wieder ändern Java Basics - Anfänger-Themen 34
A JavaFx - SceneBuilder Java Basics - Anfänger-Themen 5
G Javafx Eventhandler zu jedem Node Java Basics - Anfänger-Themen 1
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
T HTMLEditor JavaFX Java Basics - Anfänger-Themen 4
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
R Umsetzungsplan JavaFx App Java Basics - Anfänger-Themen 9
M JavaFX- Verschiedene Stages Java Basics - Anfänger-Themen 1
P JavaFx einrichten Java Basics - Anfänger-Themen 6
Torsten.E JavaFX mit Visual Studio Code verwenden Java Basics - Anfänger-Themen 1
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
T Javafx ListView kann nicht gefüllt werden. Java Basics - Anfänger-Themen 6
D JAVAFX WebVIEW zu JSOUP Java Basics - Anfänger-Themen 3
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
S JavaFX-Arduino Kommunikation mit LCD-Anzeige Java Basics - Anfänger-Themen 0
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J javafx mediaplayer mit https Java Basics - Anfänger-Themen 3
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
D Ausführbare jar/exe aus JAVAFX Projekt erstellen (IntelliJ) Java Basics - Anfänger-Themen 14
O JavaFX XML Versuch Java Basics - Anfänger-Themen 2
O JavaFX Java Basics - Anfänger-Themen 7
M JavaFX-Übung Autospiel Java Basics - Anfänger-Themen 4
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
L Klassen NFC Reader und JavaFx Problem -> threads? Java Basics - Anfänger-Themen 2
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
L JavaFx ListView rechts abgeschnitten Java Basics - Anfänger-Themen 0
I Javafx Tabpane Reiter blockieren Java Basics - Anfänger-Themen 1
S JavaFX Beginneraufgabe Java Basics - Anfänger-Themen 1
W JavaFX import Fehler/Zellularautomaten Java Basics - Anfänger-Themen 1
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
CptK mit javafx button erstellen Java Basics - Anfänger-Themen 1
U Javafx Array aus Buttons Java Basics - Anfänger-Themen 2
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
K Erste Schritte JavaFX - wie von "externer" Klasse auf Methoden des Controllers zugreifen Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
D JavaFX, Verweis auf Datei im Projekt Java Basics - Anfänger-Themen 0
M JavaFX in Swing-Applikationen einbetten Java Basics - Anfänger-Themen 5
M JavaFX: Problem mit der TableView Java Basics - Anfänger-Themen 0
P JavaFX ohne FXMLLoader Java Basics - Anfänger-Themen 3
K JavaFX UI controls Java Basics - Anfänger-Themen 1
B Farbverlauf erstellen ohne Javafx, AWT usw.? Java Basics - Anfänger-Themen 34
H Best Practice JavaFX TableView mit Zell-Rahmen anstelle von Zeilen-Balken Java Basics - Anfänger-Themen 1
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
K Threads Multithread in JavaFx Java Basics - Anfänger-Themen 11
R Threads in JavaFX Java Basics - Anfänger-Themen 3
N JavaFX - (Controller) - Klasse verkleinern Java Basics - Anfänger-Themen 8
U JavaFX eine Vbox Instanz pro Pane? Java Basics - Anfänger-Themen 2
Spencer Reid JavaDoc zu JavaFx hinzufügen Java Basics - Anfänger-Themen 1
V wie kann man am einfachsten für ein Element der JavaFX die Umrandung aktiwieren ? auch ohne css ? Java Basics - Anfänger-Themen 4
D OOP JavaFX objektorientiert Java Basics - Anfänger-Themen 2
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
P JavaFX - Komponenten skalieren Java Basics - Anfänger-Themen 16
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
P JavaFX TextArea.setText Java Basics - Anfänger-Themen 13
F javafx.fxml.LoadException: Root hasn't been set. Java Basics - Anfänger-Themen 0
J JavaFX aus Java-Application heraus starten Java Basics - Anfänger-Themen 7
T Swing, SWT oder JavaFX Java Basics - Anfänger-Themen 8
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4
D Javafx XYChart Variable in Schleife erzeugen? Java Basics - Anfänger-Themen 18
E JavaFX und Java auf Kommandozeile compilen Java Basics - Anfänger-Themen 2
J Webanwendung JavaFX Java Basics - Anfänger-Themen 4
Povlsen84 [javafx] Zusammenarbeit mit Tomcat Java Basics - Anfänger-Themen 4
krgewb Über Objekt, das Objekte desselben Typs enthält iterieren Java Basics - Anfänger-Themen 5
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9

Ähnliche Java Themen


Oben