捲動視窗提供UI元素的可捲動檢視。
我們使用可捲動面板,當需要顯示有限的空間大內容。可捲動窗格視口,其將顯示內容的一部分,並且在必要時提供捲動條。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
stage.setWidth(500);
stage.setHeight(500);
Scene scene = new Scene(new Group());
VBox root = new VBox();
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
ScrollPane scrollPane = new ScrollPane();
scrollPane.setContent(browser);
webEngine.loadContent("<b>yes? this is default content load.</b>");
root.getChildren().addAll(scrollPane);
scene.setRoot(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的程式碼生成以下結果。
以下程式碼使用jpg
檔案建立一個影象,並將該影象新增到捲動窗格。如果影象較大,捲動窗格將顯示捲動條,我們可以使用它來檢視隱藏的部分。
Image img = new Image(getClass().getResourceAsStream("yourImage.jpg"));
ScrollPane sp = new ScrollPane();
sp.setContent(new ImageView(img));
呼叫setPannable(true)
方法通過單擊並移動滑鼠游標來預覽影象。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
Group root = new Group();
Scene scene = new Scene(root, 500, 200);
stage.setScene(scene);// => w w W .Y I I B A I .c O M
Rectangle rect = new Rectangle(200, 200, Color.RED);
ScrollPane s1 = new ScrollPane();
s1.setPannable(true);
s1.setPrefSize(120, 120);
s1.setContent(rect);
root.getChildren().add(s1);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的程式碼生成以下結果。
我們可以控制何時顯示捲動條的策略:
setHbar策略和setar策略方法分別為水平和垂直捲動條指定捲動條策略。
sp.setHbarPolicy(ScrollBarPolicy.NEVER);
sp.setVbarPolicy(ScrollBarPolicy.ALWAYS);
將setFitToWidth
或setFitToHeight
方法設定為true
以匹配特定維度。
預設情況下,FIT_TO_WIDTH
和FIT_TO_HEIGHT
屬性都為false
,可調整大小的內容保持其原始大小。
以下程式碼顯示如何設定JScrollPane
以適合寬度。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
// from => Ww w . yI i baI.C O m
public class Main extends Application {
@Override
public void start(Stage stage) {
stage.setWidth(500);
stage.setHeight(500);
Scene scene = new Scene(new Group());
VBox root = new VBox();
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
ScrollPane scrollPane = new ScrollPane();
scrollPane.setFitToWidth(true);
scrollPane.setContent(browser);
webEngine.loadContent("<b>asdf</b>");
root.getChildren().addAll(scrollPane);
scene.setRoot(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的程式碼生成以下結果。
ScrollPane
類允許檢索和設定水平和垂直方向上的內容的當前值,最小值和最大值。
以下程式碼顯示如何處理JScrollPane
垂直值和水平值更改事件。