通过GUI界面来对数据库进行增删改的可视化操作

主界面用到的组件:三个按钮+JTable表格组件
技术:界面之间的传参+数据库的连接+sql语言的编写+窗体及按钮事件监听器+数据的实时跟新+组件的摆放+界面的大小+位置设置+界面默认的关闭模式+功能设定的人性化。
主窗口
ps:在使用JTable时,有些细节需要注意,如果直接用窗口添加JTable将会导致列名消失,所以最好的办法就是加入滚动条,其次也可以通过方法获取列名,其中JTable有三个构造方法,
第一个是数组形式
在这里插入图片描述
第二种为集合形式
在这里插入图片描述
第三种为模式形式
在这里插入图片描述
由于在创建表格时,修改,删除或者新增操作都涉及数据库的实时跟新,所以用第三种,实时跟新的关键代码如下`public static TableModel GetNewDate() {

	DefaultTableModel dt = new DefaultTableModel(GetDate.getDate(), GetColName.getColNames());
	return dt;
}`
	dateTable.setModel(JTableDemo.GetNewDate());//项目名为JTableDemo,方法为静态方法

不论是增,删,改,都需要在主界面的表格里面显示数据变化,所以需要将此界面的表格对象通过构造方法传入到增删改界面,来实现数据实时跟新。
增加界面:
在这里插入图片描述
当编号为空时,给出提示信息,因为员工编号是主键,不可以为空,所以给编号右边的文本框添加焦点事件,当焦点失去时,判断是否为空,以及员工号是否存在,其中之一成立,则不可以新增,并给出提示信息,弹窗信息显示用JoptionPane.showmessagedialog(null,message),因为我在第一个文本框右边加入了一个标签,因此,如果编号已经存在,那么就会出现一个红×不可以注册,绿色√代表可以注册。此时即使点击确认按钮,只会给出提示,也不会将数据插入到数据库中,同时,如果不做条件显示,当编号相同时,会违反唯一限制,程序也会报错,另一个问题是,插入表格的数据会有长度限制,而且部门号也不能随意输入,只有输入特定的部门号才能插入,例如:10,20,30…不然程序还是会报错,插入完成后,会给出提示信息,成功插入,并把增加数据的窗口关闭;
编号为空
不可以重复
跟新按钮+跟新界面
在这里插入图片描述
当用户没选中任何需要更新的信息行数时给出提示信息,跟新操作主要是要能获得当前用户所选中的行数,然后将选中行的信息在跟新界面上显示,
在这里插入图片描述
关键代码:

	// 获取选中表格的行数
		int row = table.getSelectedRow();

返回-1时代表没有选择行数,返回其他证明行数已选,然后将表格中的数据,传入到跟新页面的相应的文本框中,关键代码

int id = (int) table.getValueAt(row, 0);

传入后,首先将编号设置为不可以编辑,其余的可以编辑,然后在当前跟新界面上进行修改,最后在按钮上添加时间(1、与数据库进行连接,2、获取跟新后文本框的内容,3、使用预编译传参,和
跟新的sql语句将数据跟新,最后表格的setModel方法实现实施跟新,提示更新成功,关闭当前窗口)。

删除按钮无需删除界面
同理先选中行,未选中,给出提示信息
在这里插入图片描述
选中后,返回当前行第一列的员工号,建立与数据库的连接,通过员工号来对数据库进行删除,删除完成后,给出提示信息,并实时更新。
在这里插入图片描述
最后只需创建一个主类来实现窗口的可视化即可

public class BeginWindow {

	public static void main(String[] args) {
		new JTableDemo();
	}

}

系统结构:BeginWindow(JTableDemo(addFrame,updateFrame,deleteFrame))
小细节,当一个表格添加同一个标签多次时,标签只会出现一次,相当于把一个标签不断变换位置。若要调整表格,可以用数组和for循环创建多个标签,内容为空格,来实现表格的整齐化。

  • 11
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值