ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javafx编写gui(1)

2021-11-30 20:01:47  阅读:175  来源: 互联网

标签:容器 窗口 一个 gui 元素 javafx pane 编写 button


最近在和一位朋友一起做一个下棋的小项目,算法部分暂时没有想到太好的优化方法,但是盯着一个二维数组下棋实在是太难受了,于是我觉得先写一个好看点的界面,于是我开始研究怎么写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简化使代码更加简洁,如下

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

 

 

标签:容器,窗口,一个,gui,元素,javafx,pane,编写,button
来源: https://www.cnblogs.com/T0niKroOs/p/15617162.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有