鍍金池/ 教程/ Java/ JavaFX ScrollPane布局
安裝e(fx)clipse到Eclipse (JavaFX工具)
JavaFX屬性
JavaFX文本域(輸入框)
JavaFX切換按鈕
JavaFX曲線
JavaFX教程
JavaFX菜單(Menu)
JavaFX快速入門(mén)
JavaFX復(fù)選框
JavaFX ScrollPane布局
JavaFX綁定
JavaFX顏色選擇器(ColorPicker)
JavaFX進(jìn)度指示器
JavaFX按鈕
JavaFX TitledPane布局
JavaFX圓弧
JavaFX開(kāi)發(fā)環(huán)境安裝配置
在Eclipse安裝JavaFX Scene Builder
JavaFX路徑
JavaFX VBox
JavaFX線條
JavaFX漸變顏色
JavaFX集合
JavaFX BorderPane布局
JavaFX DatePicker
JavaFX單選按鈕
JavaFX滾動(dòng)條
JavaFX矩形橢圓
JavaFX GridPane布局
JavaFX HBox
JavaFX進(jìn)度條
JavaFX多邊形折線
JavaFX超鏈接
JavaFX密碼字段
JavaFX Accordion布局
JavaFX概述和簡(jiǎn)介
JavaFX選擇框
JavaFX文本
JavaFX顏色
JavaFX文件選擇器(FileChooser)
JavaFX標(biāo)簽
JavaFX FlowPane布局

JavaFX ScrollPane布局

滾動(dòng)窗口提供UI元素的可滾動(dòng)視圖。
我們使用可滾動(dòng)面板,當(dāng)需要顯示有限的空間大內(nèi)容??蓾L動(dòng)窗格視口,其將顯示內(nèi)容的一部分,并且在必要時(shí)提供滾動(dòng)條。

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);
    }
}

上面的代碼生成以下結(jié)果。

創(chuàng)建滾動(dòng)窗格

以下代碼使用jpg文件創(chuàng)建一個(gè)圖像,并將該圖像添加到滾動(dòng)窗格。如果圖像較大,滾動(dòng)窗格將顯示滾動(dòng)條,我們可以使用它來(lái)查看隱藏的部分。

Image img = new Image(getClass().getResourceAsStream("yourImage.jpg"));
ScrollPane sp = new ScrollPane();
sp.setContent(new ImageView(img));

可滾動(dòng)ScrollPane

調(diào)用setPannable(true)方法通過(guò)單擊并移動(dòng)鼠標(biāo)光標(biāo)來(lái)預(yù)覽圖像。

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);
    }
}

上面的代碼生成以下結(jié)果。

滾動(dòng)條策略

我們可以控制何時(shí)顯示滾動(dòng)條的策略:

  • 總是
  • 決不
  • 必要時(shí)

setHbar策略和setar策略方法分別為水平和垂直滾動(dòng)條指定滾動(dòng)條策略。

sp.setHbarPolicy(ScrollBarPolicy.NEVER);
sp.setVbarPolicy(ScrollBarPolicy.ALWAYS);

調(diào)整滾動(dòng)窗格中的組件大小

setFitToWidthsetFitToHeight方法設(shè)置為true以匹配特定維度。

默認(rèn)情況下,FIT_TO_WIDTHFIT_TO_HEIGHT屬性都為false,可調(diào)整大小的內(nèi)容保持其原始大小。

以下代碼顯示如何設(shè)置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);
    }
}

上面的代碼生成以下結(jié)果。

滾動(dòng)操作

ScrollPane類(lèi)允許檢索和設(shè)置水平和垂直方向上的內(nèi)容的當(dāng)前值,最小值和最大值。
以下代碼顯示如何處理JScrollPane垂直值和水平值更改事件。


上一篇:JavaFX TitledPane布局下一篇:JavaFX曲線