每日总结-23.11.27

发布时间 2023-11-27 20:26:24作者: lao_bing
package Interface;
import gongneng.BackGroundPanel;
import gongneng.FileTest;
import gongneng.selfData;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import static java.awt.Toolkit.getDefaultToolkit;
public class Introduction {
    FileTest f = new FileTest();
    JFrame jf = new JFrame("编辑资料");
    static final int WIDTH = 800;
    static final int HEIGHT = 650;
    //组装视图
    public void init() throws IOException {
        Toolkit kit = getDefaultToolkit();
        Dimension screenSize;
        screenSize = kit.getScreenSize();
        int width = screenSize.width;
        int height = screenSize.height;
        int x = (width - WIDTH) / 2;
        int y = (height - HEIGHT) / 2;
        jf.setBounds(x, y, WIDTH, HEIGHT);
        jf.setResizable(false);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.setIconImage(ImageIO.read(new File("images/beijing.jpg")));
        BackGroundPanel bgPanel = new BackGroundPanel(ImageIO.read(new File("images/beijing.jpg")));
        //组装登录相关的内容
        Box userBox = Box.createVerticalBox();
        //昵称和QQ、
        Box nickBox = Box.createHorizontalBox();
        JLabel nickLabel = new JLabel("昵称");
        nickLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JTextField nickField = new JTextField("",15);
        JLabel qqLabel = new JLabel("qq");
        qqLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JTextField qqField = new JTextField("",15);
        nickBox.add(nickLabel);
        nickBox.add(Box.createHorizontalStrut(50));
        nickBox.add(nickField);
        nickBox.add(Box.createHorizontalStrut(10));
        nickBox.add(qqLabel);
        nickBox.add(Box.createHorizontalStrut(20));
        nickBox.add(qqField);
        //性别、微信
        Box sexBox = Box.createHorizontalBox();
        JLabel sexLabel = new JLabel("性别");
        sexLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JRadioButton male = new JRadioButton("男",false);
        JRadioButton female = new JRadioButton("女",false);
        ButtonGroup group = new ButtonGroup();
        group.add(male);
        group.add(female);
        JLabel weiXinLabel = new JLabel("微信");
        nickLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JTextField weiXinField = new JTextField("",15);
        sexBox.add(sexLabel);
        sexBox.add(Box.createHorizontalStrut(50));
        sexBox.add(male);
        sexBox.add(Box.createHorizontalStrut(50));
        sexBox.add(female);
        sexBox.add(Box.createHorizontalStrut(90));
        sexBox.add(weiXinLabel);
        sexBox.add(Box.createHorizontalStrut(30));
        sexBox.add(weiXinField);
        //生日
        Box birthBox = Box.createHorizontalBox();
        JLabel birthLabel =new JLabel("生日");
        birthLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JLabel yearLabel =new JLabel("年");
        JLabel monthLabel =new JLabel("月");
        JLabel dayLabel =new JLabel("日");
        String year[] = {"1987","1988","1989","1990","1991","1992","1993","1994","1995",
                "1996","1997","1998","1999","2000","2001","2002","2003","2004","2005"};
        JComboBox cb1 = new JComboBox(year);
        String month[] = {"1","2","3","4","5","6","7","8","9","10","11","12"};
        JComboBox cb2 = new JComboBox(month);
        String day[] = {"1","2","3","4","5","6","7","8","9","10",
                "11","12","13","14","15","16","17","18","19","20",
                "21","22","23","24","25","26","27","28","29","30","31"};
        JComboBox cb3 = new JComboBox(day);
        birthBox.add(birthLabel);
        birthBox.add(Box.createHorizontalStrut(50));
        birthBox.add(cb1);
        birthBox.add(Box.createHorizontalStrut(10));
        birthBox.add(yearLabel);
        birthBox.add(Box.createHorizontalStrut(10));
        birthBox.add(cb2);
        birthBox.add(Box.createHorizontalStrut(10));
        birthBox.add(monthLabel);
        birthBox.add(Box.createHorizontalStrut(10));
        birthBox.add(cb3);
        birthBox.add(Box.createHorizontalStrut(10));
        birthBox.add(dayLabel);
        //职业
        Box jobBox = Box.createHorizontalBox();
        JLabel jobLabel = new JLabel("职业");
        jobLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JTextField jobField = new JTextField("",15);
        jobBox.add(jobLabel);
        jobBox.add(Box.createHorizontalStrut(50));
        jobBox.add(jobField);
        //爱好
        Box hobbyBox = Box.createHorizontalBox();
        JLabel hobbyLabel = new JLabel("爱好");
        hobbyLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JCheckBox sing =  new JCheckBox("唱歌");
        JCheckBox dance = new JCheckBox("跳舞");
        JCheckBox basketball = new JCheckBox("打篮球");
        JCheckBox draw = new JCheckBox("画画");
        JCheckBox play = new JCheckBox("打游戏");
        JCheckBox read = new JCheckBox("阅读");
        JCheckBox act = new JCheckBox("表演");
        JCheckBox eat = new JCheckBox("吃");
        JCheckBox design = new JCheckBox("设计");
        hobbyBox.add(hobbyLabel);
        hobbyBox.add(Box.createHorizontalStrut(50));
        JCheckBox[] hobbyCheck = {basketball,play,read,act,dance,sing,eat,draw,design};
        for(int i = 0;i<9;i++){
            hobbyBox.add(hobbyCheck[i]);
        }
        //签名
        Box signBox = Box.createHorizontalBox();
        JLabel signLabel = new JLabel("签名");
        signLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JTextField signField = new JTextField("",15);
        signBox.add(signLabel);
        signBox.add(Box.createHorizontalStrut(50));
        signBox.add(signField);
        //个人说明
        Box pgBox  = Box.createHorizontalBox();
        JLabel pgLabel = new JLabel("个人说明");
        pgLabel.setFont(new Font("华文行楷",Font.BOLD,30));
        JTextArea pg=new JTextArea("",4,4);
        pg.setLineWrap(true);    //设置文本域中的文本为自动换行
        pgBox.add(pgLabel);
        signBox.add(Box.createHorizontalStrut(20));
        pgBox.add(pg);
        //按钮
        Box annvBox = Box.createHorizontalBox();
        JButton addButton = new JButton("添  加");
        addButton.setFont(new Font("华文行楷",Font.BOLD,25));
        JButton shanchuButton = new JButton("删  除");
        shanchuButton.setFont(new Font("华文行楷",Font.BOLD,25));
        JButton checkButton = new JButton("查看");
        checkButton.setFont(new Font("华文行楷",Font.BOLD,25));
        annvBox.add(addButton);
        annvBox.add(Box.createHorizontalStrut(50));
        annvBox.add(shanchuButton);
        annvBox.add(Box.createHorizontalStrut(50));
        annvBox.add(checkButton);
        Box jianjieBox = Box.createHorizontalBox();
        JTextArea jianjie = new JTextArea();
        jianjie.setVisible(false);
        jianjieBox.add(jianjie);
        selfData data = new selfData();

        class myListener implements ActionListener{
            @Override
            public void actionPerformed(ActionEvent e) {
                String sex = "";
                Object source = e.getSource();
                if(source == addButton){
                    if(f.find(nickField.getText())!=-1){
                        JOptionPane.showMessageDialog(null,"已存在!");
                        nickField.setText("");
                        qqField.setText("");
                        sex = "";
                        weiXinField.setText("");
                        signField.setText("");
                        pg.setText("");
                        return ;
                    }
                     if(male.isSelected()){
                         sex = "男";
                     }
                     if(female.isSelected()){
                         sex = "女";
                     }
                     String hobby = "";
                     if(draw.isSelected()) hobby += "画画";
                     if(basketball.isSelected()) hobby += "打篮球";
                     if(act.isSelected()) hobby += "表演";
                     if(eat.isSelected()) hobby += "吃";
                     if(play.isSelected()) hobby += "打游戏";
                     if(dance.isSelected()) hobby += "跳舞";
                     if(sing.isSelected()) hobby += "唱歌";
                     if(design.isSelected()) hobby += "设计";
                     if(read.isSelected()) hobby += "阅读";
                    String c1,c2,c3,job;
                    c1=(String)cb1.getSelectedItem();
                    c2=(String)cb2.getSelectedItem();
                    c3=(String)cb3.getSelectedItem();
                    String birth = c1+"年"+c2+"月"+c3+"日";

                    String nick = nickField.getText();
                    String qq = qqField.getText();
                    String weiXin = weiXinField.getText();
                    String Job = jobField.getText();
                    String sign = signField.getText();
                    String PG = pg.getText();
                    if (nick.equals(""))
                        nick = null;
                    if (sex.equals(""))
                        sex = null;
                    if (qq.equals(""))
                        qq = null;
                    if (weiXin.equals(""))
                        weiXin = null;
                    if (birth.equals(""))
                        birth = null;
                    if (Job.equals(""))
                        Job = null;
                    if (hobby.equals(""))
                        hobby = null;
                    if (sign.equals(""))
                        sign = null;
                    if (PG.equals(""))
                        PG = null;
                    data.setNick(nick);
                    data.setSex(sex);
                    data.setQq(qq);
                    data.setWeixin(weiXin);
                    data.setBirth(birth);
                    data.setJob(Job);
                    data.setHobby(hobby);
                    data.setSign(sign);
                    data.setPg(PG);
                    f.add(data);
                    f.writefile();
                    JOptionPane.showMessageDialog(jf,"保存成功!");
                }
                if(source == shanchuButton){
                    String nick = nickField.getText();
                    int flag = f.find(nick);
                    if(flag == -1){
                        JOptionPane.showMessageDialog(null,"没有找到该昵称的人!");
                    }
                    else{
                        f.delete(nick);
                        f.writefile();
                        JOptionPane.showMessageDialog(null,"删除成功!");
                    }
                }
                if(source == checkButton){
                    new chazhao();
                    jf.dispose();
                }
            }
        }
        myListener my = new myListener();
        addButton.addActionListener(my);
        //删除监听事件
        shanchuButton.addActionListener(my);
        //查找监听事件
        checkButton.addActionListener(my);
        createVStruct(userBox, nickBox, sexBox, birthBox, jobBox);
        createVStruct(userBox, hobbyBox, signBox, pgBox, annvBox);
        userBox.add(jianjieBox);
        bgPanel.add(userBox);
        jf.add(bgPanel);
        jf.setVisible(true);
    }
    private void createVStruct(Box userBox, Box hobbyBox, Box signBox, Box pgBox, Box annvBox) {
        userBox.add(Box.createVerticalStrut(30));
        userBox.add(hobbyBox);
        userBox.add(Box.createVerticalStrut(30));
        userBox.add(signBox);
        userBox.add(Box.createVerticalStrut(30));
        userBox.add(pgBox);
        userBox.add(Box.createVerticalStrut(30));
        userBox.add(annvBox);
    }
    public static void main(String[] args) throws IOException {
        new Introduction().init();
    }
}