Thứ Hai, 15 tháng 9, 2014

[JavaFX 8] Phần 3 (tt) : Các thành phần giao diện người dùng

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  :
p3_4_Progress.png
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 :
p3_4_HyperLink.png
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.
p3_4_exampleHyperlink.png

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