
【IntelliJ IDEA 2019.2 + jdk8】java fx 绘制界面
选择“File” > “New Project” 选择“JavaFX”项目类型 根据提示创建主类并配置Application类
发布日期:2021-05-13 00:03:41
浏览次数:28
分类:精选文章
本文共 1648 字,大约阅读时间需要 5 分钟。
JavaFX开发实用指南
JavaFX是Oracle提供的一款图形用户界面工具kits,适用于创建跨平台应用程序。以下是一些实用开发技巧和常见问题解答。
JavaFX项目基础
1. 创建新项目
在IntelliJ IDEA中创建一个新的JavaFX项目:
2. 使用FXML文件
FXML( Florian Frick 的XML)是JavaFX的标记语言,用于定义用户界面。
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
FXML文件包含UI组件和布局信息,通过 FXMLLoader 加载到应用程序中。
UI 组件
1. 添加按钮
在Scene Builder中拖拽Button控件,设置属性:
- On Action:定义按钮点击事件
- ID:为控件分配唯一标识符
2. 调整控件位置和大小
在Text模式下,可以手动调整控件的布局和大小。
3. 动态获取控件
在代码中使用Lookup方法获取控件:
Button button = (Button) root.lookup("#buttonID");
常见问题
1. 控件类型错误
确保选择正确的控件类:
javafx.scene.control.Button
(不是普通的Button)
2. ID查找问题
在FXML文件中设置控件ID,并在代码中使用lookup("#ID")
查找。
高级功能
1. 多线程显示
避免在同一线程中进行长时间操作:
new Thread() { public void run() { // 长时间操作... Thread.sleep(1000); }};
2. 表格(TableView)使用
TableView tableView = new TableView();TableViewColumn column = new TableViewColumn<>("标题", TableColumn.TEXT);tableView.getColumns().add(column);
实用技巧
1. 记忆文件选择位置
在选择文件时保留上一次选择的目录:
FileChooser fileChooser = new FileChooser();if (list.size() >= 2) { fileChooser.setInitialDirectory(new File(list.get(0)));}
2. ListView菜单
ListView listView = new ListView();Listitems = FXCollections.observableArrayList("宝马", "Double", "Suite");listView.setItems(items);
3. 弹出框(MessageBox)
创建新的FXML文件并加载:
Parent root = FXMLLoader.load(getClass().getResource("MessageBox.fxml"));Stage stage = new Stage();stage.setScene(new Scene(root, 600, 600));stage.show();
Label标签使用
Label label = (Label) root.lookup("#labelID");label.setText("显示内容");
总结
JavaFX开发需要掌握FXML文件编辑、控件使用和多线程管理等技能。通过合理规划UI布局,正确使用控件,并解决常见问题,可以高效开发高质量用户界面。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月26日 21时09分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
VS2019 报错: LINK Error 无法找到 MSCOREE.lib的解决办法
2019-03-09
关于JS中的内存溢出与内存泄漏
2019-03-09
算法训练——字符串合并
2019-03-09
2021-04-23
2019-03-09
hadoop 分布式文件系统的计算和高可用
2019-03-09
【Linux】VMware Workstation 不可恢复错误: (vcpu-0)
2019-03-09
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
2019-03-09
关于Img标签在固定宽高的容器内部以图片比例缩放存在
2019-03-09
pyhton---异常处理的终极语法、网页访问基本读取、网页访问异常处理
2019-03-09
ant design pro v5去掉右边content区域的水印
2019-03-09
web_求和(练习)
2019-03-09
JavaScript——使用iterator遍历迭代map,set集合元素
2019-03-09
IAR调试卡顿的解决办法
2019-03-10
Course Schedule II
2019-03-10
Django ORM操作
2019-03-10
剑指offer[32]——把数组排成最小的数
2019-03-10
java基础-java与c#接口不同点
2019-03-10
京喜小程序体验评分优化实践
2019-03-10
C#中文转换成拼音
2019-03-10
C++错误笔记
2019-03-10