코드는 JavaFX로 작성되었습니다.왜 getBoundsInLocal 좌표가 잘못 되었습니까?
나는 루트 패널과 VBox
이 있습니다. VBox
에는 작은 패널이 많이 있습니다.
VBox
에 하나의 작은 패널을 추가하려면 버튼을 클릭하고 새 패널에 메시지 대화 상자가 나타납니다.
button.setOnAction(() -> {
Node selectPanel = new Node();
vbox.getChildren().add(selectPanel);
Bounds bounds = selectPanel.localToScreen(selectPanel.getBoundsInLocal());
showMessage(bounds);
});
그러나 새 패널의 위치에는 메시지가 표시되지 않습니다.
코드를 디버그하고 경계가 루트 패널 (또는 vbox)의 왼쪽 상단인지 확인합니다. 누군가 새로운 패널의 올바른 좌표를 얻는 방법을 말해 줄 수 있습니까?
'Node'이 추상적이다 '그래서 노드 selectPanel = 새로운 노드() :
당신은 언급 행 다음에 다음 두 명령문을 실행하여 강제 할 수 있습니다 자신의'Node' 클래스. 그리고 람다 식은 아무런 논점도 없기 때문에 잘못되었습니다. 컴파일하는 코드 만 게시하십시오. – DVarga