📄 mainjframe.java
字号:
package addressbook;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import javax.swing.table.DefaultTableModel;/** * * @author Zoufee */public class MainJFrame extends JFrame implements ActionListener{ //定义:功能键的按钮 private JButton jbtXJ = new JButton("新建"); private JButton jbtXG = new JButton("修改"); private JButton jbtSC = new JButton("删除"); private JButton jbtBC = new JButton("保存"); private JButton jbtCX = new JButton("查询"); private JButton jbtTJ = new JButton("统计"); private JComboBox jcbWJ; private JButton jbtTC = new JButton("退出"); //定义:新建框 JFrame buildDemo; JButton jbtOKXJ ; JButton jbtCancelXJ; //定义:修改框 JFrame fixDemo; JButton jbtOKXG ; JButton jbtCancelXG; //定义:删除框 JFrame deleteDemo; JButton jbtOKSC; JButton jbtCancelSC; //定义:导出Excel框 JFrame outDemo; JButton jbtOKOE; JButton jbtCancelOE; //定义:用于编辑框点确定后生成文件夹 File file1; File file2; File file3; File file4; File file5; File file6; //定义:用于存放全部成员的一个总文件,方便查询 File totalFile = new File(".","Totaladress.txt"); //定义:创建文件夹的名称 JLabel jlbSchool = new JLabel("学校",SwingConstants.CENTER); JTextField jtfSchool = new JTextField(10); JLabel jlbXueYuan = new JLabel("学院",SwingConstants.CENTER); JTextField jtfXueYuan = new JTextField(10); JLabel jlbZhuanYe = new JLabel("专业",SwingConstants.CENTER); JTextField jtfZhuanYe = new JTextField(10); JLabel jlbGrade = new JLabel("年级",SwingConstants.CENTER); JTextField jtfGrade = new JTextField(10); JLabel jlbClass = new JLabel("班级",SwingConstants.CENTER); JTextField jtfClass = new JTextField(10); //定义:提示框----提示是否打开已存在的通讯录 JFrame openTips ; //定义:是否打开已存在的通讯录框的按钮 JButton jbtShi; JButton jbtFo; //定义一个数据对象 Object[][] data; //表格头名 String[] columnNames = { "姓名","性别","出生年月","学院","年级","专业","班别","手机号码","籍贯"}; String[] stringWJ = {"文件","导入Excel","导出Excel"}; static JTable jTable = new JTable(); public JScrollPane jplDOWN = new JScrollPane(jTable); public MainJFrame (){ Container container = getContentPane(); container.setLayout(new BorderLayout()); Font fontTip = new Font("Serrif",Font.BOLD,16); //主框架西边的功能键面板 JPanel jplwest = new JPanel(); jplwest.setBounds(0,0,200,450); jplwest.setLayout(null); JLabel jlbGN = new JLabel(" 功能键"); jlbGN.setFont(fontTip); jplwest.add(jlbGN); jlbGN.setBounds(36,8,80,30); jplwest.add(jbtXJ); jbtXJ.setBounds(36,60,80,30); jplwest.add(jbtXG); jbtXG.setBounds(36, 100, 80, 30); jplwest.add(jbtBC); jbtBC.setBounds(36, 140, 80, 30); jplwest.add(jbtSC); jbtSC.setBounds(36, 180, 80, 30); jplwest.add(jbtCX); jbtCX.setBounds(36, 220, 80, 30); jplwest.add(jbtTJ); jbtTJ.setBounds(36, 260, 80, 30); jcbWJ = new JComboBox(stringWJ); jplwest.add(jcbWJ); jcbWJ.setBounds(36, 300, 80, 30); jplwest.add(jbtTC); jbtTC.setBounds(36, 370, 80, 30); //显示界面面板 JPanel jplUP = new JPanel(); jplUP.setSize(600, 50); //jplDOWN.setSize(600, 400); JLabel jlbTip = new JLabel("请在左边的功能框中选择相应的操作"); jlbTip.setFont(fontTip); jplUP.add(jlbTip); //分隔窗格 JSplitPane jSplitPane2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,jplUP,jplDOWN); jSplitPane2.disable(); JSplitPane jSplitPane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jplwest,jSplitPane2); jSplitPane1.setDividerLocation(150); jSplitPane1.disable(); container.add(jSplitPane1,BorderLayout.CENTER); jbtXJ.addActionListener(this); jbtXG.addActionListener(this); jbtBC.addActionListener(this); jbtSC.addActionListener(this); jbtCX.addActionListener(this); jbtTJ.addActionListener(this); jcbWJ.addActionListener(this); jbtTC.addActionListener(this); } public void actionPerformed(ActionEvent e){ //创建按钮处理器 if(e.getSource() == jbtXJ) { jTable.setModel( new DefaultTableModel(0,0) ); jbtOKXJ = new JButton("确定"); jbtCancelXJ = new JButton("取消"); //再打开编辑按钮后置输入框的内容为空 jtfSchool.setText(""); jtfXueYuan.setText(""); jtfZhuanYe.setText(""); jtfGrade.setText(""); jtfClass.setText(""); buildDemo = new JFrame(); buildDemo.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); buildDemo.setTitle("buildDemo"); buildDemo.setSize(200, 230); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screenSize.width-buildDemo.getWidth())/2; int y = (screenSize.height-buildDemo.getHeight())/2; buildDemo.setLocation(x, y); buildDemo.setVisible(true); buildDemo.setResizable(false); Container container = buildDemo.getContentPane(); container.setLayout(new GridLayout(6,2,10,10)); container.add(jlbSchool); container.add(jtfSchool); container.add(jlbXueYuan); container.add(jtfXueYuan); container.add(jlbZhuanYe); container.add(jtfZhuanYe); container.add(jlbGrade); container.add(jtfGrade); container.add(jlbClass); container.add(jtfClass); container.add(jbtOKXJ); container.add(jbtCancelXJ); jbtOKXJ.addActionListener(this); jbtCancelXJ.addActionListener(this); } //buildDemo的确认按钮处理器 if(e.getSource() == jbtOKXJ) { //创建文件夹 file1 = new File("." , jtfSchool.getText()); file1.mkdir(); file2 = new File(file1.getPath()+"//"+ jtfXueYuan.getText() ); file2.mkdir(); file3 = new File(file2.getPath()+"//"+ jtfZhuanYe.getText() ); file3.mkdir(); file4 = new File(file3.getPath()+"//"+ jtfGrade.getText() ); file4.mkdir(); file5 = new File(file4.getPath()+"//"+ jtfClass.getText() ); file5.mkdir(); file6 = new File(file5.getPath()+"//"+ "adressbook.txt" ); if(jtfSchool.getText().equals("")&&jtfXueYuan.getText().equals("")&&jtfZhuanYe.getText().equals("")&&jtfGrade.getText().equals("")&&jtfClass.getText().equals("")) { JOptionPane.showMessageDialog(null, "对不起,输入框不能为空,请重新输入!", "Tips", JOptionPane.INFORMATION_MESSAGE); } else{ //判断该通讯录是否存在 if(file6.exists() ){ JOptionPane.showMessageDialog(null, "对不起,该通讯录已存在!请重新输入!", "Tips", JOptionPane.INFORMATION_MESSAGE); } //不存在的话,就把表格置为空的 else{ data = new Object[60][9]; jTable.setModel(new DefaultTableModel(data, columnNames)); buildDemo.dispose(); } } } //buildDemo的取消按钮处理器 if(e.getSource() == jbtCancelXJ) {buildDemo.dispose();} //修改按钮处理器 if(e.getSource() == jbtXG) { jTable.setModel( new DefaultTableModel(0,0) ); jbtOKXG = new JButton("确定"); jbtCancelXG = new JButton("取消"); //再打开编辑按钮后置输入框的内容为空 jtfSchool.setText(""); jtfXueYuan.setText(""); jtfZhuanYe.setText(""); jtfGrade.setText(""); jtfClass.setText(""); fixDemo = new JFrame(); fixDemo.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); fixDemo.setTitle("fixDemo"); fixDemo.setSize(200, 230); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screenSize.width-fixDemo.getWidth())/2; int y = (screenSize.height-fixDemo.getHeight())/2; fixDemo.setLocation(x, y); fixDemo.setVisible(true); fixDemo.setResizable(false); Container container = fixDemo.getContentPane(); container.setLayout(new GridLayout(6,2,10,10)); container.add(jlbSchool); container.add(jtfSchool); container.add(jlbXueYuan); container.add(jtfXueYuan); container.add(jlbZhuanYe); container.add(jtfZhuanYe); container.add(jlbGrade); container.add(jtfGrade); container.add(jlbClass); container.add(jtfClass); container.add(jbtOKXG); container.add(jbtCancelXG); jbtOKXG.addActionListener(this); jbtCancelXG.addActionListener(this); } //fixDemo的确认按钮处理器 if(e.getSource() == jbtOKXG) { //创建文件夹 file1 = new File("." , jtfSchool.getText()); file1.mkdir(); file2 = new File(file1.getPath()+"//"+ jtfXueYuan.getText() ); file2.mkdir(); file3 = new File(file2.getPath()+"//"+ jtfZhuanYe.getText() ); file3.mkdir(); file4 = new File(file3.getPath()+"//"+ jtfGrade.getText() ); file4.mkdir(); file5 = new File(file4.getPath()+"//"+ jtfClass.getText() ); file5.mkdir(); file6 = new File(file5.getPath()+"//"+ "adressbook.txt" ); if(jtfSchool.getText().equals("")&&jtfXueYuan.getText().equals("")&&jtfZhuanYe.getText().equals("")&&jtfGrade.getText().equals("")&&jtfClass.getText().equals("")) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -