BorderPane
, ScrollPane
merkez öğesiyle birlikte. Ekranı doldurmak için otomatik olarak yeniden boyutlandırılır. ScrollPane
'un içinde, içeriği olmayan ancak sürükle ve bırak hedefi olan HBox
bulunur. Bu yüzden onun ScrollPane
ebeveyini doldurmasını istiyorum.JavaFX ScrollPane içeriğini geçerli boyutta sığdırmak için nasıl yeniden boyutlandırılır
Bunu yapmanın tercih edilen yolu nedir?
Şimdiye kadar denediğim, HBox
'u yeniden boyutlandırmak için ScrollPane.resize(...)
yöntemini geçersiz kılıyor ancak oldukça karmaşık ve alışılmamış görünüyor.
düzenleme: Bu ben sorununu geçici nasıl olduğunu Buna bazı yararlı kodu eklemek için ama bunun için bazı iyi bir yolu olmalı inanıyoruz: kısmen buradan alınan
@Override
public void resize(double width, double height) {
super.resize(width, height);
double scrollBarHeight = 2;
double scrollBarWidth = 2;
for (final Node node : lookupAll(".scroll-bar")) {
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());
if(sb.isVisible()){
scrollBarHeight = sb.getHeight();
}
}
if (sb.getOrientation() == Orientation.VERTICAL) {
System.out.println("vertical scrollbar visible = " + sb.isVisible());
System.out.println("width = " + sb.getWidth());
System.out.println("height = " + sb.getHeight());
if(sb.isVisible()){
scrollBarWidth = sb.getWidth();
}
}
}
}
hBox.setPrefSize(width-scrollBarWidth, height-scrollBarHeight);
}
Kod: How to access the Scrollbars of a ScrollPane
, sadece bazen hgrow ve vgrow koymak ve onu şimdi çalışıyor – user7867610