📄 mainfrm.java
字号:
jMenuBar1.add(jMenu5);
jMenuFile.add(jMenuFileExit);
jMenuFile.add(jMenuItem1);
jMenuFile.add(jMenuItem2);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpAbout);
jMenuHelp.add(jMenuItem10);
setJMenuBar(jMenuBar1);
jButton1.setIcon(image1);
jButton1.setToolTipText("数据导出");
jButton2.setIcon(image2);
jButton2.setToolTipText("切换用户");
jButton3.setIcon(image3);
jButton3.setToolTipText("帮助");
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
jToolBar.add(jButton9);
contentPane.add(mainPnl, java.awt.BorderLayout.CENTER);
mainPnl.add(jPanel2, java.awt.BorderLayout.NORTH);
jPanel2.add(jLabel3);
jPanel2.add(jtfAssetId);
jPanel2.add(jLabel4);
jPanel2.add(jtfAssetName);
jcbType.addItem("请选择查询类型");
jcbType.addItem("基本信息");
jcbType.addItem("借用记录");
jPanel2.add(jcbType);
jPanel2.add(jButton4);
mainPnl.add(jPanel3, java.awt.BorderLayout.CENTER);
jPanel3.add(jSplitPane1);
jSplitPane1.add(jScrollPane2, JSplitPane.LEFT);
jSplitPane1.add(jPanel4, JSplitPane.RIGHT);
jScrollPane2.getViewport().add(jTree1);
// lblTime 显示动态时间
ShowTimer myTimer = new ShowTimer();
myTimer.setLabel(lblTime);
Timer timer = new Timer();
timer.schedule(myTimer, 0, 1000); //每隔一秒更换时间显示
//========
jMenu2.add(jMenuItem3);
jMenu2.add(jMenuItem4);
jMenu2.add(jMenuItem5);
jMenu3.add(jMenuItem11);
jMenu3.add(jMenuItem6);
jMenu3.addSeparator();
jMenu3.add(jMenuItem7);
jMenu4.add(jMenuItem8);
jMenu4.add(jMenuItem9);
contentPane.add(jPanel1, java.awt.BorderLayout.SOUTH);
jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTable1);
jPanel4.add(jPanel5, java.awt.BorderLayout.SOUTH);
jPanel5.add(jButton6);
jPanel5.add(jButton5);
jPanel5.add(jButton7);
jPanel5.add(jButton8);
contentPane.add(jToolBar, java.awt.BorderLayout.NORTH);
jPanel1.add(lblOperator, java.awt.BorderLayout.WEST);
jPanel1.add(lblTime, java.awt.BorderLayout.EAST);
jPopupMenu1.add(jMenuItem17);
jPopupMenu1.add(jMenuItem18);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jMenuItem12);
jPopupMenu1.add(jMenuItem13);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jMenuItem14);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jRadioButtonMenuItem1);
jRadioButtonMenuItem2.setSelected(true);
jPopupMenu1.add(jRadioButtonMenuItem2);
jMenu5.add(jMenu6);
jMenu5.add(jMenu7);
jMenu7.add(cbm1);
jMenu7.add(cbm2);
jMenu7.add(cbm3);
jMenu7.add(cbm4);
jMenu7.add(cbm5);
jMenu7.add(cbm6);
jPopupMenu2.add(jMenuItem15);
jPopupMenu2.add(jMenuItem16);
jPopupMenu2.addSeparator();
jPopupMenu2.add(jMenuItem23);
jPopupMenu2.addSeparator();
jPopupMenu2.add(jMenuItem19);
jMenu6.add(jMenuItem20);
jMenu6.add(jMenuItem21);
jMenu6.add(jMenuItem22);
jSplitPane1.setDividerLocation(120);
initTree(); //初始化jTree1对象
}
void expendNoes() { //展开树的节点
for (int i = 0; i < this.jTree1.getRowCount(); i++) {
this.jTree1.expandRow(i);
}
}
/**
* 初始化树形结构的方法
*/
void initTree() {
DefaultMutableTreeNode cateNode = new DefaultMutableTreeNode("资产类别");
CategoryDAO cateDao = new CategoryDAO();
List bigList = cateDao.getAllBigCategory(); //获得所有大类的集合
for (int i = 0; i < bigList.size(); i++) { //循环遍历大类集中中每个类别(注意嵌套循环的作用)
Category bigCate = (Category) bigList.get(i); //将集合中的Object还原成Category对象
//新建节点对象,并将bigCate对象作为参数传入构造方法,该节点上将会显示类别的名称
DefaultMutableTreeNode parentNode = new DefaultMutableTreeNode(bigCate);
//通过大类的编号获取该大类下所有小类的集合
List smallList = cateDao.getSmallCategoryByBigCateId(bigCate.getCateId());
for (int j = 0; j < smallList.size(); j++) { //循环遍历该大类下小类的集合
Category smallCate = (Category) smallList.get(j);
DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(smallCate);
parentNode.add(childNode); //将childNode加入到parentNode—即将所有小类加入到该大类节点下
} //内循环结束
cateNode.add(parentNode); //将所有的大类节点加入到cateNode节点
} //外循环结束
root.add(cateNode); //将cateNode节点加入到root(根节点)节点
//以下代码实例了及格固定节点并组织在一起,形成最终的树形结构
DefaultMutableTreeNode useNode = new DefaultMutableTreeNode("使用情况");
DefaultMutableTreeNode onUseNode = new DefaultMutableTreeNode("使用中");
DefaultMutableTreeNode noUseNode = new DefaultMutableTreeNode("空闲中");
useNode.add(onUseNode);
useNode.add(noUseNode);
root.add(useNode); //加入到根节点
this.expendNoes(); //展开树
}
//该方法用来重置树
public void resetTree() {
DefaultMutableTreeNode node2 = (DefaultMutableTreeNode) mode.getRoot();
node2.removeAllChildren();
mode.reload();
initTree();
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
/*
* 新建添加资产对话框,构造方法中三个参数的意思
* this:代表当前窗口本身
* 添加资产:弹出对话框的标题
* true:弹出的窗口为模式窗口(必须关掉它才能点击其它窗口)
* 其它的菜单弹出窗口可参照该实现方式
*/
AddAssetDlg addAssetDlg = new AddAssetDlg(this, "添加资产", true);
addAssetDlg.setSize(580, 430); //设置窗口的大小
JuZhong.showDialog(addAssetDlg, 580, 430); //设置窗口居中及显示
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
String cmd = "rundll32 url.dll,FileProtocolHandler help/help.chm";
try {
Runtime.getRuntime().exec(cmd);
}
catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* jTree1点击事件处理程序
* 效果:点击某个节点,主界面中将显示对应的数据
* @param treeSelectionEvent TreeSelectionEvent
*/
public void jTree1_valueChanged(TreeSelectionEvent treeSelectionEvent) {
/*
* 该方法只实现了对“使用情况”的查询
* 根据资产类别查询没有实现(大部分),代码也许还要做改变,请自行完成
* 注意判断节点类型
*/
VIEWTYPE=1;
AssetDAO assetDao = new AssetDAO();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.
getLastSelectedPathComponent(); //取得选中的节点对象
if (node != null) {
DataManager.PAGENUMBER = 1; //重置页数为1,代表重新查询结果应从第一页开始显示
//点击资资类别查询出所有信息
if (node.toString().equals("资产类别")) {
VIEWTYPE = 1;
DataManager.assetList = assetDao.loadAllAsset(2); //查询所有资信息传入不为0或1的值查所有
DataManager.resetAssetIntoTable(model); //重置表格的数据
}
//是叶节点时,并且是不使用情况子节点时,按大类编号和小类编号查询
else
if (node.isLeaf() && !node.getParent().toString().equals("使用情况") &&
!node.getParent().toString().equals("资产类别")) {
int subcateid = ( (Category) node.getUserObject()).getCateId(); //获取小类ID
node = (DefaultMutableTreeNode) node.getParent(); //获取小类的父类
int cateid = ( (Category) node.getUserObject()).getCateId(); //获取大类ID
DataManager.assetList = assetDao.loadBySubcateId(cateid, subcateid); //根据大类编号和小类编号查询资产
DataManager.resetAssetIntoTable(model); //重置表格的数据
} //按大类编号查询
else
if (!node.isRoot() && node.getParent().toString().equals("资产类别")) {
int cateid = ( (Category) node.getUserObject()).getCateId(); //取的大类编号
DataManager.assetList = assetDao.loadByCateId(cateid);
DataManager.resetAssetIntoTable(model); //重置表格的数据
}
else if (node != null && !node.isRoot() && !node.toString().equals("使用情况")) { //点击根节点不显示数据
if ("使用情况".equals(node.getParent().toString())) { //按使用情况显示数据
VIEWTYPE = 2;
if (node.toString().equals("空闲中")) {
DataManager.assetList = assetDao.loadByUse(0); //为assetList赋值
}
else {
DataManager.assetList = assetDao.loadByUse(1); //查询已借出资产信息集合
}
DataManager.resetAssetIntoTable(model); //重置表格的数据
}
}
/**
* 用来根据页数设置页数控钮
*/
int p = DataManager.PAGENUMBER;
int c = DataManager.PAGECOUNT;
if (DataManager.PAGENUMBER == 1) {
jMenuItem17.setEnabled(false);
jMenuItem5.setEnabled(false);
jMenuItem6.setEnabled(false);
}
else {
jMenuItem17.setEnabled(true);
jMenuItem5.setEnabled(true);
jMenuItem6.setEnabled(true);
}
if (p == c) {
jMenuItem18.setEnabled(false);
jButton8.setEnabled(false);
jButton7.setEnabled(false);
}
else {
jMenuItem18.setEnabled(true);
jButton8.setEnabled(true);
jButton7.setEnabled(true);
}
}
}
/**
* 点击查询按钮处理事件
*/
public void jButton4_actionPerformed(ActionEvent actionEvent) {
//获取查询文本框中的值
int assetId = 0;
VIEWTYPE=2;
try {
assetId = Integer.parseInt(jtfAssetId.getText().trim());
}
catch (NumberFormatException ex) {
assetId = 0;
}
DataManager.PAGENUMBER = 1; //重置页数
String assetName = jtfAssetName.getText().trim();
//获取查询类型
int type = jcbType.getSelectedIndex(); //0和1--查询基本信息,2--查询借用信息
if (type != 2) {
AssetDAO assetDao = new AssetDAO();
if (assetId != 0) { //按资产编号显示数据
DataManager.assetList = assetDao.loadById(assetId); ;
}
else { //按资产名称(模糊查询)显示数据
DataManager.assetList = assetDao.loadByName(assetName);
}
DataManager.resetAssetIntoTable(model); //重置表格数据
}
else { //查询指定编号资产的借用记录,请自行完成
LendRecordDAO lendrecordDao = new LendRecordDAO();
if (assetId == 0) {
DataManager.lendList = lendrecordDao.loadAll(2); //查询所有借用记录
DataManager.resetLendIntoTable(model);
return;
}
DataManager.lendList = lendrecordDao.loadRecordByAssetId(assetId); ; //查询指定资产编号的借用记录
DataManager.resetLendIntoTable(model);
}
}
public void jcbType_actionPerformed(ActionEvent actionEvent) {
int index = jcbType.getSelectedIndex();
if (index == 2) { //查询借用记录只能通过编号查询,所以将名称框禁用
this.jtfAssetName.setEnabled(false);
}
else {
this.jtfAssetName.setEnabled(true);
}
}
/**
* 添加用户
* @param e ActionEvent
*/
public void jMenuItem11_actionPerformed(ActionEvent e) {
UserManage userManage = new UserManage(this, "添加用户", true);
userManage.setSize(400, 320);
userManage.setResizable(false);
JuZhong.showDialog(userManage, 400, 320);
}
/**
* 更改密码
* @param e ActionEvent
*/
public void jMenuItem6_actionPerformed(ActionEvent e) {
ChangePwd changePwd = new ChangePwd(this, "更改密码", true);
changePwd.setSize(400, 380);
changePwd.setResizable(false);
JuZhong.showDialog(changePwd, 400, 380);
}
/**
* 借用资产
* @param e ActionEvent
*/
public void jMenuItem8_actionPerformed(ActionEvent e) { //菜单点击,弹出借用资产对话框
JieYongZhiChanDlg jieYongDlg = new JieYongZhiChanDlg(this, "借用资产", true);
JuZhong.showDialog(jieYongDlg, 500, 360);
}
/**
* 右键菜单
* @param e MouseEvent
*/
public void jTable1_mouseClicked(MouseEvent e) { //表格鼠标点击事件
if (e.getButton() == 3) { //断判鼠标是否单击了右键
int p = DataManager.PAGENUMBER;
int c = DataManager.PAGECOUNT;
if (DataManager.PAGENUMBER == 1) {
jMenuItem17.setEnabled(false);
jMenuItem5.setEnabled(false);
jMenuItem6.setEnabled(false);
}
else {
jMenuItem17.setEnabled(true);
jMenuItem5.setEnabled(true);
jMenuItem6.setEnabled(true);
}
if (p == c) {
jMenuItem18.setEnabled(false);
jButton8.setEnabled(false);
jButton7.setEnabled(false);
}
else {
jMenuItem18.setEnabled(true);
jButton8.setEnabled(true);
jButton7.setEnabled(true);
}
this.jPopupMenu1.show(jTable1, e.getX(), e.getY()); //在表格里显示右键菜单,设置显示坐标为,获取鼠标的X,Y坐标
}
}
public void jRadioButtonMenuItem1_actionPerformed(ActionEvent e) { //右键菜单的锁定选项
if (jRadioButtonMenuItem1.isSelected()) { //断判锁定按钮是否选中
jTable1.setEnabled(false); //设置表格是否可编辑
this.jMenuItem13.setEnabled(false);
this.jMenuItem14.setEnabled(false);
}
else {
jTable1.setEnabled(true);
this.jMenuItem13.setEnabled(true);
this.jMenuItem14.setEnabled(true);
}
}
public void jRadioButtonMenuItem2_actionPerformed(ActionEvent e) { //右键菜单的解锁选项
if (jRadioButtonMenuItem2.isSelected()) { //断判解锁按钮是否选中
jTable1.setEnabled(true); //设置表格是否可编辑
this.jMenuItem13.setEnabled(true);
this.jMenuItem14.setEnabled(true);
}
else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -