openplanning

Hướng dẫn và ví dụ JavaFX Group

Xem thêm các chuyên mục:

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- JavaFX Group

JavaFX Group là một bộ chứa, nó là một thành phần không áp dụng cách bố trí (Layout) cho các thành phần con của nó. Tất cả các thành phần con được tại vị trí 0,0.  Mục đích của Group là nhóm các Control thành một nhóm và thực hiện một nhiệm vụ nào đó. Chẳng hạn bạn nhóm 2 Radio nam và nữ vào một nhóm giới tính. Áp dụng hiệu ứng với Group nó sẽ có tác dụng với mọi thành phần con nằm trong nhóm.
Xem thêm JavaFX RadioButton:
Nếu bạn muốn bố trí vị trí cho các thành phần con trong Group, bạn nên đặt chúng trong các thành phần Layout, và thêm các thành phần Layout này vào Group.

Group group = new Group();

Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");

// Thêm vào Group

group.getChildren().addAll(button1, button2);

2- Ví dụ JavaFx Group

Group không áp dụng bố trí (Layout) cho các thành phần con của nó. Mọi thành phần con đều đặt tại tọa độ (0,0).
GroupDemo.java

package org.o7planning.javafx.group;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class GroupDemo extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {

        Button button1 = new Button("This is a long button");
        button1.setPrefSize(180, 80);
        
        Button button2 = new Button("Short button");
        
        Text text = new Text("Text");
        text.setFont(new Font("Arial",20));
        text.setX(200);
        text.setY(100);
        
        Group root = new Group();
        

        root.getChildren().addAll(button1, button2,text);

        Scene scene = new Scene(root, 250, 100);

        primaryStage.setTitle("JavaFX Group (o7planning.org)");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }

}

3- Ví dụ JavaFx Group và hiệu ứng

Ví dụ dưới đây, thêm các thành phần vào một Group và áp dụng hiệu ứng chuyển động mờ (Motion Blur) cho Group, nó sẽ có tác dụng với mọi thành phần con nằm trong Group.
GroupEffectDemo.java

package org.o7planning.javafx.group;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.effect.MotionBlur;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class GroupEffectDemo extends Application {

   @Override
   public void start(Stage primaryStage) throws Exception {

       Group root = new Group();

       Rectangle rectangle = new Rectangle();
       rectangle.setX(10);
       rectangle.setY(30);
       rectangle.setWidth(160);
       rectangle.setHeight(80);
       rectangle.setFill(Color.DARKBLUE);

       Text text = new Text();
       text.setText("Motion Blur!");
       text.setFill(Color.RED);
       text.setFont(Font.font("null", FontWeight.BOLD, 36));
       text.setX(25);
       text.setY(65);

       Button button = new Button("My Button");

       root.setCache(true);
 
       // Tạo hiệu ứng chuyển động mờ
       MotionBlur motionBlur = new MotionBlur();

 
       // Sét hiệu ứng cho Group.
       root.setEffect(motionBlur);
   
       // Di chuyển trục tọa độ X 50 pixel.
       root.setTranslateX(50);
 
       // Thêm các thành phần vào Group.
       root.getChildren().addAll(rectangle, button, text);

       Scene scene = new Scene(root, 250, 100);

       primaryStage.setTitle("JavaFX Group Demo (o7planning.org)");
       primaryStage.setScene(scene);
       primaryStage.show();
   }

   public static void main(String[] args) {
       Application.launch(args);
   }

}
Xem thêm tài liệu về hiệu ứng trong JavaFX tại:

Xem thêm các chuyên mục: