JavaFX直到目前最新的1.2.1版本里没有提供模态窗口或着对话框,我在项目里通过扩展Control自己实现了一个简单的模态窗口,控件由2个类Window.fx和WindowSkin.fx组成,在WindowSkin里实现了Skin的抽象方法contains,在模态下始终返回true。
下面是控件的源码和一个演示demo。
Window.fx
package
org.jqueen.fx.scene.control;
import
javafx.scene.Node;
import
javafx.scene.image.Image;
import
javafx.scene.control.Control;
/**
*
@author
Leon Chen
*/
public
class
Window
extends
Control {
public
var modal: Boolean;
public
var background: Image;
public
var content: Node[];
override
protected
function create(): Node {
skin
=
WindowSkin {};
super
.create();
}
}
WindowSkin.fx
package
org.jqueen.fx.scene.control;
import
javafx.scene.control.Skin;
import
javafx.scene.Group;
import
javafx.scene.image.ImageView;
/**
*
@author
Leon Chen
*/
package
class
WindowSkin
extends
Skin {
def windowControl
=
bind control as Window;
def bounds : Bounds = bind windowControl.boundsInLocal;
def background = ImageView {
image: bind windowControl.background
};
def content
=
bind windowControl.content;
init {
node
=
Group {
content: bind[background, content]
}
}
override
public
function intersects(localX: Number, localY: Number, localWidth: Number, localHeight: Number): Boolean {
return
bounds
.intersects(localX, localY, localWidth, localHeight);
}
override
public
function contains(localX: Number, localY: Number): Boolean {
if
(windowControl.modal) {
return
true
;
}
else
{
return
bounds
.contains(localX, localY);
}
}
}
点击图片可运行程序,非模态时背景可以监听到鼠标事件。
分享到:
相关推荐
使用JavaFX实现了一个Mario游戏.zip使用JavaFX实现了一个Mario游戏.zip 使用JavaFX实现了一个Mario游戏.zip使用JavaFX实现了一个Mario游戏.zip 使用JavaFX实现了一个Mario游戏.zip使用JavaFX实现了一个Mario游戏.zip...
Java大作业,仅使用JavaFX实现了一个Mario游戏.zip Java大作业,仅使用JavaFX实现了一个Mario游戏.zip Java大作业,仅使用JavaFX实现了一个Mario游戏.zip Java大作业,仅使用JavaFX实现了一个Mario游戏.zip Java大...
BUAA软件学院大二Java大作业,仅使用JavaFX实现了一个Mario游戏 BUAA软件学院大二Java大作业,仅使用JavaFX实现了一个Mario游戏 BUAA软件学院大二Java大作业,仅使用JavaFX实现了一个Mario游戏 BUAA软件学院大二Java...
首先,我们定义了窗口的宽度、高度和标题,然后创建了一个JavaFX应用程序,并设置了窗口的场景。在场景中,我们创建了一个中心面板和一个顶部面板,并将它们添加到边界面板中。在中心面板中,我们添加了一个标签和一...
这是利用sun的javafx实现的具有相对完整功能的多媒体播放器-----相对于网上的“一分钟写出一个javafx播放器”而言。 注意:javafx需要一些运行环境,具体说来是: 1.jdk6update14以上 2.javafx运行包----如果你在...
UI设计使用JavaFX,自定义文件存储序列化对象。实现线条、矩形等形状的绘制,同时画制后可以修改形状属性
通过JavaFX实现了图片的截取 , 已经存储保存。本地已经运行成功
javafx实现的音频处理窗口
用javaFx实现的java图形界面系统,是下载别人的,我发现界面挺美观的,分享一下。
javaFX实现的图书馆后台管理系统,有数据库增删改查,基于sqlserver数据库.zip
window纸牌游戏,使用java实现逻辑,javafx实现界面 分为两个难度 并且实现了 悔牌功能.zip window纸牌游戏,使用java实现逻辑,javafx实现界面 分为两个难度 并且实现了 悔牌功能.zip window纸牌游戏,使用java实现...
这是闲来无聊写的一个贪吃蛇小游戏,有兴趣的可以下载来瞧瞧。。
java 飞鸽传书 简易版 javafx实现 (打包好的jar包,双击start.bat运行)
主要为大家详细介绍了javafx实现五子棋游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
显示多窗口管理文章http://blog.csdn.net/miniduhua/article/details/71190747
主要介绍了JavaFX 监听窗口关闭事件实例详解的相关资料,需要的朋友可以参考下
实现对文本框的匹配,比如已存在的匹配集合包含:“abc”、"aa"、"bb" 输入a时就会匹配到"abc"和"aa
纯JavaFX实现的多线程分段下载工具,不依赖任何第三方库,实现多线程分段下载以及下载完成后的资源合并,全图形化界面操作,充分利用多核CPU。
最近在写毕设,涉及到javaFX,被窗口间相互调用以及如何通信折磨了挺久,通过学习自己写了点代码终于实现了,供javaFX小白参考,同时附上了一些我最近学习javaFX觉得比较有用的网址供大家学习
javafx 的一个简单演示demo