📜  JavaFX |用例子圈起来(1)

📅  最后修改于: 2023-12-03 15:01:36.191000             🧑  作者: Mango

JavaFX | 用例子圈起来

JavaFX是一个用于创建富客户端应用程序的Java框架。它提供了丰富的GUI组件、多媒体支持以及动画特效,可以创建出漂亮的用户界面。下面,我们来看几个JavaFX的示例代码。

简单的Hello World程序

这是一个JavaFX的Hello World程序,它创建出一个简单的窗口,并在窗口中显示出"Hello World"。

public class HelloWorld extends Application {

    @Override
    public void start(Stage stage) {
        Label label = new Label("Hello World");
        Scene scene = new Scene(label, 300, 200);
        stage.setScene(scene);
        stage.show();
    }

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

这个程序继承了JavaFX的Application类,并重写了其中的start方法,在这个方法中创建了一个Label,并将其添加到了一个大小为300x200的Scene中。然后,将这个Scene设置为了窗口的场景,最后显示出窗口。

使用CSS样式

JavaFX中可以使用CSS样式来定制UI的外观。下面这个例子展示了如何使用CSS样式来修改一个Button的样式。

public class StyledButton extends Application {

    @Override
    public void start(Stage stage) {
        Button button = new Button("Click me");
        button.getStyleClass().add("styled-button");
        Scene scene = new Scene(button, 300, 200);
        scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
        stage.setScene(scene);
        stage.show();
    }

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

这个程序创建了一个Button,并将其样式类设置为"styled-button",然后将一个style.css文件添加到场景中。下面是style.css的内容:

.styled-button {
    -fx-background-color: #00ff00;
    -fx-text-fill: #ffffff;
}

这段CSS代码将按钮的背景颜色设置为绿色,文本颜色设置为白色。

显示图片

JavaFX支持显示图片,下面这个例子展示了如何加载一个图片并在窗口中显示出来。

public class ImageViewer extends Application {

    @Override
    public void start(Stage stage) {
        ImageView imageView = new ImageView();
        Image image = new Image(getClass().getResourceAsStream("image.jpg"));
        imageView.setImage(image);
        Scene scene = new Scene(new StackPane(imageView), 800, 600);  
        stage.setScene(scene);  
        stage.show(); 
    }

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

这个程序创建了一个ImageView,并加载了一个名为"image.jpg"的图片。然后将这个ImageView添加到了一个StackPane中,并将这个StackPane作为场景的根节点。最后显示出窗口。

动画特效

JavaFX支持多种动画特效,下面这个例子展示了如何使用TranslateTransition创建一个平移动画。

public class AnimationDemo extends Application {

    @Override
    public void start(Stage stage) {
        Rectangle rect = new Rectangle(50, 50, 100, 100);
        rect.setFill(Color.BLUE);
        TranslateTransition translateTransition = new TranslateTransition(Duration.seconds(2), rect);
        translateTransition.setToX(200);
        translateTransition.setAutoReverse(true);
        translateTransition.setCycleCount(Animation.INDEFINITE);
        translateTransition.play();
        Scene scene = new Scene(new StackPane(rect), 400, 400);
        stage.setScene(scene);
        stage.show();
    }

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

这个程序创建了一个蓝色的矩形,并使用TranslateTransition将其沿着X轴平移200个单位。同时,将动画设置为自动反转并无限重复。最后将矩形添加到了一个StackPane中,并将这个StackPane作为场景的根节点。