?? codeset.java
字號:
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();
//用二維數組存儲系統(tǒng)中所用到的代碼表物理名稱及邏輯名稱
String codeTables[][] = {
{
"Gender", "性別"}
, {
"Heading", "房屋朝向"}
, {
"HouseType", "房屋類型"}
, {
"HouseUsage", "房屋用途"}
, {
"Relation", "與房主關系"}
, {
"UseType", "使用方式"}
};
DefaultTableModel model = new DefaultTableModel();
//定義JTable為DefaultTableModel的實例model模式
JTable tblCode = new JTable(model);
//代碼值鏈表,用于建立列表序號與代碼值的對應關系
LinkedList linkID = new LinkedList();
//生成數據庫操作類新實例,用于數據庫操作
DBManager db = new DBManager();
//當前操作表
String curTable = new String();
//當前操作代碼ID
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
isInit = true;
//從數組codeTables中讀取代碼表內容,將代碼表邏輯名稱顯示在組合框中
for (int i = 0; i < codeTables.length; i++) {
cboCode.addItem(codeTables[i][1]);
}
//設置組合框選中項為空
cboCode.setSelectedItem(null);
//組合框初始化完畢,設置isInit為false
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;
}
//設置按鈕的可用性
//傳入四個boolean類型的參數,分別設置新增、修改、刪除和保存按鈕的可用性
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";
//定義變量tempvector存儲代碼表數據
Vector tempvector;
//清空代碼值鏈表
linkID.clear();
//清空結果列表表頭
model.setColumnCount(0);
//清空結果列表
model.setRowCount(0);
//初始化結果列表表頭
model.addColumn("代碼值");
model.addColumn("代碼描述");
try {
//傳入查詢語句,得到結果集
ResultSet rs = db.getResult(sql);
//判斷結果集是否為空
if (rs.first()) {
//若不為空,移動游標,循環(huán)加載數據
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, "房產管理系統(tǒng)", "代碼表為空!");
rs.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
//設置操作類型為"none",表示沒有進行任何操作
setOperType("none");
}
//代碼表列表組合框響應事件
void cboCode_actionPerformed(ActionEvent e) {
//因為在對列表組合框進行初始化時,也會觸發(fā)該事件,而加載過程中cboCode.getSelectedIndex()為-1,
//所以會出現錯誤,因此定義一個boolean型變量用于判斷是否是初始化過程。不是初始化過程時,才執(zhí)行代碼。
if (!isInit) {
//根據選中項序號從代碼表數組中得到當前操作表
curTable = codeTables[cboCode.getSelectedIndex()][0];
//調用fullCode函數,顯示當前代碼表內容
fullCode(curTable);
}
}
//結果列表鼠標點擊響應事件
void tblCode_mouseClicked(MouseEvent e) {
//根據結果列表選中行序號從代碼值鏈表中得到當前操作代碼值
curID = (linkID.get(tblCode.getSelectedRow())).toString();
//設置代碼值輸入框內容為當前操作代碼值
txtCode.setText(curID);
//調用函數DBManager類中的getByField函數,根據代碼值得到代碼描述,并顯示在代碼描述輸入框中
txtCodeDes.setText(db.getByField(curTable, "DESCRIPTION",
"CODE='" + curID + "'"));
//設置新增、修改和刪除按鈕可用
btnSetEnabled(true, true, true, false);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -