为了完成数据库大作业,终于开始了像蔡徐坤一样的学写代码的历程
首先在IDEA中新建一个javaFX项目,在sample文件夹会自动生成三个默认文件,删掉即可,新建自己的package和类
登录模块
在class上新建一个fxml文件,发现了什么不得了的东西。。好像是一个可拖拽的界面,看起来大有用处。
加载fxml文件:
1 | public void start(Stage stage)throws Exception{ |
在fxml中拖入一个AnchorPane, 运行类就会出来一个窗口。
在fxml的源代码中添加控制器 fx:controller="loginapp.LoginController"
SQLiteStudio
基本操作就不说了,图形化界面点点点就完事了。
新建一个dbUilt库,用于操作数据库。
连接数据库:
1 | public class dbConnection { |
在fxml中,如果在使用中出现表格无法激活的情况,需要下载SceneBuilder, 并在IDEA的setting中指定JavaFX的路径到下载好的exe文件。然后就可以右键fxml文件 open in Scene Builder
这个功能更完善一点,可以搜索并配置controller,所以我还是下了一个。虽然下载速度很感人,看着YTB上的UP主秒打开链接我真的好羡慕啊。。
下载地址 还得注册一个oracle…账户 46…qq 密码 B…98 结果登不上..最后在网上找另一个可用的
注意在Scene Builder中修改完要保存一下。
拖入label,第一个命名,第二个设置为code对应的变量名。需要输入的拖入textfield。 password可以用专用PasswordField
拖入一个combobox,这是下拉框,在properties中添加 Admin/ Students, 作为选项,同样也可以在username的properties中甚至promot占位提示符。 还有一个button ,作为login键
为combobox添加枚举类型。
新建enum类option:
1 | public enum option { |
登录模块
1 | public class LoginModel { |
控制模块:
注意在Label时要选择sence里的(因为很多库都有这个,不要弄错了)
1 | public class LoginController implements Initializable { |
运行时报错,java.lang.ClassNotFoundException: org.sqlite.JDBC
没有安装sqlite的driver
添加库:文件 -> 目录结构 -> 库 -> + java -> 下载的包
运行成功。
分用户登录
给Login键添加事件onaction。注意ActionEvent要选 javafx.event.
给admin和student分别写方法
1 |
|
这里数据连接有点问题。。不管了先学用法吧
设置Admin.fxml 。tabpane可以创建多标签的表格;右边添加Hbox;添加tableview,按需要添加列;左边添加Vbox,在里面添加所需的label可以设置padding,添加textfield可以设置margin;添加datapicker
在scene builder中可以预览效果
添加数据更新方法。在变量上右键可以快速生成get和set方法,
数据加载:
1 | private void loadStudentData(ActionEvent event)throws SQLException{ |
添加元组:
1 | private void addStudent(ActionEvent event){ |
清空数据:
1 |
|
生成jar: 文件 -> 项目结构 -> Artifacts ->jar ->from mode…depen..-> 选择LoginAPP作为入口类 -> build artifacts。 数据和jar要放在同一目录下才可以直接运行。
为避免JRE版本不一致,可以把jar转成exe
学完这个视频内容之后,最后用时三天总算写完了数据库大作业,不过冗余代码好多,我的OOP水平是真的烂啊..