📄 departmentgui.java
字号:
package smoker.server;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import javax.swing.*;
import smoker.tools.*;
public class DepartmentGUI extends JFrame implements ActionListener{
public static final long serialVersionUID = 0;
private JComboBox combDptName;
private JTextArea taDptMemo;
private Container container;
private JButton btnUpdate;
private JButton btnDel;
private JButton btnCancel;
private JButton btnAdd;
private Department newDpt;
private IServerCenter iServerCenter;
public DepartmentGUI(IServerCenter iServerCenter) {
this.iServerCenter = iServerCenter;
this.setTitle("部门管理");
this.setSize(350, 300);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.init();
setComponents();
GUIManager.CenterWindow(this);
}
private void init() {
container = this.getContentPane();
container.setLayout(new BorderLayout());
combDptName = new JComboBox(iServerCenter.getDepartments());
taDptMemo = new JTextArea();
taDptMemo.setLineWrap(true);
btnUpdate = GUIManager.createJButton("开始编辑", null, this, "btnUpdate");
btnAdd = GUIManager.createJButton("添加", null, this, "btnAdd");
btnDel = GUIManager.createJButton("删除", null, this, "btnDel");
btnCancel = GUIManager.createJButton("取消", null, this, "btnCancel");
canEditable(false);
combDptName.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
Department dpt = (Department)e.getItem();
taDptMemo.setText(dpt.getDptMemo());
}
}
});
}
private void setComponents() {
JLabel labDpt = new JLabel("名称:");
JPanel namePane = new JPanel();
namePane.setLayout(new BorderLayout());
namePane.add(Box.createRigidArea(new Dimension(0, 5)), BorderLayout.NORTH);
namePane.add(labDpt, BorderLayout.WEST);
namePane.add(combDptName, BorderLayout.CENTER);
namePane.add(Box.createRigidArea(new Dimension(150, 0)), BorderLayout.EAST);
JPanel taPanel = new JPanel();
taPanel.setLayout(new BorderLayout());
TitledBorder titleBor = BorderFactory.createTitledBorder("部门描述");
taPanel.setBorder(titleBor);
taPanel.add(new JScrollPane(taDptMemo), BorderLayout.CENTER);
JPanel btnPanel = new JPanel();
btnPanel.setLayout(new GridLayout(1, 4));
btnPanel.add(btnUpdate);
btnPanel.add(btnAdd);
btnPanel.add(btnDel);
btnPanel.add(btnCancel);
JPanel panelbtn = new JPanel();
panelbtn.setLayout(new BorderLayout());
panelbtn.add(btnPanel, BorderLayout.EAST);
container.add(namePane, BorderLayout.NORTH);
container.add(taPanel, BorderLayout.CENTER);
container.add(panelbtn, BorderLayout.SOUTH);
}
private void canEditable(boolean flag) {
combDptName.setEnabled(flag);
taDptMemo.setEditable(flag);
}
public void actionPerformed(ActionEvent e) {
String src = e.getActionCommand();
if (src.equals("btnUpdate")) {
if (btnUpdate.getText() == "开始编辑") {
canEditable(true);
btnUpdate.setText("完成编辑");
} else if (btnUpdate.getText() == "完成编辑") {
String dptName = combDptName.getSelectedItem().toString();
String dptMemo = taDptMemo.getText();
Department editDptInfo = new Department();
editDptInfo.setDptName(dptName);
editDptInfo.setDptMemo(dptMemo);
int ok = iServerCenter.upDateDpt(editDptInfo);
if (ok == 0) {
canEditable(true);
Msg.showOk("修改成功!");
Department newdpt = (Department) combDptName.getSelectedItem();
newdpt.setDptName(dptName);
newdpt.setDptMemo(dptMemo);
} else {
Msg.showSel("修改失败!");
}
canEditable(false);
btnUpdate.setText("开始编辑");
}
} else if (src.equals("btnAdd")) {
String dptName = Msg.showInput("请输入部门名称");
if (dptName == null) {
return;
}
if (dptName.trim().length() != 0) {
newDpt = new Department();
newDpt.setDptName(dptName);
combDptName.addItem(newDpt);
combDptName.setSelectedIndex(combDptName.getItemCount() - 1);
int ok = iServerCenter.addDpt(newDpt);
if (ok == 1) {
Msg.showSel("部门已存在!");
} else {
Msg.showOk("添加成功!");
}
} else {
Msg.show("部门名称不能为空!");
}
} else if (src.equals("btnDel")) {
Department delDpt = (Department)combDptName.getSelectedItem();
if (Msg.showSel("你确定要删除[ " + delDpt.getDptName() + " ]部门吗?") == JOptionPane.YES_OPTION) {
int ok = iServerCenter.delDpt(delDpt.toString());
if (ok == 1) {
Msg.show("输入的部门名称不存在!");
return;
}else if(ok == 2) {
Msg.show("该部门至少还有一位员工,不能直接删除\n请转移员工后再删除此部门");
return;
}
Msg.showOk("删除成功!");
combDptName.removeItem(delDpt);
}
} else {
this.dispose();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -