`
xhuixuanwen
  • 浏览: 6461 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

javafx构造一组玻璃状园Button

阅读更多
package javafxapplication14;

import javafx.stage.Stage;
import javafx.scene.Scene;

import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;


/**
 * @author Administrator
 */
function actionPerformed(color:String) :Void {
    println(color);
}

Stage {
    title: "button"
    width: 320
    height:200
    scene: Scene {
        content: [
            Rectangle {
                x: 0, y: 0
                width: 320, height: 200
                fill: Color.web("#4f6068")
            },
            FXButton {
                offsetX: 40
                offsetY: 50
                lightColor: "#fc1503"
                darkColor: "#460702"
                action: actionPerformed
            },
            FXButton {
                offsetX: 100
                offsetY: 50
                lightColor: "#657efd"//042dfb"
                darkColor: "#02124d"
                action: actionPerformed
            },
            FXButton {
                offsetX: 160
                offsetY: 50
                lightColor: "#27FB04"
                darkColor: "#0B4402"
                action: actionPerformed
            },
            FXButton {
                offsetX: 220
                offsetY: 50
                lightColor: "#f4fd02"
                darkColor: "#414301"
                action: actionPerformed
            }
        ]
    }
}

package javafxapplication14;

import javafx.scene.CustomNode;

import javafx.scene.Group;
import javafx.scene.Node;

import javafx.scene.paint.Color;

import javafx.scene.shape.Circle;
import javafx.scene.effect.GaussianBlur;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.scene.shape.VLineTo;
import javafx.scene.transform.Transform;

import javafx.scene.effect.Glow;

import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.scene.input.MouseEvent;

/**
 * @author Administrator
 */

// place your code here
public class FXButton extends CustomNode {
    package var offsetX:Number;
    package var offsetY:Number;
    package var lightColor:String;
    package var darkColor:String;
    var glowLevel:Number = 0.0;
    var glow = Glow { level: bind glowLevel };

    package var action: function(:String) : Void;

    override function create() : Node {
        Group {
            translateX: offsetX;
            translateY: offsetY;
            content:[
                Group {
                    effect: bind glow
                    content:[
                        Circle {
                        effect: GaussianBlur {  radius: 10.0 }
                        centerX: 18, centerY: 18
                        radius: 18
                        fill: Color.BLACK
                        transforms: Transform.translate(-2, -2)
                        },
                        Circle {
                            effect: GaussianBlur {  radius: 10.0 }
                            centerX: 18, centerY: 18
                            radius: 18
                            fill: Color.color(1, 1, 1, 0.6)
                            transforms: Transform.translate(1, 1)
                        },
                        Circle {
                            centerX: 18, centerY: 18
                            radius: 18
                            fill:
                            LinearGradient {
                                startX : 0.0
                                startY : 0.0
                                endX : 0.0
                                endY : 1.0
                                stops: [
                                    Stop {
                                        color : Color.web(darkColor)
                                        offset: 0.0
                                    },
                                    Stop {
                                        color : Color.web(lightColor)
                                        offset: 1.0
                                    },

                                ]
                            }
                        },
                        Path {
                            fill: Color.BLACK
                            stroke: Color.color(1, 1, 1, 0.4)
                            
                            elements : [
                                MoveTo {
                                    x : 0.0, y : 0.0
                                },
                                VLineTo {
                                    y : 20
                                },
                                LineTo {
                                    x : 16, y : 10
                                },
                                LineTo {
                                        x : 0.0, y : 0.0
                                },
                            ]
                            transforms: Transform.translate(11, 7)
                        },
                        Circle {
                            effect: GaussianBlur{  radius: 8.0 }
                            centerX: 18, centerY: 18
                            radius: 15
                            fill:
                            LinearGradient {
                                startX : 0.0
                                startY : 0.0
                                endX : 0.0
                                endY : 1.0
                                stops: [
                                    Stop {
                                        color : Color.WHITE
                                        offset: 0.0
                                    },
                                    Stop {
                                        color : Color.TRANSPARENT
                                        offset: 1.0
                                    },

                                ]
                            }
                        },
                    ]
                    onMouseEntered: function( e: MouseEvent ):Void {
                        fader.rate = 1;
                        fader.play();
                    }
                    onMouseExited: function( e: MouseEvent ):Void {
                        fader.rate = -1;
                        fader.play();
                    }
                    onMouseReleased: function( e: MouseEvent ):Void {
                        action("lightColor:{lightColor}   darkColor:{darkColor}");
                    }
                }
            ]
        }
    }
    def fader:Timeline = Timeline {

        keyFrames : [
            KeyFrame {
                time : 200ms
                values : [
                    glowLevel => 0.6 tween Interpolator.LINEAR
                ]

            }
        ]
    };
}

  • 大小: 12.4 KB
0
0
分享到:
评论
1 楼 liuwangxia 2009-08-20  
[quote=xhuixuanwen]@author Administrator
最好别在Administrator账号下工作,而用普通账号。

相关推荐

    一个极简单JavaFX例子

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源框架。它提供了一个灵活的图形用户界面(GUI)工具包,允许开发者创建美观且交互性强的应用程序。在JavaFX中,你可以利用丰富的2D和3D图形、...

    javafx的一个完整demo

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源框架。它提供了丰富的用户界面组件和强大的图形渲染能力,使得开发者能够创建出交互性极强且视觉效果出众的应用程序。在这个名为"javafx的一...

    用JavaFX做的一个登录注册界面

    JavaFX是一种用于构建桌面应用程序的Java库,它提供了丰富的用户界面工具和功能,可以创建出美观、交互性强的图形用户界面。在这个项目中,“用JavaFX做的一个登录注册界面”显然是利用JavaFX来设计和实现了一个包含...

    javafx javafx javafx javafx

    javafx

    JAVAFX第一张学习笔记

    JAVAFX第一张学习笔记,第一张的学习源代码!

    简单的JavaFx登陆

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,自Java 7版本开始成为标准的一部分。这个“简单的JavaFX登录”项目是利用JavaFX库创建的一个基本用户登录界面,旨在帮助开发者了解如何在...

    JavaFx登录跳转完整教程含源码

    JavaFx是Oracle公司推出的一个跨平台的图形用户界面工具包,用于开发桌面应用程序。JavaFx提供了一个基于Scene Graph的图形渲染引擎,可以用于开发富客户端应用程序。 知识点2:FXML简介 FXML是JavaFx的标记语言,...

    JavaFX tableview获取数据demo

    JavaFX的一个demo,带checkbox的tableview,选中一行获取所选中行的数据。

    javaFX Demo 模板案例

    JavaFX 是一个用于构建桌面、移动和嵌入式设备上富客户端应用的开源图形用户界面(GUI)工具包。它是Java平台的一部分,提供了一系列高级特性,包括2D和3D图形处理、媒体支持、CSS样式以及强大的数据绑定机制。本...

    JavaFX实现一个画板

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,它提供了丰富的图形用户界面(GUI)组件库。在这个项目“JavaFX实现一个画板”中,我们看到开发者利用JavaFX来创建了一个功能完备的画板...

    JavaFX2.0内建控件教程(全部控件)

    - **Radio Button**:一组互斥的选择项。 - **Toggle Button**:可以在选中和未选中状态之间切换的按钮。 - **Checkbox**:复选框,允许多选。 - **Choice Box**:下拉选择器,用于选择单个选项。 - **Text Field**...

    javafx 的一个简单演示demo

    javafx 的一个简单演示demo

    《JavaFX Essentials》 源码

    JavaFX提供了一系列内置控件,如Button、Label、TextField、TableView等,覆盖了常见的用户交互需求。这些控件可以通过JavaFX的API进行自定义,以满足特定的设计和功能需求。 4. **2D和3D图形**: JavaFX支持2D和...

    javafx-sdk-11.0.2

    JavaFX SDK 11.0.2 是一个用于开发富客户端应用程序的工具包,它在Java 11及更高版本中不再作为标准JDK的一部分。这个独立的SDK提供了必要的库和工具,使得开发者能够在Java平台上构建具有丰富图形用户界面(GUI)的...

    JavaFx 入门文档,JavaFx实例

    JavaFX 是一个用于构建桌面应用、移动应用以及嵌入式系统的富客户端用户界面的Java库。它是Oracle在Java SE和Java EE平台上的官方图形用户界面(GUI)工具包,为开发者提供了一种创建美观、交互丰富的应用程序的方式...

    javafx 整合 sparingboot mybatis

    JavaFX 是一个用于开发桌面应用程序的Java库,它提供了丰富的用户界面组件和强大的图形功能。SpringBoot 是一个基于 Spring 框架的轻量级启动器,它简化了配置并帮助快速搭建应用。MyBatis 是一个优秀的持久层框架,...

    JavaFX API文档

    当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运营于行动装置的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种declarative, statically typed(声明性的、静态类型)...

    javaFx pdf 阅读软件

    JavaFX PDF阅读软件是一款基于JavaFX技术开发的PDF文档查看应用程序。它利用开源库icepdf来解析和渲染PDF文档,为用户提供一个用户友好的界面来查看和操作PDF文件。下面我们将详细探讨JavaFX、icepdf以及如何使用...

    JavaFX 简易音乐播放器

    JavaFX 是一个强大的Java图形用户界面工具包,用于构建跨平台的应用程序,特别是在桌面系统上。这个项目,"JavaFX 简易音乐播放器",是一个基于JavaFX的简单音乐播放应用程序,非常适合初学者或者想要熟悉JavaFX特性...

    利用javafx实现的一个具有完整功能的播放器

    这是利用sun的javafx实现的具有相对完整功能的多媒体播放器-----相对于网上的“一分钟写出一个javafx播放器”而言。 注意:javafx需要一些运行环境,具体说来是: 1.jdk6update14以上 2.javafx运行包----如果你在...

Global site tag (gtag.js) - Google Analytics