📄 editframe.java
字号:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
* author sunringove
* data 2007-01-17
* 社团成员资料编辑窗口
*/
public class EditFrame extends JFrame implements ActionListener,WindowListener{
private static final long serialVersionUID = 1L;
private JTextField nameField=new JTextField();
private JTextField IDField=new JTextField();
private JTextField genderField=new JTextField();
private JTextField yearField=new JTextField();
private JTextField majorField=new JTextField();
private JTextField departmentField=new JTextField();
private JTextField leagueField=new JTextField();
private JTextField etimeField=new JTextField();
private JTextField qtimeField=new JTextField();
private JLabel nameLabel=new JLabel("姓名 (不能超过4个中文字符)*");
private JLabel IDLabel=new JLabel("学号 (11位的数字)*");
private JLabel genderLabel=new JLabel("性别 (男 or 女)*");
private JLabel yearLabel=new JLabel("入学年份 (例如: 2004)*");
private JLabel majorLabel=new JLabel("专业 (例如: 软件学院)*");
private JLabel departmentLabel=new JLabel("系别 (例如: 软件工程)*");
private JLabel leagueLabel=new JLabel("所在社团 (例如: 魔兽社)*");
private JLabel etimeLabel=new JLabel("加入时间 (例如: 2004-11-25)*");
private JLabel qtimeLabel=new JLabel("退出时间 (例如: 2006-11-25)");
private JButton comfirmButton=new JButton("确定");
private JButton cancelButton=new JButton("取消");
public Member member;
public Member[] members;
public boolean hasActive;
public boolean isAdd;
public FrameOperator frameOperator;
public EditFrame(ManagerFrame managerFrame) {
frameOperator=new FrameOperator(managerFrame);
getContentPane().setLayout(new GridLayout(10,2));
setSize(400,400);
setLocation(60,70);
setTitle("sunringove");
setResizable(false);
getContentPane().add(nameLabel);
getContentPane().add(nameField);
getContentPane().add(IDLabel);
getContentPane().add(IDField);
getContentPane().add(genderLabel);
getContentPane().add(genderField);
getContentPane().add(yearLabel);
getContentPane().add(yearField);
getContentPane().add(majorLabel);
getContentPane().add(majorField);
getContentPane().add(departmentLabel);
getContentPane().add(departmentField);
getContentPane().add(leagueLabel);
getContentPane().add(leagueField);
getContentPane().add(etimeLabel);
getContentPane().add(etimeField);
getContentPane().add(qtimeLabel);
getContentPane().add(qtimeField);
getContentPane().add(comfirmButton);
getContentPane().add(cancelButton);
JMenuBar menuBar=new JMenuBar();
JMenu file=new JMenu("File");
JMenuItem item1,item2;
item1=new JMenuItem("确定");
file.add(item1);
file.addSeparator();
item2=new JMenuItem("取消");
file.add(item2);
menuBar.add(file);
setJMenuBar(menuBar);
nameField.addActionListener(this);
IDField.addActionListener(this);
genderField.addActionListener(this);
yearField.addActionListener(this);
majorField.addActionListener(this);
departmentField.addActionListener(this);
leagueField.addActionListener(this);
etimeField.addActionListener(this);
qtimeField.addActionListener(this);
comfirmButton.addActionListener(this);
cancelButton.addActionListener(this);
item1.addActionListener(this);
item2.addActionListener(this);
addWindowListener(this);
}
//************************************************************************************
//事件处理
//************************************************************************************
public void actionPerformed(ActionEvent e) {
String value=e.getActionCommand();
StringBuffer result=new StringBuffer("");
member=new Member();
//确定用户的资料已经填写完毕
hasActive=false;
if(value.equals("确定")){
//检测用户输入资料的合法性
if (nameField.getText().toString().length()>4||nameField.getText().toString().length()==0){
result.append("姓名 "); //用于保存出错资料所在的位置
}
if(isAdd){
if( IDField.getText().length()!=11||IDField.getText().toString().length()==0||!isDigital(IDField.getText())||isDuplicated(IDField.getText())){
result.append("学号 ");
}
}
else{
if( IDField.getText().length()!=11||IDField.getText().toString().length()==0||!isDigital(IDField.getText())){
result.append("学号 ");
}
}
if(!genderField.getText().toString().equals("男")&&!genderField.getText().toString().equals("女")){
result.append("性别 ");
}
if( yearField.getText().length()!=4){
result.append("入学年份 ");
}
if( majorField.getText()==null){
result.append("专业 ");
}
if( departmentField.getText().toString().length()==0){
result.append("系别 ");
}
if( leagueField.getText().toString().length()==0){
result.append("所在社团 ");
}
if( etimeField.getText().toString().length()==0){
result.append("加入时间 ");
}
if(result.toString().length()==0){
JOptionPane.showMessageDialog(this,"记录保存!","warning",JOptionPane.WARNING_MESSAGE);
member.setName(nameField.getText());
member.setID(IDField.getText());
member.setGender(genderField.getText());
member.setYear(yearField.getText());
member.setMajor(majorField.getText());
member.setDepartment(departmentField.getText());
member.setLeague(leagueField.getText());
member.setenterTime(etimeField.getText());
member.setquitTime(qtimeField.getText());
this.setVisible(false);
frameOperator.setmFrameMember(member);
frameOperator.setmActiveTrue();
isAdd=false;
}
else{
JOptionPane.showMessageDialog(this,result.toString()+"输入数值非法!","warning",JOptionPane.WARNING_MESSAGE);
}
}
else{
this.setVisible(false);
}
}
//************************************************************************************
//返回对象
//************************************************************************************
public Member getMember(){
return member;
}
//************************************************************************************
//确定当前状态是添加还是编辑
//************************************************************************************
public void setisAdd(){
isAdd=true;
}
// ************************************************************************************
//判断字符串是否为数字
//************************************************************************************
public boolean isDigital(String string){
boolean isDigital=true;
try{
Double.parseDouble(string);
}catch(Exception e){
isDigital=false;
}
System.out.println(isDigital);
return isDigital;
}
// ************************************************************************************
//判断字符串是否重复出现在记录中
//************************************************************************************
public boolean isDuplicated(String string){
boolean isDuplicated=false;
int index=frameOperator.getmIndex();
members=new Member[index];
members=frameOperator.getmMember();
for(int i=0;i<index;i++){
if(members[i].getID().equals(string)){
isDuplicated=true;
i=index; //提前退出
}
}
System.out.println(isDuplicated);
return isDuplicated;
}
// ************************************************************************************
//设置编辑窗口的资料 显示指定的内容
//************************************************************************************
public void setTextField(Member member){
nameField.setText(member.getName());
IDField.setText(member.getID());
genderField.setText(member.getGender());
yearField.setText(member.getYear());
majorField.setText(member.getMajor());
departmentField.setText(member.getDepartment());
leagueField.setText(member.getLeague());
etimeField.setText(member.getenterTime());
qtimeField.setText(member.getquitTime());
}
// ************************************************************************************
//窗口事件处理
//************************************************************************************
public void windowOpened(WindowEvent arg0) {}
public void windowClosing(WindowEvent arg0) {
this.setVisible(false);
}
public void windowIconified(WindowEvent arg0) {}
public void windowDeiconified(WindowEvent arg0) { }
public void windowActivated(WindowEvent arg0) {}
public void windowDeactivated(WindowEvent arg0) {}
public void windowClosed(WindowEvent arg0) {}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -