Cześć.
Próbuję zrobić aplikację okienkową, która ma dwa buttony(next,back) i w której po kliknięciu buttona zmienia się zawartość na kolejną.
Niestety kiedy tworzę StackPane i dodaję mu kilka dzieciaków to wszystkie są widoczne. Np. labele które są w na tej samej pozycji zlewają się w napis"papkę"
Ktoś działał ze stackPane i wie o co tu chodzi?
- Rejestracja:około 9 lat
- Ostatnio:prawie 4 lata
- Postów:14

- Rejestracja:ponad 10 lat
- Ostatnio:ponad 6 lat
- Lokalizacja:Warszawa
- Postów:293
Przecież właśnie po to istnieje StackPane. StackPane. Stack. Stos. Układasz elementy na stos i patrzysz od góry.
To, co chcesz osiągnąć można zaimplementować za pomocą polimorfizmu. Na ekranie masz jeden Pane - z buttonami oraz drugi - z właściwym contentem. Jeśli twoja sekwencja contentów jest niezmienna, to po prostu tworzysz tablicę/listę z contentami (Pane), a podczas kliknięcia next/back przesuwasz się po tej liście przypisując głównemu content Pane aktualną referencję obiektu z tablicy/listy.
- Rejestracja:około 9 lat
- Ostatnio:prawie 4 lata
- Postów:14
Wiem, że elementy układa się na stos, jednak myślałem, że układając na sobie kilka elementów label nie będą one prześwitywały.
Dzięki za podpowiedź, spróbuję to tak rozwiązać ;)
- Rejestracja:około 9 lat
- Ostatnio:prawie 4 lata
- Postów:14
Udało się ;) Zrobiłem tak:
<BorderPane fx:controller="controller.MainPaneController">
<center>
<Pane fx:id = "contentPane" />
</center>
<bottom>
//Jakieś buttony itd.
</bottom>
</BorderPane>
I teraz w MainPaneController jest obsługa buttonów.
openButton.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event) {
try {
contentPane.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/view/NamePaneView.fxml")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Po kliknięciu do contentPane ładuje się zawartość ze ścieżki.
To teraz biorę się za listę contentów.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.