javafx初学

前段时间一直在研究silverlight和wpf 其中使用的xaml布局技术让人叹为观止,非常的灵活强大,当第一眼看到javafx的时候,感觉和xaml很像,我做的一个BS架构的网站需要在linux下运行,因为PHP对本地文件的操作支持不强,于是准备用应用程序作为后台管理,linux下应用程序平台总不能选微软吧,于是java首当其冲,以前学的都是awt和swing编程,本来准备用swing的,后来猛一看到javafx,不用想这个肯定是要取代swing的,为什么?看看wpf之于winform吧,反正我是用了wpf是再也不想用winform了,于是看是看,一路解决了若干问题之后,现在可以着手业务逻辑了,在这其中,有两个问题最具有代表性,在此标记一下,以备将来之需

1、javafx开发你就应该要用fxml编程,为什么?参照wpf吧,如果你硬要用传统的方法,也行,不过这点是针对fxml说话的,一个fxml代表一个界面,那么第一个问题就是,不同的fxml之间如何访问,目前我解决了从父到子的访问,一般来说,需要将fxml界面加入到本界面中,编程是这样的


            Parent root = FXMLLoader.load(getClass().getResource("xxx"));
            MainBorder.getChildren().add(root);

那么如何访问root中的控件呢,javafxAPI中翻箱倒柜了一会,在Parent类中发现了这样的方法和这样的话

public Node lookup(java.lang.String selector)
 
 
Finds this Node, or the first sub-node, based on the given CSS selector. If this node is a Parent, then this function will traverse down into the branch until it finds a match. If more than one sub-node matches the specified selector, this function returns the first of them.

For example, if a Node is given the id of "myId", then the lookup method can be used to find this node as follows: scene.lookup("#myId");.

怎么样,很给力吧,这样就解决了不同的fxml界面的访问问题
2、界面布局问题,这个其实是个误区,一开始默认生成的界面布局是

AnchorPane

这个布局面板的解释如下

允许将子节点边缘定位到其父节点的边缘。不调整子节点大小

注意红色的话,不调节子节点大小,那我用你干P啊,一点伸缩性都没有,希望大家使用的时候注意

还有一个小问题,就是FXMLLoader.load(getClass().getResource("xxx"));的时候,如何访问不同包中的fxml

这个纠结了一下下的,解决如下

加入你的包名Frame1,其中有个fxml名字叫Frame1XML,那么访问方式如下

            Parent root = FXMLLoader.load(getClass().getResource("/Frame1/Frame1XML"));

这几个问题不解决,是没法开始工作的,所以,记下吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值