표준에 따라 ScrollPane
에 포함 된 ScrollBar
구성 요소에 대한 정보를 얻으려고합니다. 특히 나는 Scrollbar
의 height
을 읽는 데 관심이 있습니다. 어떻게 참조 할 수 있습니까?ScrollPars의 Scrollbars에 액세스하는 방법
답변
Node 클래스의 lookupAll() 메서드를 사용하여 스크롤 막대를 찾을 수 있다고 생각합니다. 예를 들어 http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#lookupAll(java.lang.String)
:
package com.test;
import java.util.Set;
import javafx.application.Application;
import javafx.geometry.Orientation;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.ScrollBar;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPaneBuilder;
import javafx.scene.text.Text;
import javafx.scene.text.TextBuilder;
import javafx.stage.Stage;
public class JavaFxScrollPaneTest extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
String longString = "The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.";
Text longText = TextBuilder.create().text(longString).build();
ScrollPane scrollPane = ScrollPaneBuilder.create().content(longText).build();
primaryStage.setScene(new Scene(scrollPane, 400, 100));
primaryStage.show();
Set<Node> nodes = scrollPane.lookupAll(".scroll-bar");
for (final Node node : nodes) {
if (node instanceof ScrollBar) {
ScrollBar sb = (ScrollBar) node;
if (sb.getOrientation() == Orientation.HORIZONTAL) {
System.out.println("horizontal scrollbar visible = " + sb.isVisible());
System.out.println("width = " + sb.getWidth());
System.out.println("height = " + sb.getHeight());
}
}
}
}
}
그게 더 이상 작동하지 않습니다. – specializt
저의 작품 (JavaFX 8)은 런타임에 - [http://stackoverflow.com/questions/28904312/how-to-access-scrollbar-in-a-scrollpane-javafx](http://stackoverflow.com)/questions/28904312/how-to-access-scrollbar-in-a-scrollpane-javafx). – David
이없는 최고의 연습이지만, 작동, 수평 스크롤
private boolean determineVerticalSBVisible(final ScrollPane scrollPane) {
try {
final ScrollPaneSkin skin = (ScrollPaneSkin) scrollPane.getSkin();
final Field field = skin.getClass().getDeclaredField("vsb");
field.setAccessible(true);
final ScrollBar scrollBar = (ScrollBar) field.get(skin);
field.setAccessible(false);
return scrollBar.isVisible();
} catch (final Exception e) {
e.printStackTrace();
}
return false;
}
사용 "HSB".
최고 감사합니다. Henrique Guedes.
- 1. iOS : 동일한 데이터에 액세스하는 여러보기 - 액세스하는 방법?
- 2. 원격 스레드에 액세스하는 방법?
- 3. 배열의 배열에 액세스하는 방법
- 4. CCMenu에서 CCMenuItemImage에 액세스하는 방법
- 5. 컨트롤러에서 applicationContext에 액세스하는 방법
- 6. 부모보기 reponder에 액세스하는 방법
- 7. InternetExplorer.Application에서 쿠키에 액세스하는 방법
- 8. 포인트 좌표에 액세스하는 방법
- 9. advancedDatagrid의 셀에 액세스하는 방법
- 10. 기본 MediaPlayer에 액세스하는 방법
- 11. .Net webservice, 액세스하는 방법 ...?
- 12. web.config 값에 액세스하는 방법?
- 13. 표면보기에서 비디오에 액세스하는 방법
- 14. IE9에서 Event.target에 액세스하는 방법?
- 15. 브라우저에서 Android에 액세스하는 방법
- 16. 개체의 속성에 액세스하는 방법?
- 17. 숫자 속성에 액세스하는 방법?
- 18. EAAccessories에 액세스하는 방법?
- 19. NSPersistentDocument - 창에 액세스하는 방법?
- 20. document.getElementsByClassName의 속성에 액세스하는 방법
- 21. 문서 폴더에 액세스하는 방법
- 22. UserControl에있는 스타일에 액세스하는 방법?
- 23. 그리드 행에 액세스하는 방법
- 24. 다음 SqlDataSource에 액세스하는 방법?
- 25. 엑셀 파일에 액세스하는 방법
- 26. 메뉴 항목에 액세스하는 방법?
- 27. 위젯의 속성에 액세스하는 방법
- 28. SURFTracker 클래스에 액세스하는 방법?
- 29. 원격 서버에 액세스하는 방법
- 30. Gmail에서 메일에 액세스하는 방법
수평 스크롤 막대가 사용하는 수직 픽셀 수나 배치 위치 또는 무엇을보고 싶습니까? –
ScrollBar 높이가 얼마나 많은 세로 픽셀이 필요한지보고 싶습니다. – dajood