京东云4G流量包云是什么软件,有风险吗?

JavaFX 属性
JavaFX UI控件
JavaFX 效果
JavaFX 主题
JavaFX 转换
JavaFX Web
JavaFX教程 -
JavaFX绑定JavaFX绑定同步两个值:当因变量更改时,其他变量更改。要将属性绑定到另一个属性,请调用bind()方法,该方法在一个方向绑定值。例如,当属性A绑定到属性B时,属性B的更改将更新属性A,但不是相反。绑定选项JavaFX提供了许多绑定选项,以便在域对象和GUI控件中的属性之间进行同步。我们可以在JavaFX的属性API中使用以下三种绑定策略:Java Bean上的双向绑定与Fluent API的高级绑定使用javafx.beans.binding.*中定义的绑定对象进行低级绑定。双向绑定双向绑定绑定相同类型的属性,并同步两侧的a值。当与bindBidirectional()方法双向绑定时,需要两个属性都必须是可读/可写的。以下代码显示如何在firstName属性和字符串属性变量之间进行双向绑定import javafx.beans.property.SimpleStringP
import javafx.beans.property.StringP
public class Main {
public static void main(String[] args) {
User contact = new User(&Jame&, &Bind&);
StringProperty fname = new SimpleStringProperty();
fname.bindBidirectional(contact.firstNameProperty());
contact.firstNameProperty().set(&new value&);
fname.set(&New First Name&);
System.out.println(&firstNameProperty = &
+ contact.firstNameProperty().get());
System.out.println(&fname = & + fname.get());
class User {
private SimpleStringProperty firstName = new SimpleStringProperty();
private SimpleStringProperty lastName = new SimpleStringProperty();
public User(String fn, String ln) {
firstName.setValue(fn);
lastName.setValue(ln);
public final String getFirstName() {
return firstName.getValue();
public StringProperty firstNameProperty() {
return firstN
public final void setFirstName(String firstName) {
this.firstName.setValue(firstName);
public final String getLastName() {
return lastName.getValue();
public StringProperty lastNameProperty() {
return lastN
public final void setLastName(String lastName) {
this.lastName.setValue(lastName);
上面的代码生成以下结果。高级绑定我们还可以使用JavaFX fluent API来绑定属性。流利的API使用类似英语的方法名称对属性执行操作。例如,multiply(),divide(),subtract(),isEqualTo(),isNotEqualTo(),concat()。请注意,方法名称中没有get或set。当链接流畅的API在一起,我们可以编写代码,如同我们正在写句子,例如 width().multiply(height()).divide(2)。以下代码显示如何创建表示计算矩形面积的公式的属性。它通过使用 javafx.beans.binding.IntegerExpression 接口中的fluent API来执行高级绑定。该代码使用 multiply()方法,该方法返回包含计算值的NumberBinding。这种绑定是延迟评估的,这意味着乘法不会发生,除非我们通过 get()或 getValue()方法调用属性的值。import javafx.beans.binding.NumberB
import javafx.beans.property.IntegerP
import javafx.beans.property.SimpleIntegerP
public class Main {
public static void main(String[] args) {
// Area = width * height
IntegerProperty width = new SimpleIntegerProperty(10);
IntegerProperty height = new SimpleIntegerProperty(10);
NumberBinding area = width.multiply(height);
System.out.println(area.getValue());
上面的代码生成以下结果。低级绑定当对 NumberBinding 类进行子类化时,我们使用低级绑定,例如Double类型的DoubleBinding类。在DoubleBinding类的子类中,我们重写其 computeValue()方法,以便我们可以使用运算符(如* 和
)来制定复杂的数学方程。高级绑定使用诸如multiply(),subtract()等方法低级绑定使用诸如*和 - 之类的运算符。以下代码显示如何为公式创建低级别绑定以计算矩形的面积。import javafx.beans.binding.DoubleB
import javafx.beans.property.DoubleP
import javafx.beans.property.SimpleDoubleP
public class Main {
public static void main(String[] args) {
DoubleProperty width = new SimpleDoubleProperty(2);
DoubleProperty height = new SimpleDoubleProperty(2);
DoubleBinding area = new DoubleBinding() {
super.bind(width, height); // initial bind
protected double computeValue() {
return width.get() * height.get();
System.out.println(area.get());
上面的代码生成以下结果。UI控件和域模型之间的绑定在JavaFX中,UI控件和域模型之间的数据绑定很容易。以下代码显示如何创建登录对话框并绑定用户域对象。首先,我们定义域对象,它是描述用户名和密码的JavaFX JavaBean。class User {
private final ReadOnlyStringWrapper userN
private StringP
public User() {
userName = new ReadOnlyStringWrapper(this, &userName&, &ABC&);
password = new SimpleStringProperty(this, &password&, &&);
public final String getUserName() {
return userName.get();
public ReadOnlyStringProperty userNameProperty() {
return userName.getReadOnlyProperty();
public final String getPassword() {
return password.get();
public StringProperty passwordProperty() {
我们创建了两个UI控件,一个是用Text控件显示用户名,另一个是PasswordField控件,它将输入值绑定到域对象中的密码字段。Text userName = new Text();
userName.textProperty().bind(user.userNameProperty());
PasswordField passwordField = new PasswordField();
passwordField.setPromptText(&Password&);
user.passwordProperty().bind(passwordField.textProperty());
BooleanProperty accessGranted在passwordField的文本值属性的更改侦听器中设置。
passwordField.textProperty().addListener((obs, ov, nv) -& {
boolean granted = passwordField.getText().equals(MY_PASS);
accessGranted.set(granted);
if (granted) {
primaryStage.setTitle(&&);
在enter键hit事件中访问BooleanProperty accessGranted。
// user hits the enter key
passwordField.setOnAction(actionEvent -& {
if (accessGranted.get()) {
System.out.println(&granted access:&+ user.getUserName());
System.out.println(&password:&+ user.getPassword());
Platform.exit();
primaryStage.setTitle(&no access&);
完整的源代码。import javafx.application.A
import javafx.application.P
import javafx.beans.property.BooleanP
import javafx.beans.property.ReadOnlyStringP
import javafx.beans.property.ReadOnlyStringW
import javafx.beans.property.SimpleBooleanP
import javafx.beans.property.SimpleStringP
import javafx.beans.property.StringP
import javafx.scene.G
import javafx.scene.S
import javafx.scene.control.PasswordF
import javafx.scene.layout.VB
import javafx.scene.text.T
import javafx.stage.S
public class Main extends Application {
private final static String MY_PASS = &asdf&;
private final static BooleanProperty accessGranted = new SimpleBooleanProperty(false);
public void start(Stage primaryStage) {
User user = new User();
Group root = new Group();
Scene scene = new Scene(root, 320, 100);
primaryStage.setScene(scene);
Text userName = new Text();
userName.textProperty().bind(user.userNameProperty());
PasswordField passwordField = new PasswordField();
passwordField.setPromptText(&Password&);
user.passwordProperty().bind(passwordField.textProperty());
// user hits the enter key
passwordField.setOnAction(actionEvent -& {
if (accessGranted.get()) {
System.out.println(&granted access:&+ user.getUserName());
System.out.println(&password:&+ user.getPassword());
Platform.exit();
primaryStage.setTitle(&no access&);
passwordField.textProperty().addListener((obs, ov, nv) -& {
boolean granted = passwordField.getText().equals(MY_PASS);
accessGranted.set(granted);
if (granted) {
primaryStage.setTitle(&&);
VBox formLayout = new VBox(4);
formLayout.getChildren().addAll(userName, passwordField);
formLayout.setLayoutX(12);
formLayout.setLayoutY(12);
root.getChildren().addAll(formLayout);
primaryStage.show();
public static void main(String[] args) {
launch(args);
class User {
private final ReadOnlyStringWrapper userN
private StringP
public User() {
userName = new ReadOnlyStringWrapper(this, &userName&, &ABC&);
password = new SimpleStringProperty(this, &password&, &&);
public final String getUserName() {
return userName.get();
public ReadOnlyStringProperty userNameProperty() {
return userName.getReadOnlyProperty();
public final String getPassword() {
return password.get();
public StringProperty passwordProperty() {
上面的代码生成以下结果。
微信号:w3cschoolcn
意见反馈:
联系方式:有做JavaFX桌面程序的朋友吗?进来聚聚啊。
发现做JavaFX桌面程序的朋友不多啊。有做这方面的,进来留个名,大家聊聊。
以前做过javafx的应用. 感觉不那么爽... 内存使用至少500MB, 社区也不成熟. 打包发布的时候还要打包jre, 深度压缩后生成的exe还有120MB. 擦. 太笨重的感觉.
做点小玩意的话, 我感觉其他的脚本语言应该可以啊. 支持html5……
引用来自“Jeky”的答案引用来自“chrisg”的答案引用来自“Jeky”的答案 宁可用node-webkit 也不用JavaFX
本来JavaFX 1还不错 结果2一下子就回归了Java语言 太扯了 我到是觉得回归Java语言是个伟大的创举。也是我重新关注这个语言的原因。 是这样的
我觉得做UI,脚本语言更合适。Java太笨重了,而以前的JavaFX Script要好很多。 谢谢你的补充说明,我明白你的意思了。
--- 共有 1 条评论 ---
唉,只能说你们没真的用过javafx,javafx8是支持fxml和java类绑定的,用fxml定义界面,java绑定业务逻辑,做的界面不啻于c++
javafx文艺青年,中看不中用。
有的,我用过
还不如好好学习下qt
引用来自“chrisg”的答案引用来自“Jeky”的答案 宁可用node-webkit 也不用JavaFX
本来JavaFX 1还不错 结果2一下子就回归了Java语言 太扯了 我到是觉得回归Java语言是个伟大的创举。也是我重新关注这个语言的原因。 是这样的
我觉得做UI,脚本语言更合适。Java太笨重了,而以前的JavaFX Script要好很多。
引用来自“Jeky”的答案 宁可用node-webkit 也不用JavaFX
本来JavaFX 1还不错 结果2一下子就回归了Java语言 太扯了 我到是觉得回归Java语言是个伟大的创举。也是我重新关注这个语言的原因。
引用来自“梅公子”的答案国内最大的javafx群
,欢迎来搞谢谢。今晚进去玩玩。
引用来自“好大的凶兆”的答案引用来自“Jeky”的答案 宁可用node-webkit 也不用JavaFX
本来JavaFX 1还不错 结果2一下子就回归了Java语言 太扯了 node-wekit 我玩了一下,就是个隐藏了菜单栏的chrome浏览器,然后加了几个本地API,总觉得好山寨。。
暂时就把这个当成浏览器用,基本功能够我用了
不过目前依然持观望态度,毕竟还是新东西
引用来自“Jeky”的答案 宁可用node-webkit 也不用JavaFX
本来JavaFX 1还不错 结果2一下子就回归了Java语言 太扯了 node-wekit 我玩了一下,就是个隐藏了菜单栏的chrome浏览器,然后加了几个本地API,总觉得好山寨。。JavaFX学习之道:布局面板之 HBox
HBox 布局面板可以很方便的让所有控件都排列成一行。
可以通过设置 padding 属性来设置控件与 HBox 边缘之间的距离。可以通过设置 spacing 属性来设置各个控件之间的距离。可以设置 style 来改变背景颜色。
下面的例子创建了一个 HBox 布局面板,并且在面板上添加了三个
11:39&&&[]
这里有个javafx学习的中文网站,我把内容都丢那上面去了。&
18:51&&&[]
信息,请参阅JavaFX API文档。
理解属性 理解JavaFX的属性需要学习一些新的API和命名约定。你完全有可能只对使用包含属性的类感兴趣(反对在你自已的类中实现属性)。但例1将让你熟悉一种新的来自属性模式的命名规则。它定义了一个名为Bill的类,实现了一个名为amoutDue的属性。 例1
12:55&&&[]
或窗格可被用于在JavaFX应用程序场景中动态、灵活地管理UI控件。JavaFX布局API包括以下容器类,这些类可以自动进行布局:
◆&BorderPane将其内容节点分布于上、下、左、右、中间位置。
◆&HBox将其内容节点水平布局于一行中
◆&VBox将其
11:31&&&[]
Silverlight 布局面板加控件方法& 添加文字的方法:
TextBlock txt = new TextBlock(); txt.Text = txt.FontSize = 12; txt.Foreground = t_brush
00:50&&&[]
以下是JavaFX中导出Excel的核心代码: private HSSFW
&/* Build Operation Button Area */ & & & & Button exportBn
10:09&&&[]
了PopupWindow的getContent方法。
public final ObservableList getContent() {
return super.getContent();
其中有些方法,没使用过,理解有点模糊,就没写,知道的大家评论下,互相学习。
11:04&&&[]
在水晶报表里几个text怎么也对不齐,用微调又太麻烦了。
用vs自带的layout对水晶里的控件不起作用。
难道水晶报表没有对齐面板吗??
还有,画线的时候,上下也很难对齐。纳闷了,为什么都说水晶报表功能很强大
为什么这小小的功能都搞不定呀。以前用过activereport,在每个
-15:08&&&[]
; & & & private final HBox mH & & & & private final &Button mViewBn; & & & & private
16:26&&&[]
我面板和容器都是使用的空布局,&
FdcpgJPanel&fdcj&=&new&FdcpgJPanel();//这是要添加滚动条的面板
JScrollPane&js&=&new&JScrollPane
-16:51&&&[]
&布局管理器中有三个布局控件,当把文本之类的控件放到布局控件中时,文本之类的控件都是按照这些布局控件属性自动摆放的,我希望在布局控件中自由的摆放控件应该怎么办?
&十分感谢!
回复讨论(解决方案)
style属性里的position如果是relative将导致不能随意
-15:51&&&[]
本帖最后由 zautumn 于
19:02:37 编辑
两个面板,panle&panel1&如何使panel1加载panel的中间,就像QQ的登录界面,窗口改变大小,控件永远都在中间。。
回复讨论(解决方案)
用BorderLayout
-12:45&&&[]

我要回帖

更多关于 4g云流量 的文章

 

随机推荐