당신은 항상 selectedTab.getContent()
를 호출 한 다음 오른쪽 요소에 도달 할 때까지 장면 그래프 계층 구조를 통해 아래로 탐색 할 수 있습니다. 예 : 당신의 탭의 내용이 BorderPane
하고 WebView
중심에있는 경우 당신이 그래도 꽤 추한 코드
BorderPane selectedBorderPane = (BorderPane) selectedTab.getContent();
WebView selectedWebView = (WebView) selectedBorderPane.getCenter();
을 할 수 있고, 당신은 당신이 의미 레이아웃을 언제든지 변경, 재 작성해야 할 것이다 당신의 응용 프로그램을 유지하기가 어려워집니다.
더 좋은 방법은 적절한 범위 (탭 패널을 표시하는보기의 컨트롤러 또는 Java의 레이아웃을 수행하는 경우이를 포함하는 클래스)에서 현재 변수에 대한 변수를 만드는 것입니다 웹보기 : 당신은 웹보기가 포함 된 새 탭을 만들 때마다
private WebView currentWebView ;
그런 다음에 리스너를 추가 탭의 selectedProperty
:
Tab tab = new Tab(...);
// ...
WebView webView = new WebView(...);
// ... layout, etc tab content, etc...
tab.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> {
if (isNowSelected) {
currentWebView = webView ;
}
});
지금 currentWebView
는 항상 현재 표시된 웹보기를 참조합니다. 시작시 표시되는 첫 번째 웹보기로 초기화해야합니다.