JavaOne放出来的新东西,出来也有段时间了,看了论坛和blog上的讨论,叫好、不看好的各占一半。今天就去https://openjfx.dev.java.net/ 下载了netbean插件,按照getting startted做了一些例子。总体来说,JavaFx仍然是在awt/swing的基础上的包装,只不过用一层薄薄的性感语法包装了一把,而且这语法与javascript等脚本语言基本一致,特别是声明性的编程语法与json非常相似。据sun声称要退出一个消费者版本的jre,大概5M-9M大小,消息参见《
桌面java的缺陷:面向消费者的jre》,这个恐怕也是给JavaFx专门定制的吧。个人观点:没有什么令人激动的新鲜玩意,特别是布局方面仍然是麻烦的layout机制,对多媒体的支持还是比不上flash,优点在于与java服务端通信方面(因为都是java平台)可能比较有优势,另外就是消费者版本jre的推出是个好消息,jre实在太大了。
说了这么多,看看Hello World怎么写的,实在与json太相似了:
<!---->import javafx.ui.*;
Frame {
title: "Hello World JavaFX"
width: 200
height: 200
content: Label {
text: "Hello World"
}
visible: true
}
这是声明方式来创建一个Frame,Frame里面放个Label,Label上一句Hello World。也可以采用编程方式:
<!----> var win = new Frame();
win.title = "Hello World JavaFX";
win.width = 200;
var label = new Label();
label.text = "Hello World";
win.content = label;
win.visible = true;
这语法与javascript有什么不同呢?
再来看看事件处理,仍然遵循MVC模式,比如我们希望输入框的文字修改能同时修改窗体的title,首先定义一个Model:
<!----> class HelloWorldModel {
attribute saying: String;
}
var model = HelloWorldModel {
saying: "Hello World"
};
把Model绑定到View上:
<!----> var win = Frame {
title: bind "{model.saying} JavaFX"
width: 200
content: TextField {
value: bind model.saying
}
visible: true
};
TextFiled的value与model的saying操作进行了绑定,而Frame的title也绑定了model的saying方法,因此输入框的文字改变的话,也会反映到title上咯。"{model.saying} JavaFX"倒是类似ruby对字符串的处理方法了。这些例子代码完全来自
Getting Started With JavaFx script language,更多精彩内容请自己解读。题外话:netbean蛮好用的啊,在我的1G内存机器上跑的挺欢。
分享到:
相关推荐
总的来说,【精美界面素材包】是设计者手中的一把利器,提供了丰富的设计资源,能够有效提高设计效率,降低创作成本。通过巧妙利用这些素材,设计师可以创造出独特且引人入胜的网站界面,提升用户的浏览体验,从而...
总之,Java嵌入谷歌内核的简单浏览器——JxBrowser,为Java开发者提供了一个强大且灵活的工具,能够在Java应用中轻松集成现代Web浏览体验,同时保持跨平台的兼容性和易用性。无论是构建桌面应用、企业级系统还是其他...
JavaFX则是一个更现代、更强大的GUI框架,支持2D和3D图形、CSS样式以及动画效果。它基于开放源代码的JavaFX Scene Graph,允许开发者创建富媒体、响应式和美观的用户界面。JavaFX还支持Java 8及更高版本,并且可以...
对于开发者而言,这个项目提供了学习和实践JavaFX的绝佳案例,对于驾驶学校而言,它是一把开启数字化管理的金钥匙。通过深入学习和理解JavaFX技术,我们可以更好地利用"DrivingSchoolCMS",为驾驶学校的日常运营带来...
列表视图是Windows API或许多编程框架(如.NET Framework、JavaFX、Qt等)中的一种控件,用于显示一系列项目,每个项目可以有多个字段或列。获取列表视图的列数对于调整布局、计算宽度分配以及确保数据正确显示至关...
例如,一个文件保存图标通常表现为一个小的硬盘图像,一个剪切操作可能用一把剪刀来表示,复制操作则可能是一个复写本或纸张的图像。这些图标已经成为通用的符号,被广泛接受并理解。 实现"带图标的菜单"通常涉及...
以下是一个简化的JavaFX示例: ```java @FXML private ListView<String> listView; public void initialize() { listView.setOnDragDetected(new EventHandler() { @Override public void handle(MouseEvent ...
程序采用了把保存坐标数据的方法移到单独的类这一设计策略,这是软件工程中的模块化思想体现。将数据保存功能独立出来,有利于代码的组织和维护,同时降低了代码的耦合度,提高了程序的可读性和可扩展性。通过这种...
在Java Swing或JavaFX中,也有相似的JComboBox类用于创建下拉列表组件。 在实际应用中,多个COMBOBOX之间可能存在数据传递的需求。例如,一个ComboBox的选择可能会影响另一个ComboBox的显示内容。这通常通过事件...
把第一个元素视为已排序。 2. 比较第二个元素与已排序的第一个元素,若小于则插入,并调整已排序部分的顺序。 3. 继续比较第三个元素,以此类推,直到所有元素都插入正确位置。 3. **冒泡排序**: - 基本思想:...
在数字环境中实现这样的功能,需要对图像进行分割,即把原始图像拆分成多个不规则的部分。这通常涉及到图像处理技术,比如边缘检测、形状识别或区域生长算法等。这些算法可以分析图像内容并生成适合拼接的不规则形状...
该压缩包文件包含了一个使用Java编程语言开发的聊天程序,由用户Wangmeng通过JBuilder集成开发环境创建。...同时,对于有经验的开发者来说,这也是一个研究和改进的实例,可以学习到如何优化代码性能,提高用户体验。
当一行被填满时,需要删除这行并把上面的所有行下移一格。这个过程可以通过遍历棋盘并更新数组来实现。 事件处理也是必不可少的,包括键盘输入控制方块的移动和旋转,以及时间触发的方块自动下落。Java提供了诸如`...
这种效果能够使用户以动态的方式浏览一系列图片,增强了用户体验。下面将详细介绍如何使用Java实现这一功能。 首先,我们需要理解Java的Swing或JavaFX库,这两个库都提供了构建图形用户界面(GUI)的组件。对于这个...
- 在许多编程环境中,如Windows Forms、WPF、Qt或JavaFX,Label默认只能显示一行文本。如果文本内容较长,超出Label的宽度,它不会自动换行,而是用省略号(...)截断。 - 要实现多行显示,我们需要设置Label的相关...
在描述中提到的“简单的java运用,把类,继承,接口共同运用”,这表明开发者在设计系统时遵循了面向对象编程的原则。下面我们将深入探讨这三个核心概念。 1. 类(Class):在Java中,类是对象的蓝图,定义了一组...
“界面非常粗糙”意味着这个程序可能没有采用复杂的图形用户界面(GUI)库,如Swing或JavaFX,而是选择了更基础的控制台界面。在控制台环境下,游戏可能通过文本命令进行交互,玩家输入棋盘坐标来移动棋子。这种简化...
在这个场景中,我们关注的是“LISTBOX”,即列表框,一个可以显示多项选择的控件。在不同的编程语言和框架中,改变列表框背景颜色的方法会有所不同,但基本思路是类似的。下面将详细介绍如何在几种常用的编程环境中...
在编程时,我们需要把这些规则转化为计算机可以理解和执行的算法。 接下来是对象模型设计。每个棋子可以被表示为一个类,包含其颜色、位置等属性,并定义相应的移动方法。棋盘也可以作为一个类,存储当前棋局的状态...
通常,新版本会修复前一版本存在的问题,增加新功能,或者提升用户体验。 - LICENSE.html文件包含了软件的许可协议,规定了使用、分发和修改JFormDesigner的条件。确保在使用前仔细阅读,以遵守法律条款。 3. **...