Phần 3 (tt) : Các thành phần giao diện người dùng
XVI. WebView :
WebView
là 1 Node quản lý 1 WebEngine và hiển thị nội dung của nó. WebEngine
là 1 đối tượng non-visual (hoạt động ngầm), có khả năng quản lý 1 Web
page. Nhiệm vụ của WebEngine là load web page, phân tích các style và
chạy JavaScript.
1. Tạo 1 WebView :
2. Một số phương thức dành cho WebView:
kiểu trả về
|
Phương thức
|
Miêu tả
|
WebEngine
|
getEngine()
|
Trả về đối tượng WebEngine.
|
void
|
setMinSize(doube minWidth,
double minHeight)
|
Thiết lập kích thước nhỏ nhất cho chiều rộng và cao.
|
void
|
setMaxSize(doube maxWidth,
double maxHeight)
|
Thiết lập kích thước lớn nhất cho chiều rộng và cao.
|
void
|
setPrefSize(doube prefWidth,
double prefHeight)
|
Thiết lập kích thước tương đối cho chiều rộng và cao.
|
void
|
setZoom(doube value)
|
Phóng to hoặc thu nhỏ nội dung web page
|
void
|
setFontScale(double value)
|
Tăng hoặc giảm kích thước phông chữ của web page.
|
3. Một số phương thức dành cho WebEngine:
kiểu trả về
|
Phương thức
|
Miêu tả
|
WebEngine
|
getLocation()
|
Trả về địa chỉ URL của web page.
|
void
|
load(String url)
|
Tải về 1 web page.
Vd: webEngine.load("http://java2s.com")
|
void
|
loadContent(String content)
|
Tải trực tiếp nội dung HTML.
Vd: webEngine.loadContent("< a href=’http://example.com’> hello </a>")
|
void
|
loadContent(String content ,
String contentType)
|
Tải trực tiếp nội dung dựa trên định dạng contentType.
Vd: webEngine.loadContent("< a href=’http://example.com’> hello </a>", “text/html”)
|
void
|
reload()
|
Reload trang hiện tại
|
Worker
|
getLoadWorker()
|
Trả về đối tượng Worker. Đối tượng Worker được sử dụng để kiểm tra tiến trình load 1 web page.
|
XVII. Progress Bar và Progress Indicator :
ProgressIndicator
và ProgressBar cung cấp khả năng biểu diễn trực quan tiến trình hoàn
thành 1 nhiệm vụ nào đó. ProgressBar được biểu diễn dưới dạng 1
completion bar, ProgressIndicator biểu diễn dưới dạng biểu đồ hình tròn.
1. Tạo 1 ProgressBar và ProgressIndicator :
2. Một số phương thức dành cho Progress Bar và Progress Indicator :
kiểu trả về
|
Phương thức
|
Miêu tả
|
double
|
getProgress()
|
Trả về giá trị của progress.
|
void
|
setProgress(doube value )
|
Thiết lập giá trị cho progress.
|
DoubleProperty
|
propressProperty()
|
Đối
tượng DoubleProperty thể hiện tiến độ của ProgressBar và
ProgressIndicator. Sử dụng nó để liên kết thể hiện tiến độ của 1 tiến
trình khác . Như sử dụng progressBar thể hiện quá trình load 1 web
page,…
|
XVIII. Hyperlink :
Hyperlink
có hình dạng giống như label nhưng hành động lại giống với button.
Giống label bởi nó chứa chứa được text và image, giống button bởi nó có
phản ứng khi mouse đi qua hoặc click nó.
1. Tạo 1 HyperLink :
2. Một số phương thức dành cho HyperLink :
kiểu trả về
|
Phương thức
|
Miêu tả
|
void
|
setAlignment(Pos value)
|
Canh chỉnh vị trí image và text của hyperlink
|
void
|
setFont(Font value)
|
Kiểu Font dành cho hyperlink.
|
void
|
setGraphic(Node value)
|
Bổ sung Image vào hyperlink.
|
void
|
setGraphicTextGap(double value)
|
Khoảng cách giữa Image và text
|
void
|
setText(String value)
|
Thiết lập giá trị text hiển thị trong hyperlink
|
string
|
getText()
|
Lấy ra giá trị text
|
void
|
setTextAlignment(Pos value )
|
Canh chỉnh vị trí text của hyperlink
|
void
|
setTextFill(Paint value)
|
Vẽ text, như : màu sắc cho text, Hình ảnh cho text
|
void
|
setWrapText(boolean value)
|
Khi
text có nội dung quá dài so với chiều dài của hyperlink, value = true
text tự động xuống hàng, value = false (mặc định) ẩn đi 1 số ký tự.
|
void
|
setRotate(doube value)
|
Xoay text theo góc value.
|
void
|
setTranslateX(double value)
|
Di chuyển hyperlink theo chiều ngang cách vị trí ban đầu value
|
void
|
setTranslateY(double value)
|
Di chuyển hyperlink theo chiều dọc cách vị trí ban đầu value
|
void
|
setScaleX(double value)
|
Mở rộng hay thu nhỏ kích cỡ hyperlink theo chiều ngang
|
void
|
setScaleY(double value)
|
Mở rộng hay thu nhỏ kích cỡ hyperlink theo chiều dọc
|
3. Ví dụ:
Sử dụng ProgressBar và ProgressIndicator thể hiện tiến độ tải về 1 web page. Và sử dụng Hyperlink để load 1 web page khác.
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.control.ProgressBar;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class exampleWebview extends Application {
BorderPane borderPane = new BorderPane();
WebView webView;
ProgressBar progressBar;
ProgressIndicator progressIndicator;
HBox hBox;
WebEngine webEngine;
@Override
public void start(Stage stage) {
// tạo 1 ProgressBar có chiều dài 500, rộng 20
progressBar = new ProgressBar();
progressBar.setPrefSize(500, 20);
// tạo 1 ProgressIndicator
progressIndicator = new ProgressIndicator();
// tạo 1 WebView và tải về 1 web page
webView = new WebView();
webEngine = webView.getEngine();
webEngine.load("http://java.com");
//sử dụng phương thức bind() để liên kết với quá trình tải 1
// web page của webEngine, và tính toán để chia tiến độ thành 100 giai đoạn.
progressBar.progressProperty().bind(
webEngine.getLoadWorker().workDoneProperty().divide(100));
progressIndicator.progressProperty().bind(
webEngine.getLoadWorker().workDoneProperty().divide(100));
// tạo 2 hyperlink
Hyperlink hyperlinkJH = new Hyperlink("Java Home");
Hyperlink hyperlinkMB = new Hyperlink("Java 2S");
// event khi click vào hyperlinkJH.
hyperlinkJH.setOnAction((ActionEvent e) -> {
webEngine.load("http://java.com");
});
// event khi click vào hyperlinkMB.
hyperlinkMB.setOnAction((ActionEvent e) -> {
webEngine.load("http://java2s.com");
});
//tạo 1 HBOX Pane chứa ProgressBar, ProgressIndicator và 2 Hyperlink
hBox = new HBox(progressBar, progressIndicator, hyperlinkJH,hyperlinkMB );
borderPane.setBottom(hBox);
borderPane.setCenter(webView);
Scene scene = new Scene(borderPane, 700, 350);
stage.setScene(scene);
stage.setTitle("Progress Controls");
stage.show();
}
public static void main(String[] args) {
launch("");
}
}
|
Không có nhận xét nào:
Đăng nhận xét