📄 editeframe.java
字号:
package com.worker.table;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import java.awt.datatransfer.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.util.*;
import java.sql.*;
import javax.swing.table.*;
import java.lang.*;
import com.tool.*;
import com.worker.db.*;
import com.worker.information.*;
import com.worker.main.*;
import com.worker.table.*;
import com.worker.userpan.*;
/**
*
* @author Administrator
*/
public class EditeFrame extends JPanel {
private DbCon dbcon;
private ManageCommunication mC;
private HashMap fields;
// panels to organize GUI
private JPanel leftPanel, rightPanel;
private JPanel bottonP;
public static final String workerID="编号", name = "姓名",
sex = "性别", age = "年龄",
position = "职务", cellphone = "手机", salary = "薪水",
userl = "帐号", userp = "密码", classify = "权限";
/** Creates a new instance of EditeFrame */
public EditeFrame() {
dbcon=DbCon.getinstance();
createpan();
clearT();
}
private void createpan() {
fields = new HashMap();
leftPanel = new JPanel();
leftPanel.setLayout( new GridLayout( 10, 1, 2, 2 ) );
rightPanel = new JPanel();
rightPanel.setLayout( new GridLayout( 10, 1, 2, 2 ) );
createRow(workerID);
JTextField idF=(JTextField)fields.get(workerID);
idF.setEditable(false);
createRow(name);
createRow(sex);
createRow(age);
createRow(position);
createRow(cellphone);
createRow(salary);
createRow(userl);
createRow(userp);
createRow(classify);
add( leftPanel, BorderLayout.WEST );
add( rightPanel, BorderLayout.EAST );
bottonP=new JPanel();
bottonP.setLayout(new GridLayout(2,2,2,2));
JButton refB = new JButton("更新");
refB.addActionListener( new ActionListener( ) {
public void actionPerformed( final ActionEvent ae ) {
updateW(); }
} ) ;
JButton insB= new JButton("添加");
insB.addActionListener( new ActionListener( ) {
public void actionPerformed( final ActionEvent ae ) {
insertW(); }
} ) ;
JButton cleB = new JButton("重置");
cleB.addActionListener( new ActionListener( ) {
public void actionPerformed( final ActionEvent ae ) {
clearT(); }
} ) ;
JButton delB = new JButton("删除");
delB.addActionListener( new ActionListener( ) {
public void actionPerformed( final ActionEvent ae ) {
deleteW(); }
} ) ;
bottonP.add(refB);
bottonP.add(insB);
bottonP.add(cleB);
bottonP.add(delB);
add(bottonP,BorderLayout.SOUTH);
}
// set Worker then use its properties to
// place data in each JTextField
public void setTexAb(String va,boolean bool) {
JTextField textA =( JTextField ) fields.get( va );
textA.setEditable(bool);
}
public void setBotAb(boolean refA,boolean insA,boolean cleA,boolean delA) {
bottonP.getComponent(0).setEnabled(refA);
bottonP.getComponent(1).setEnabled(insA);
bottonP.getComponent(2).setEnabled(cleA);
bottonP.getComponent(3).setEnabled(delA);
}
public void setUIFromWorker( Worker wo ) {
setField(workerID,String.valueOf(wo.getID()) );
setField(name,wo.getname());
setField(sex,wo.getsex());
setField( age,String.valueOf(wo.getage()) );
setField(position,wo.getposition());
setField(cellphone,wo.getcellphone());
setField(salary,String.valueOf(wo.getsalary()) );
setField(userl,wo.getuserl());
setField(userp,wo.getuserp());
setField(classify,String.valueOf(wo.getclassify()));
}
// store AddressBookEntry data from GUI and return
// AddressBookEntry
public Worker getWorkerFromUI() {
Worker wo=new Worker();
wo.setID(Integer.parseInt(getField(workerID)) );
wo.setname(getField(name));
wo.setsex(getField(sex));
wo.setage(Integer.parseInt(getField(age)));
wo.setposition(getField(position));
wo.setcellphone(getField(cellphone));
wo.setsalary(Integer.parseInt(getField(salary)));
wo.setuserl(getField(userl));
wo.setuserp(getField(userp));
wo.setclassify(Integer.parseInt(getField(classify)));
return wo;
}
// set text in JTextField by specifying field's
// name and value
private void setField( String fieldName, String value ) {
JTextField field =
( JTextField ) fields.get( fieldName );
field.setText( value );
}
// get text in JTextField by specifying field's name
private String getField( String fieldName ) {
JTextField field =
( JTextField ) fields.get( fieldName );
return field.getText();
}
// utility method used by constructor to create one row in
// GUI containing JLabel and JTextField
private void createRow( String nameC ) {
JLabel label = new JLabel( nameC, SwingConstants.CENTER );
label.setBorder(BorderFactory.createEmptyBorder(2,1,2,1) );
leftPanel.add( label );
JTextField field = new JTextField(11);
rightPanel.add( field );
fields.put( nameC, field );
}
private boolean checkAvailable() {
ToolKit tK=new ToolKit();
if (tK.isNull(getField(userl)) ) return false;
if (tK.isNull(getField(userp)) ) return false;
if (tK.isNull(getField(classify)) ) return false;
if (!tK.isInt(getField(classify)) ) return false;
if (!tK.isInt(getField(age)) ) return false;
if (!tK.isInt(getField(salary)) ) return false;
return true;
}
private void clearT() {
setUIFromWorker(new Worker());
}
//更新面板
public void upUI() {
int rowAt=mC.gettablestr().getPreId();
if (rowAt==-1) {
clearT();
return;
}
setUIFromWorker(dbcon.findWorker(rowAt));
}
//更改数据
public void updateW() {
if (!checkAvailable()) {
JOptionPane.showMessageDialog(null, " 必须输入:系统帐号,系统密码,权限;并且工资与年龄必须为整数 ", " 错误 " , JOptionPane.ERROR_MESSAGE);
return;
}
if (Integer.parseInt(getField(workerID))==-1) {
JOptionPane.showMessageDialog(null, " 无法更新,当前用户不存在 ", " 错误 " , JOptionPane.ERROR_MESSAGE);
return;
}
dbcon.updateWorker(getWorkerFromUI());
this.upUI();
mC.getdatatable().upTableUI();
}
//插入员工
public void insertW() {
if (!checkAvailable()) {
JOptionPane.showMessageDialog(null, " 必须输入:系统帐号,系统密码,权限;并且工资与年龄必须为整数 ", " 错误 " , JOptionPane.ERROR_MESSAGE);
return;
}
dbcon.insertWorker(getWorkerFromUI());
this.upUI();
mC.getdatatable().upTableUI();
}
//删除员工
public void deleteW() {
if (Integer.parseInt(getField(workerID))==-1) {
JOptionPane.showMessageDialog(null, " 当前没有选择任何员工 ", " 错误 " , JOptionPane.ERROR_MESSAGE);
return;
}
dbcon.deleteWorker(Integer.parseInt(getField(workerID)));
mC.getdatatable().upTableUI();
this.upUI();
}
public void setmanagecommunication(ManageCommunication va) {
mC=va;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -