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
]
}
]
};
}
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0013/5000/60de8fa6-78f8-3008-a668-438938fa0f0b-thumb.png)
- 大小: 12.4 KB
分享到:
相关推荐
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源框架。它提供了一个灵活的图形用户界面(GUI)工具包,允许开发者创建美观且交互性强的应用程序。在JavaFX中,你可以利用丰富的2D和3D图形、...
JavaFX是一种用于构建桌面应用程序的Java库,它提供了丰富的用户界面工具和功能,可以创建出美观、交互性强的图形用户界面。在这个项目中,“用JavaFX做的一个登录注册界面”显然是利用JavaFX来设计和实现了一个包含...
javafx
JAVAFX第一张学习笔记,第一张的学习源代码!
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,自Java 7版本开始成为标准的一部分。这个“简单的JavaFX登录”项目是利用JavaFX库创建的一个基本用户登录界面,旨在帮助开发者了解如何在...
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,它提供了丰富的图形用户界面(GUI)组件库。在这个项目“JavaFX实现一个画板”中,我们看到开发者利用JavaFX来创建了一个功能完备的画板...
JavaFX 是一个用于构建桌面、移动和嵌入式设备上富客户端应用的开源图形用户界面(GUI)工具包。它是Java平台的一部分,提供了一系列高级特性,包括2D和3D图形处理、媒体支持、CSS样式以及强大的数据绑定机制。本...
JavaFX提供了一系列内置控件,如Button、Label、TextField、TableView等,覆盖了常见的用户交互需求。这些控件可以通过JavaFX的API进行自定义,以满足特定的设计和功能需求。 4. **2D和3D图形**: JavaFX支持2D和...
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源框架。它提供了丰富的用户界面组件和强大的图形渲染能力,使得开发者能够创建出交互性极强且视觉效果出众的应用程序。在这个名为"javafx的一...
JavaFX SDK 11.0.2 是一个用于开发富客户端应用程序的工具包,它在Java 11及更高版本中不再作为标准JDK的一部分。这个独立的SDK提供了必要的库和工具,使得开发者能够在Java平台上构建具有丰富图形用户界面(GUI)的...
JavaFX 是一个用于构建桌面应用、移动应用以及嵌入式系统的富客户端用户界面的Java库。它是Oracle在Java SE和Java EE平台上的官方图形用户界面(GUI)工具包,为开发者提供了一种创建美观、交互丰富的应用程序的方式...
javafx 的一个简单演示demo
当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运营于行动装置的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种declarative, statically typed(声明性的、静态类型)...
JavaFX 是一个强大的Java图形用户界面工具包,用于构建跨平台的应用程序,特别是在桌面系统上。这个项目,"JavaFX 简易音乐播放器",是一个基于JavaFX的简单音乐播放应用程序,非常适合初学者或者想要熟悉JavaFX特性...
JavaFX是Java平台上的一个应用程序接口(API),用于构建丰富的用户界面。在早期版本的Java Development Kit (JDK) 中,JavaFX是一个内置组件,包括了`jfxrt.jar`这个重要的库文件,它包含了运行JavaFX应用所需的...
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源框架。它提供了丰富的用户界面组件和强大的图形库,使得开发者可以创建出美观且功能丰富的应用程序。本主题聚焦于JavaFX中的用户登录系统及其...
JavaFX是Java平台上的一个强大的用户界面工具包,用于创建桌面、移动和Web应用程序。它提供了丰富的图形和媒体功能,支持2D和3D渲染、CSS样式以及自定义控件。这个压缩包包含了一些官方提供的JavaFX源码示例,非常...
最新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(Portable Document Format)文档。PDF格式是一种广泛使用的文档格式,它能够保持文档的原始布局和样式,无论在哪种设备上...
`WM_DRAWITEM`是Windows消息系统中的一个关键消息,它在窗口控件(如Button)需要被绘制时发送。当用户界面需要更新,比如在控件的状态变化(如焦点、鼠标悬停)或应用程序的主题更改时,会触发此消息。要处理这个...