Java教程

javafx编写gui(1)

本文主要是介绍javafx编写gui(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

最近在和一位朋友一起做一个下棋的小项目,算法部分暂时没有想到太好的优化方法,但是盯着一个二维数组下棋实在是太难受了,于是我觉得先写一个好看点的界面,于是我开始研究怎么写gui,又由于那位朋友前面的程序全是用java写的,所以我决定就用javafx来写gui。写下这篇博客一边学一边记录。

配好环境之后,我发现其实javafx其实帮我把大部分的工作都完成了,我只用照着模板调用就可以了。。。。。

要写gui,首先要有一个窗口,这么写就可以了

 

 这两句先是定义了一个标题叫hello window的窗口然后再把它显示出来,运行结果如下

 

 一个窗口就出来了,接下来我需要在她上面加个按钮,按照它的逻辑,按钮这个元素必须要存在一个容器之中,于是我们要先定义一个按钮,然后把他放到容器上

 

 可以这么写,首先new一个叫做btok的button,传入text参数“ok”使它显示ok,之后再new一个容器,里面放着btok,再传参控制它的大小,运行后结果如下

 

于是现在我们就创造了一个里面有按钮的窗口了, 用同样的方法可以在一个程序内写出多个窗口

 

但是这时候,我们发现了一个巨大的问题,那就是一个容器(scene)里只能装一个东西,但是我们的界面里可能需要很多东西,于是可以这么操作:把界面中需要的元素像贴纸一样贴到一个板子(pane)上,再把pane放到容器(scene)之中,这样既满足了容器里只能有一个东西,又满足了界面中需要有很多东西的要求

这里就是先创建了一个scene,然后再把button放到了scene里面

 

 

但是这时问题出现了,当我们把两个不同的button放到了同一个pane里面之后,却发现出现的窗口中仍然只有一个button

 

 

 这是因为两个button虽然都被创建了,但它们被创建在了窗口中的同一个位置,导致后创建的button把先创建的button挡住了,

 为了解决这个问题就需要把这些元素按照一定的顺序排列起来,于是就需要用到布局,常用布局有以下几个:

流布局(flowpane) :把元素按照顺序排列

网格布局(gridplane)  :把元素按照行和列排序

边框布局(borderpane):把页面分成五个部分

之后,把需要的元素布局好后放到pane中就可以了,元素种类较多这里就不一一赘述了。

创建了界面的下一步就是响应用户的操作,而这就需要用到事件响应,就需要用到事件处理器

 可以先定义一个事件处理器,然后再编写事件处理器的具体内容

运行后结果如下

 

 当然,也可以使用lambda简化使代码更加简洁,如下

 这么写就可以了,于是,我们就可以使得程序在收到信号后进行事件响应了。

 

 

这篇关于javafx编写gui(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!