📄 codeset.java~40~
字号:
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
import java.sql.*;
public class CodeSet
extends JFrame {
JLabel jLabel1 = new JLabel();
XYLayout xYLayout1 = new XYLayout();
JComboBox cboCode = new JComboBox();
JScrollPane jScrollPane1 = new JScrollPane();
JTextField txtCodeDes = new JTextField();
JButton btnAdd = new JButton();
JButton btnEdit = new JButton();
JButton btnDelete = new JButton();
JButton btnSave = new JButton();
JButton btnExit = new JButton();
JLabel jLabel2 = new JLabel();
JTextField txtCode = new JTextField();
JLabel jLabel3 = new JLabel();
//用二维数组存储系统中所用到的代码表物理名称及逻辑名称
String codeTables[][] = {
{
"Gender", "性别"}
, {
"Heading", "房屋朝向"}
, {
"HouseType", "房屋类型"}
, {
"HouseUsage", "房屋用途"}
, {
"Relation", "与房主关系"}
, {
"UseType", "使用方式"}
};
DefaultTableModel model = new DefaultTableModel();
//定义JTable为DefaultTableModel的实例model模式
JTable tblCode = new JTable(model);
//代码ID列表,用于建立列表序号与代码值的对应关系
LinkedList linkID = new LinkedList();
//生成数据库操作类新实例,用于数据库操作
DBManager db = new DBManager();
String curTable = new String();
String curID = new String();
boolean isInit;
String operType = new String();
public CodeSet() {
try {
jbInit();
initForm();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
jLabel1.setFont(new java.awt.Font("宋体", 0, 12));
jLabel1.setText("选择要维护的代码表:");
this.getContentPane().setLayout(xYLayout1);
cboCode.setBackground(SystemColor.activeCaptionBorder);
cboCode.setFont(new java.awt.Font("宋体", 0, 12));
cboCode.addActionListener(new CodeSet_cboCode_actionAdapter(this));
xYLayout1.setWidth(388);
xYLayout1.setHeight(311);
btnAdd.setFont(new java.awt.Font("宋体", 0, 12));
btnAdd.setText("新增");
btnAdd.addActionListener(new CodeSet_btnAdd_actionAdapter(this));
btnEdit.setFont(new java.awt.Font("宋体", 0, 12));
btnEdit.setText("修改");
btnEdit.addActionListener(new CodeSet_btnEdit_actionAdapter(this));
btnDelete.setText("删除");
btnDelete.addActionListener(new CodeSet_btnDelete_actionAdapter(this));
btnDelete.setFont(new java.awt.Font("宋体", 0, 12));
btnSave.setText("保存");
btnSave.addActionListener(new CodeSet_btnSave_actionAdapter(this));
btnSave.setFont(new java.awt.Font("宋体", 0, 12));
btnExit.setText("退出");
btnExit.addActionListener(new CodeSet_btnExit_actionAdapter(this));
btnExit.setFont(new java.awt.Font("宋体", 0, 12));
txtCodeDes.setFont(new java.awt.Font("宋体", 0, 12));
txtCodeDes.setText("");
this.setTitle("代码表设置");
jLabel2.setText("代码值:");
jLabel2.setFont(new java.awt.Font("宋体", 0, 12));
txtCode.setFont(new java.awt.Font("宋体", 0, 12));
txtCode.setText("");
jLabel3.setFont(new java.awt.Font("宋体", 0, 12));
jLabel3.setText("代码描述:");
tblCode.setFont(new java.awt.Font("宋体", 0, 12));
tblCode.setVerifyInputWhenFocusTarget(false);
tblCode.addMouseListener(new CodeSet_tblCode_mouseAdapter(this));
this.getContentPane().add(jScrollPane1, new XYConstraints(19, 77, 346, 146));
jScrollPane1.getViewport().add(tblCode, null);
this.getContentPane().add(jLabel1, new XYConstraints(21, 14, 136, -1));
this.getContentPane().add(cboCode, new XYConstraints(20, 38, 345, 26));
this.getContentPane().add(txtCodeDes, new XYConstraints(189, 231, 176, 25));
this.getContentPane().add(btnExit, new XYConstraints(300, 267, 61, 27));
this.getContentPane().add(btnSave, new XYConstraints(231, 267, 61, 27));
this.getContentPane().add(btnEdit, new XYConstraints(86, 267, 61, 27));
this.getContentPane().add(btnAdd, new XYConstraints(19, 267, 61, 27));
this.getContentPane().add(btnDelete, new XYConstraints(155, 267, 61, 27));
this.getContentPane().add(jLabel2, new XYConstraints(17, 236, 52, -1));
this.getContentPane().add(txtCode, new XYConstraints(65, 231, 51, 25));
this.getContentPane().add(jLabel3, new XYConstraints(125, 237, 65, -1));
}
void initForm() {
isInit = true;
for (int i = 0; i < codeTables.length; i++) {
cboCode.addItem(codeTables[i][1]);
}
cboCode.setSelectedItem(null);
isInit = false;
txtCode.setEnabled(false);
txtCodeDes.setEnabled(false);
btnSetEnabled(false, false, false, false);
}
void setOperType(String type) {
operType = type;
}
void setCurID(String ID) {
curID = ID;
}
void btnSetEnabled(boolean add, boolean edit, boolean delete, boolean save) {
btnAdd.setEnabled(add);
btnEdit.setEnabled(edit);
btnDelete.setEnabled(delete);
btnSave.setEnabled(save);
}
void fullCode(String table) {
String sql = "select * from " + table + " order by CODE";
Vector tempvector;
linkID.clear();
model.setColumnCount(0);
model.setRowCount(0);
model.addColumn("代码值");
model.addColumn("代码描述");
try {
ResultSet rs = db.getResult(sql);
if (rs.first()) {
rs.beforeFirst();
while (rs.next()) {
tempvector = new Vector(1, 1);
tempvector.add(rs.getString("CODE"));
linkID.add(rs.getString("CODE"));
tempvector.add(rs.getString("DESCRIPTION"));
model.addRow(tempvector);
}
rs.close();
}
else {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "代码表为空!");
rs.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
setOperType("none");
}
void btnExit_actionPerformed(ActionEvent e) {
if (!operType.equals("none")) {
int ir = CommonDialog.showDialog(3, "房产管理系统", "当前操作尚未保存,确定要退出吗?");
if (ir == 2) {
return;
}
}
this.dispose();
}
void cboCode_actionPerformed(ActionEvent e) {
if (!isInit) {
curTable = codeTables[cboCode.getSelectedIndex()][0];
fullCode(curTable);
}
}
void tblCode_mouseClicked(MouseEvent e) {
curID = (linkID.get(tblCode.getSelectedRow())).toString();
txtCode.setText(curID);
txtCodeDes.setText(db.getByField(curTable, "DESCRIPTION",
"CODE='" + curID + "'"));
btnSetEnabled(true,true,true,false);
}
void btnAdd_actionPerformed(ActionEvent e) {
if (!operType.equals("none")) {
int ir = CommonDialog.showDialog(3, "房产管理系统", "当前操作尚未保存,确定要新增吗?");
if (ir == 2) {
return;
}
}
txtCodeDes.setEnabled(true);
String code=new String();
code = db.getID(curTable, "CODE");
txtCode.setText(code);
txtCodeDes.setText("");
btnSetEnabled(true, false, false, true);
setCurID("");
setOperType("add");
}
boolean checkData() {
if (txtCode.getText().trim().equals("")) {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "代码值不能为空!");
txtCode.setFocusable(true);
return false;
}
if (txtCodeDes.getText().trim().equals("")) {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "代码描述不能为空!");
txtCodeDes.setFocusable(true);
return false;
}
return true;
}
void btnEdit_actionPerformed(ActionEvent e) {
txtCode.setEnabled(false);
txtCodeDes.setEnabled(true);
btnSetEnabled(true, true, false, true);
setOperType("edit");
}
void btnSave_actionPerformed(ActionEvent e) {
if (!checkData()) {
return;
}
String sql = new String();
if (operType.equals("add")) {
sql = "insert into "+curTable+" values('" + txtCode.getText() + "','" +
txtCodeDes.getText() +"')";
}
else if (operType.equals("edit")) {
sql = "update "+ curTable+" set DESCRIPTION='" + txtCodeDes.getText() + "' where CODE='" + curID + "'";
}
if (db.executeSql(sql)) {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "数据库操作成功!");
btnSetEnabled(true, true, true, false);
setOperType("none");
fullCode(curTable);
txtCodeDes.setEnabled(false);
}
else {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "数据库操作失败,请重试!");
}
}
void btnDelete_actionPerformed(ActionEvent e) {
if (!curID.equals("")) {
int ir = CommonDialog.showDialog(3, "房产管理系统", "确定要删除当前记录吗?");
if (ir == 2) {
return;
}
String sql = "delete from "+curTable+" where CODE='" + curID + "'";
if (db.executeSql(sql)) {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "删除记录成功!");
txtCode.setText("");
txtCodeDes.setText("");
btnSetEnabled(true, false, false, false);
setOperType("none");
fullCode(curTable);
}
else {
CommonDialog.showDialog(CommonDialog.OK, "房产管理系统", "删除记录失败,请重试!");
}
}
}
}
class CodeSet_btnExit_actionAdapter
implements java.awt.event.ActionListener {
CodeSet adaptee;
CodeSet_btnExit_actionAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnExit_actionPerformed(e);
}
}
class CodeSet_cboCode_actionAdapter
implements java.awt.event.ActionListener {
CodeSet adaptee;
CodeSet_cboCode_actionAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cboCode_actionPerformed(e);
}
}
class CodeSet_tblCode_mouseAdapter
extends java.awt.event.MouseAdapter {
CodeSet adaptee;
CodeSet_tblCode_mouseAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.tblCode_mouseClicked(e);
}
}
class CodeSet_btnAdd_actionAdapter
implements java.awt.event.ActionListener {
CodeSet adaptee;
CodeSet_btnAdd_actionAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnAdd_actionPerformed(e);
}
}
class CodeSet_btnEdit_actionAdapter
implements java.awt.event.ActionListener {
CodeSet adaptee;
CodeSet_btnEdit_actionAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnEdit_actionPerformed(e);
}
}
class CodeSet_btnSave_actionAdapter
implements java.awt.event.ActionListener {
CodeSet adaptee;
CodeSet_btnSave_actionAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnSave_actionPerformed(e);
}
}
class CodeSet_btnDelete_actionAdapter implements java.awt.event.ActionListener {
CodeSet adaptee;
CodeSet_btnDelete_actionAdapter(CodeSet adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnDelete_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -