Cześć,
szukam od dłuższego czasu i jakoś znaleźć nie mogę. Potrzebuję zrobić pewną rzecz w gui - dodawanie/usuwanie/edycja pracowników. Dana scena ma wyglądać mniej więcej tak:
Jest sobie scena,na scenie posiadamy aktualną listę pracowników (póki co jest pusta,musimy więc kogoś dodać) oraz ButtonBar'a (dodaj,edytuj,usun) po kliknięciu dodaj,powinno wyskoczyć małe okienko w którym pojawi się kilka textfieldow (przykladowo imie.nazwisko) po wypełnieniu wszystkich pól,wciskamy dodaj,lista się odświeża i mamy pierwszego pracownika,gdy wciśniemy edytuj,powinno nam się wyświetlić tę same okienko co w przypadku dodawania pracownika,tylko że z wypełnionymi polami danego pracownika. Przycisk usuń,oczywiście usuwa pracownika. W jaki sposób mogę to zrobić?
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 7 lat
- Postów:6
0
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 4 lata
- Lokalizacja:Zgorzelec/Görlitz
- Postów:14
0
Cześć @Clod11,
Główna rzecz, którą musisz się podzielić to czy tworzysz GUI w FXML (Scene Builder), czy klepiesz kod JavaFX?
Jeżeli masz GUI w FXMLu to sprawa jest dosyć prosta.
- Dodaj te przyciski, które potrzebujesz i przypisz do nich onAction="#delete" (np dla usuwania pracownika) i odpowiednio w kontrolerze dodaj te metody.
- Do tworzenia pracownika stwórz nową scenę, którą wywołasz na onAction buttona, który jest od dodawania pracownika.
- Kluczową kwestią są PropertyBinding's. Oprócz zwykłych SimpleStringProperty dla tekstów od użytkownika musisz ustawić Binding aktualnie zaznaczonego pracownika, żeby wiedzieć, którego usunąć, czyli:
ObjectProperty<Worker> selectedWorkerProperty = new SimpleObjectProperty();
i po tym już masz aktualnie zaznaczonego pracownika i na nim będzie wykonana metoda delete.
Jeżeli nie masz pojęcia o tym co napisałem, czyli klepałeś kod w czystej Javie aby utworzyć swoje GUI (czyli jesteś jeszcze początkujący w tej technologii), to:
- Stwórz to wszystko tak jak do tej pory to robiłeś w kodzie Javy przy użyciu JavaFX, czyli coś w ten deseń:
Button deleteButton = new Button("Usuń pracownika");
kontenerDoKtóregoMaByćDodanyButton.setCenter(deleteButton); //w przypadku gdy kontener to BorderPane
deleteButton.setOnAction(tutaj usuwa zaznaczonego pracownika);
2. Oczywiście ważna jest scena do tworzenia pracowników. To po prostu stwórz nową scenę i dodaj ją do onAction na buttonie, który jest od tworzenia nowego pracownika.
I teraz co do edycji to sprawa jest dosyć prosta. Otwierasz okienko do tworzenia pracownika, tylko od razu z wpisanymi wartościami od zaznaczonego pracownika. Kluczowe jest to, żeby nie tworzyć nowego pracownika w okienku edycji, tylko przekazać obiekt aktualnie zaznaczonego pracownika, żeby go zmienić. Czyli można po prostu przekazać objekt zaznaczonego pracownika i setterami zmienić wartości przy kliknięciu "Zapisz" w okienku edycji.
W razie pytań pisz!
Pozdrawiam,
adaszewski95