昨天在做公司的新项目,涉及到一些数据库的访问,我就拿着自己半吊子的水平尝试去写。突然想起之前看的视频教程里有涉及到 POJO 和 DAO 之类的东西,同事写的代码里确实也使用到了这些,我就像尝试着把他们加入项目中,以方便以后切换数据库。但是问题就来了,我该在 MVC 中的哪个部分调用 DAO 呢?是 Model 还是 Controller?我无法自己找到结论,就又上网去学习了一下。
继续阅读“三层架构”使用FXML设计用户界面
介绍
在使用JavaFX的过程中,除了通过代码定义用户界面,我们还可以通过FXML的形式。FXML是JavaFX创建的一种基于XML的用户界面标记语言。相比于Java代码,FXML由于结构层级明显,更加便于书写(然而xml格式很啰嗦),并且可以在程序运行过程中动态修改(在Maven JavaFX插件中并不能)并且更好的分离了界面和功能;但是它的缺点就是无法实现复杂的逻辑(如循环),并且载入速度相比Java代码较慢(微妙的慢一点点),以下就是一段JavaFX代码。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane xmlns:fx="http://javafx.com/fxml/1">
<center>
<Button text="Hello" />
</center>
</BorderPane>
Gradle Wrapper和Gradle的关系
其实这个问题最重要的部分就是搞懂Gradle Wrapper是什么,当我们明白了什么是wrapper,自然就明白了关系是什么。
简单来讲,Gradle Wrapper是一段用来执行gradle指令的脚本。它包含以下几个部分
- gradle-wrapper.jar 一个Java程序用来下载Gradle
- gradle-wrapper.properties Wrapper的配置文件
- gradlew, gradlew.bat 在不同操作系统上用来调用gradle-wrapper.jar的脚本文件
下载了上古python脚本?python2 to python3, 这样运行老代码!
今天,有小朋友告诉我她得到一个祖传的Python2脚本,而她安装的是Python3解释器,因为语法问题而无法直接跑起来脚本,这该怎么办呢?
我们可以把Python2脚本中的语法全都转换成Python3语法,再正常运行。(这样也方便后续更改其中内容。)
python里自带一件转换语法的功能,点击查看说明文档
python根目录下的 Tools/scripts
目录下有一个2to3
脚本,用它就可以自动转换语法辣!
继续阅读“下载了上古python脚本?python2 to python3, 这样运行老代码!”
移除JavaFX TitledPane的鼠标悬浮效果 Remove mouse hover effect on JavaFX TitledPane
有时候我会用JavaFX的TitledPane来区分UI中的不同部分,像这样。
TitledPane tp1 = new TitledPane();
tp1.setCollapsible(false);
TitledPane tp2 = new TitledPane();
tp2.setCollapsible(false);
通过setCollapsible()
这个函数,让TitledPane不可折叠,然后用一个VBox把它们排好。
但是当我们把鼠标移动到TitledPane的标题栏上时,标题栏的背景颜色还是会变化,这就会给用户一种可以点击的错觉。经过一波操作之后,我发现可以通过修改TitledPane的css来解决这个问题。
tp1.setStyle("-fx-hover-base: -fx-base;");
在JavaFX中实现全选/反选复选框 Make a “Select All/Check All” check box in JavaFX
全选复选框是一个十分常见的需求。比如在邮件管理软件中,我们需要对邮件进行批量移动和删除。除了在列表中的每一个条目前添加一个复选框来展示这条邮件的选中状态,我们通常还会添加一个全选复选框。这个复选框可以起到两个作用:
- 点击复选框来切换所有子项的选中状态。
- 告知用户子项的选中状态为“全选”,“全未选”还是“部分选中”。