`
xhuixuanwen
  • 浏览: 6367 次
  • 性别: 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做的一个登录注册界面

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

    javafx javafx javafx javafx

    javafx

    JAVAFX第一张学习笔记

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

    简单的JavaFx登陆

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

    JavaFX实现一个画板

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

    javaFX Demo 模板案例

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

    《JavaFX Essentials》 源码

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

    javafx的一个完整demo

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

    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 的一个简单演示demo

    javafx 的一个简单演示demo

    JavaFX API文档

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

    JavaFX 简易音乐播放器

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

    找不到javafx、JDK中不自带javafx专用包jfxrt.jar-只要1积分

    JavaFX是Java平台上的一个应用程序接口(API),用于构建丰富的用户界面。在早期版本的Java Development Kit (JDK) 中,JavaFX是一个内置组件,包括了`jfxrt.jar`这个重要的库文件,它包含了运行JavaFX应用所需的...

    javaFX登陆和跳转

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源框架。它提供了丰富的用户界面组件和强大的图形库,使得开发者可以创建出美观且功能丰富的应用程序。本主题聚焦于JavaFX中的用户登录系统及其...

    JavaFx 官方源码例子

    JavaFX是Java平台上的一个强大的用户界面工具包,用于创建桌面、移动和Web应用程序。它提供了丰富的图形和媒体功能,支持2D和3D渲染、CSS样式以及自定义控件。这个压缩包包含了一些官方提供的JavaFX源码示例,非常...

    JavaFX 2.0 電子書 - Pro JavaFX 2

    最新JavaFx 2.0 電子書 In Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology, Jim Weaver, Weiqi Gao, Stephen Chin, Dean Iverson, and Johan Vos show you how you can use the JavaFX ...

    javaFx Pdf 阅读器

    JavaFX PDF阅读器是一款基于JavaFX图形用户界面库开发的应用程序,主要用于查看和浏览PDF(Portable Document Format)文档。PDF格式是一种广泛使用的文档格式,它能够保持文档的原始布局和样式,无论在哪种设备上...

    自绘Button 修改Button背景

    `WM_DRAWITEM`是Windows消息系统中的一个关键消息,它在窗口控件(如Button)需要被绘制时发送。当用户界面需要更新,比如在控件的状态变化(如焦点、鼠标悬停)或应用程序的主题更改时,会触发此消息。要处理这个...

Global site tag (gtag.js) - Google Analytics