JavaFX ScrollPane佈局
滾動窗口提供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));
可滾動ScrollPane
調用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
垂直值和水平值更改事件。