JavaFX学习

本文通过一个具体的JavaFX示例介绍了如何创建动态图形界面。包括建立应用基础、添加背景、绘制圆形及渐变矩形,并设置了图形的动态效果。整体流程与Swing相似,但在视觉效果上更为出色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一) 初识JavaFx

最近接触了javaFX 不是很熟悉,在网上找了好多资料,介绍的很多,但大部分都官网的例子。感谢下面链接的作者给我们的翻译

http://blog.youkuaiyun.com/s_ghost/article/details/7336073

只好练习练习了,

具体原理什么的只有等做的时间长了你才能体会出来、

首先找了网上比较多的一个例子依葫芦画瓢(样式和代码如下):

package com.fx;

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.effect.BlendMode;
import javafx.scene.effect.BoxBlur;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.StrokeType;
import javafx.stage.Stage;
import javafx.util.Duration;
public class FXTest extends Application {

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

    @Override
    public void start(Stage primaryStage) throws Exception {
        // ��ʾ��Ԫ��
        Group root = new Group();
        // ����
        Scene scene = new Scene(root, 800, 600, Color.BLACK);
        primaryStage.setScene(scene);

        Group circles = new Group();
        for (int i = 0; i < 30; i++) {
            Circle circle = new Circle(150, Color.web("white", 0.05));
            circle.setStrokeType(StrokeType.OUTSIDE);
            circle.setStroke(Color.web("white", 0.16));
            circle.setStrokeWidth(4);
            circles.getChildren().add(circle);
        }
        // �
//        circles.setEffect(new BoxBlur(10, 10, 3));

        Rectangle colors = new Rectangle(scene.getWidth(), scene.getHeight(),

        new LinearGradient(0f, 1f, 1f, 0f, true, CycleMethod.NO_CYCLE, new

        Stop[] {

        new Stop(0, Color.web("#f8bd55")),

        new Stop(0.14, Color.web("#c0fe56")),

        new Stop(0.28, Color.web("#5dfbc1")),

        new Stop(0.43, Color.web("#64c2f8")),

        new Stop(0.57, Color.web("#be4af7")),

        new Stop(0.71, Color.web("#ed5fc2")),

        new Stop(0.85, Color.web("#ef504c")),

        new Stop(1, Color.web("#f2660f")), }));

         root.getChildren().add(colors);

         root.getChildren().add(circles);
//
//        Group blendModeGroup =
//
//        new Group(new Group(new Rectangle(scene.getWidth(), scene.getHeight(),
//
//        Color.BLACK), circles), colors);
//
//        colors.setBlendMode(BlendMode.OVERLAY);
//
//        root.getChildren().add(blendModeGroup);

        
        
        Timeline timeline = new Timeline();

        for (Node circle: circles.getChildren()) {

            timeline.getKeyFrames().addAll(

                new KeyFrame(Duration.ZERO, 

                    new KeyValue(circle.translateXProperty(), Math.random() * 800),

                    new KeyValue(circle.translateYProperty(), Math.random() * 600)

                ),

                new KeyFrame(new Duration(40000), 

                    new KeyValue(circle.translateXProperty(), Math.random() * 800),

                    new KeyValue(circle.translateYProperty(), Math.random() * 600)

                )

            );

        }
        timeline.play();

        // ��֤��̨Ч��ɼ�
        primaryStage.show();
    }
}

步骤如下:

1.建立应用

  导入必要的包:jfxrt.jar

 2.建立应用基础

public classColorfulCircles extends Application { 

    public static void main(String[] args) {

        launch(args);

    }    

    @Override

    public void start(Stage primaryStage){        

        primaryStage.show();

    }

}

3。添加布景

在 primaryStage.show();前贴如下代码:

        //显示基本元素
        Group root = new Group();
        // 背景
        Scene scene = new Scene(root, 800, 600, Color.BLUE);
        primaryStage.setScene(scene);

4画出圆,

5画出渐变矩形

6 设置圆的滚动

整体来看基本上和Swing查不多,但比Swing 做出来的好看多了

(二)javaFX入门例子(对图形的操作)

网上有好多前辈为我们铺出一条这么明朗的道路,不走太可惜了

简单的例子:

 

 

转载于:https://www.cnblogs.com/tomcattd/archive/2013/03/11/2949500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值