2013-09-03 2 views
6

현재 시간을 보여주는 줄이있는 타임 라인을 만들어야합니다. ScrollPane에 추가 된 선이있는 AnchorPane을 사용하고 있습니다. 1 일 시뮬레이션해야하며 scrollpane 너비는 (2880px, 매 60px는 1 시간)입니다. 내 한계는 (전날 12 시간, 다음 날 12 시간)입니다. 줄 바꿈이 잘되어 가고 있습니다.JavaFX ScrollPane을 스크롤하여 뷰 포트의 중간에 노드를 갖게하는 방법은 무엇입니까?

내가해야 할 일은 뷰 포트 중간에 라인을 설정하고 그 아래에 컨텐츠를 이동시키는 것입니다.

scrollPane.setHvalue(line.getStartX() - anchorPane.width); 

그것은 "종류 벌금"노력하고 있습니다 : 라인을 이동하는 동안 나는이 방법을 사용하고 있습니다. 콘텐츠가 이동 중이지만 줄이 이동 중입니다. 라인이 0시 (위치는 0.25로 설정)이고 위치가 (0.75) 24 시간이면 완료됩니다. 나는 또한 나의 타임 라인 축 Y를 확장하고있어 그래서

/* where line position is calculate by scale, scale is x2, x3, x4.... */ 
scrollPane.setHvalue(line.getStartX() - anchorPane.width * scale); 

시간 동안 imgs를 참조하십시오 0시 12시, 24시 ... 올바른 라인 위치는 12시입니다. 어떻게 라인의 위치를 ​​설정하는 함수를 수정하려면? 12:00 24:00

+0

간단히 말해서, 녹색 선은 현재 시간을 나타내며 타임 라인 그래프가 오른쪽에서 왼쪽으로 흐르는 동안 스크롤 패널 중간에서 항상 동일한 위치에 머물러 있기를 원합니다. 맞아? –

+0

네, 정확히는 ...이 패널을 초록색 선 아래로 옮기고 싶습니다. (상단 축은 그것을 묶어 둔다) – kingkong

+0

어떤 생각? 어떤 도움? – kingkong

답변

0

나는 확실히 당신의 질문을 이해한다면 나도 몰라합니다. 나에게 보이는 것은 그 위에 녹색 선의 노드가있는 스크롤 창이있는 것 아닌가요? 그렇다면 ...

녹색 선이 노드 인 경우 스크롤 창 (hvalue, i belive)의 표시 값에 대한 이벤트 핸들러를 등록 할 수 있습니다. 예를 들어 스크롤 창의 스크롤 값이 수정 될 때마다 녹색 선 노드의 병진 위치에 대한 업데이트가 이루어져야합니다. 나는 레이아웃에 대한 전문가가 아니다. JavaFX는 여전히 나에게 새롭다. 그러나 내가 아는 바에 따르면 그것은 할 수있는 것 같습니다. 이론적으로 이것은 분명히 할 수 있습니다.

관련 문제