JavaFX StackPane Dlaczego panele przez siebie prześwitują?

0

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?

0

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.

0

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ć ;)

0

Być może to czego potrzebujesz to po prostu TabPane?

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1