📜  使用 AWT 将学生信息存储在文件中的Java程序

📅  最后修改于: 2022-05-13 01:54:26.265000             🧑  作者: Mango

使用 AWT 将学生信息存储在文件中的Java程序

SwingJFC(Java基础类)的一部分。在Java中构建图形用户界面需要使用 Swings。 Swing 框架包含大量组件,这些组件允许高级定制并提供丰富的功能,用于创建基于窗口的应用程序。 Java Swing 组件是轻量级的,独立于平台的,提供强大的组件,如表格、滚动面板、按钮、列表、颜色选择器等。

在本文中,我们将了解如何将学生信息写入 Jframe 并将其存储在文件中。

方法:为了解决这个问题,遵循以下步骤:

  1. 首先,我们需要使用 JFrame 创建一个框架。
  2. 接下来创建 JLabels、JTextFields、JComboBoxes、JButtons 并分别设置它们的边界。
  3. 相应地命名这些组件并设置它们的界限。
  4. 现在,为了在按钮单击时将数据保存到文本文件中,我们需要添加事件处理程序。在这种情况下,我们将添加 ActionListener 来执行称为 actionPerformed 的操作方法,首先我们需要从默认为“字符串”的文本字段中获取值。
  5. 最后,将 Jbuttons、JLabels、JTextFields 和 JComboBoxes 添加到 JFrame 中,并将文本存储在文本文件中。

下面是上述方法的实现:

// Java program to write a student
// information in JFrame and
// storing it in a file
  
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
  
public class GFG {
  
    // Function to write a student
    // information in JFrame and
    // storing it in a file
    public static void StudentInfo()
    {
  
        // Creating a new frame using JFrame
        JFrame f
            = new JFrame(
                "Student Details Form");
  
        // Creating the labels
        JLabel l1, l2, l3, l4, l5;
  
        // Creating three text fields.
        // One for student name, one for
        // college mail ID  and one
        // for  Mobile No
        JTextField t1, t2, t3;
  
        // Creating two JComboboxes
        // one for Branch and one
        // for Section
        JComboBox j1, j2;
  
        // Creating  two buttons
        JButton b1, b2;
  
        // Naming the labels and setting
        // the bounds for the labels
        l1 = new JLabel("Student Name:");
        l1.setBounds(50, 50, 100, 30);
        l2 = new JLabel("College Email ID:");
        l2.setBounds(50, 120, 120, 30);
        l3 = new JLabel("Branch:");
        l3.setBounds(50, 190, 50, 30);
        l4 = new JLabel("Section:");
        l4.setBounds(420, 50, 70, 30);
        l5 = new JLabel("Mobile No:");
        l5.setBounds(420, 120, 70, 30);
  
        // Creating the textfields and
        // setting the bounds for textfields
        t1 = new JTextField();
        t1.setBounds(150, 50, 130, 30);
        t2 = new JTextField();
        t2.setBounds(160, 120, 130, 30);
        t3 = new JTextField();
        t3.setBounds(490, 120, 130, 30);
  
        // Creating two string arrays one for
        // braches and other for sections
        String s1[]
            = { "  ", "CSE", "ECE", "EEE",
                "CIVIL", "MEC", "Others" };
        String s2[]
            = { "  ", "Section-A", "Section-B",
                "Section-C", "Section-D",
                "Section-E" };
  
        // Creating two JComboBoxes one for
        // selecting branch and other for
        // selecting the section
        // and setting the bounds
        j1 = new JComboBox(s1);
        j1.setBounds(120, 190, 100, 30);
        j2 = new JComboBox(s2);
        j2.setBounds(470, 50, 140, 30);
  
        // Creating one button for Saving
        // and other button to close
        // and setting the bounds
        b1 = new JButton("Save");
        b1.setBounds(150, 300, 70, 30);
        b2 = new JButton("close");
        b2.setBounds(420, 300, 70, 30);
  
        // Adding action listener
        b1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
  
                // Getting the text from text fields
                // and JComboboxes
                // and copying it to a strings
  
                String s1 = t1.getText();
                String s2 = t2.getText();
                String s3 = j1.getSelectedItem() + "";
                String s4 = j2.getSelectedItem() + "";
                String s5 = t3.getText();
                if (e.getSource() == b1) {
                    try {
  
                        // Creating a file and
                        // writing the data
                        // into a Textfile.
                        FileWriter w
                            = new FileWriter(
                                "GFG.txt", true);
  
                        w.write(s1 + "\n");
                        w.write(s2 + "\n");
                        w.write(s3 + "\n");
                        w.write(s4 + "\n");
                        w.write(s5 + "\n");
                        w.close();
                    }
                    catch (Exception ae) {
                        System.out.println(ae);
                    }
                }
  
                // Shows a Pop up Message when
                // save button is clicked
                JOptionPane
                    .showMessageDialog(
                        f,
                        "Successfully Saved"
                            + " The Details");
            }
        });
  
        // Action listener to close the form
        b2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                f.dispose();
            }
        });
  
        // Default method for closing the frame
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        });
  
        // Adding the created objects
        // to the frame
        f.add(l1);
        f.add(t1);
        f.add(l2);
        f.add(t2);
        f.add(l3);
        f.add(j1);
        f.add(l4);
        f.add(j2);
        f.add(l5);
        f.add(t3);
        f.add(b1);
        f.add(b2);
        f.setLayout(null);
        f.setSize(700, 600);
        f.setVisible(true);
    }
    // Driver code
    public static void main(String args[])
    {
        StudentInfo();
    }
}

输出:

  1. 运行程序时显示的窗口:

  2. 输入数据:

  3. 点击保存按钮后出现的对话框:

  4. 存储数据的文本文件: