zoukankan      html  css  js  c++  java
  • JavaFX学习

    (一) 初识JavaFx

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

    http://blog.csdn.net/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入门例子(对图形的操作)

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

    简单的例子:

  • 相关阅读:
    BEM(Block–Element-Modifier)
    http://element.eleme.io/#/zh-CN/component/quickstart
    Commit message 的写法规范。本文介绍Angular 规范(
    好的commit应该长啥样 https://github.com/torvalds/linux/pull/17#issuecomment-5654674
    代码管理
    if you have content fetched asynchronously on pages where SEO is important, SSR might be necessary
    Martin Fowler’s Active Record design pattern.
    The Zen of Python
    Introspection in Python How to spy on your Python objects Guide to Python introspection
    Object-Oriented Metrics: LCOM 内聚性的度量
  • 原文地址:https://www.cnblogs.com/tomcattd/p/2949500.html
Copyright © 2011-2022 走看看