如何在java中保存和加载复选框状态和文本字段值?

如何在java中保存和加载复选框状态和文本字段值?,java,swing,jtextfield,jcheckbox,Java,Swing,Jtextfield,Jcheckbox,我一直想知道如何在Java中保存和加载jcheckbox和jtextfields值。是否可以保存和加载jcheckbox和jtextfields值? 我附上了一个小程序的图片,我想在其中保存checkbox的值并加载它们以供以后查看。我是否使用JFileChooser执行该操作 public class Try extends JFrame { private JPanel contentPane; private JCheckBox chckbx_1; private JCh

我一直想知道如何在Java中保存和加载jcheckbox和jtextfields值。是否可以保存和加载jcheckbox和jtextfields值? 我附上了一个小程序的图片,我想在其中保存checkbox的值并加载它们以供以后查看。我是否使用JFileChooser执行该操作

   public class Try extends JFrame {
   private JPanel contentPane;
   private JCheckBox chckbx_1;
private JCheckBox chckbx_2;
private JTextField textField;
private JTextField textField_1;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Try frame = new Try();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public Try() {
    setTitle("Price tag");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    chckbx_1 = new JCheckBox("Price");
    chckbx_1.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            if(e.getStateChange() == ItemEvent.SELECTED){
                textField.setEnabled(true);
                textField.setText("");
            }
            else if(e.getStateChange() == ItemEvent.DESELECTED){
                textField.setEnabled(false);
                textField.setText("");
        }
        }
    });

    chckbx_1.setBounds(72, 7, 81, 41);
    contentPane.add(chckbx_1);

    chckbx_2 = new JCheckBox("New Price");
    chckbx_2.addItemListener(new ItemListener() {
         @Override
        public void itemStateChanged(ItemEvent e) {
            if(e.getStateChange() == ItemEvent.SELECTED){
                textField.setEnabled(true);
                textField.setText("");
            }
            else if(e.getStateChange() == ItemEvent.DESELECTED){
                textField_1.setEnabled(false);
                textField_1.setText("");
        }
        }
    });
    chckbx_2.setBounds(72, 51, 89, 50);
    contentPane.add(chckbx_2);

    textField = new JTextField();
    textField.setBounds(196, 17, 86, 20);
    contentPane.add(textField);
    textField.setColumns(10);

    textField_1 = new JTextField();
    textField_1.setBounds(196, 66, 86, 20);
    contentPane.add(textField_1);
    textField_1.setColumns(10);

    JButton btn1 = new JButton("Save");
    btn1.setBounds(193, 173, 89, 23);
    contentPane.add(btn1);

    JButton btn2 = new JButton("Load");
    btn2.setBounds(314, 173, 89, 23);
    contentPane.add(btn2);
}}

您可以通过将选中的复选框索引和文本字段保存到一个文件中,例如.txt和类似的格式来实现这一点

StateCheckBox1 | 2 | StateTextField1 |示例

然后,当您阅读它时,您将获取整行并使用.split()方法,将其保存到字符串数组中

当然,更好的方法是使用数据库,但如果您只想保存几个州,则无需使用它

否则,如果您不关闭应用程序,并且希望加载应用程序组件的前一个状态,则可以创建对象。哪一个持有你的州


如果你想了解更多关于如何制作这个.txt的解释,尽管问吧。我将尝试向您解释。

您可以通过将选中的复选框索引和文本字段保存到一个文件,例如.txt和类似的格式来实现这一点

StateCheckBox1 | 2 | StateTextField1 |示例

然后,当您阅读它时,您将获取整行并使用.split()方法,将其保存到字符串数组中

当然,更好的方法是使用数据库,但如果您只想保存几个州,则无需使用它

否则,如果您不关闭应用程序,并且希望加载应用程序组件的前一个状态,则可以创建对象。哪一个持有你的州


如果你想了解更多关于如何制作这个.txt的解释,尽管问吧。我将尝试向您解释。

您可以通过将选中的复选框索引和文本字段保存到一个文件,例如.txt和类似的格式来实现这一点

StateCheckBox1 | 2 | StateTextField1 |示例

然后,当您阅读它时,您将获取整行并使用.split()方法,将其保存到字符串数组中

当然,更好的方法是使用数据库,但如果您只想保存几个州,则无需使用它

否则,如果您不关闭应用程序,并且希望加载应用程序组件的前一个状态,则可以创建对象。哪一个持有你的州


如果你想了解更多关于如何制作这个.txt的解释,尽管问吧。我将尝试向您解释。

您可以通过将选中的复选框索引和文本字段保存到一个文件,例如.txt和类似的格式来实现这一点

StateCheckBox1 | 2 | StateTextField1 |示例

然后,当您阅读它时,您将获取整行并使用.split()方法,将其保存到字符串数组中

当然,更好的方法是使用数据库,但如果您只想保存几个州,则无需使用它

否则,如果您不关闭应用程序,并且希望加载应用程序组件的前一个状态,则可以创建对象。哪一个持有你的州


如果你想了解更多关于如何制作这个.txt的解释,尽管问吧。我将尝试向您解释。

您应该使用的变量是:

 private FileWriter fw;
 private PrintWriter pw;
 private BufferedReader br;
要保存复选框状态和文本字段值,可以使用
FileWriter
PrintWriter
保存到文件中:

btn1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    fw = new FileWriter(desktopPath + "yourfile.txt");
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
                pw = new PrintWriter(fw);
                pw.println(chckbx_1.isSelected() + "-" + textField.getText() + "-" + chckbx_2.isSelected()
                        + " -" + textField_1.getText());
                if (pw != null) {
                    pw.close();
                }
            }
        });
对于从文件中读取,您可以使用
BufferedReader
StringTokenizer
从文件中拆分读取行:

btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    String sCurrentLine;
                    br = new BufferedReader(new FileReader(desktopPath + "yourfile.txt"));
                    while ((sCurrentLine = br.readLine()) != null) {
                        StringTokenizer tokenizer = new StringTokenizer(sCurrentLine, "-");
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_1.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField.setText(tokenizer.nextToken());
                        }
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_2.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField_1.setText(tokenizer.nextToken());
                        }

                    }
                } catch (FileNotFoundException ex) {
                    System.out.println("Error : " + ex);
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
            }
        });
如果你想从多个文件中读取,你可以使用
JFileChooser
比如:

    btn2.addActionListener(new ActionListener() {
                @Override
                    public void actionPerformed(ActionEvent e) {
                        JFileChooser fc = new JFileChooser();
                        int ret = fc.showOpenDialog(null);
                        if (ret == JFileChooser.APPROVE_OPTION) {
                            File file = fc.getSelectedFile();
                             filename = file.getAbsolutePath();
                        }
....
然后,将代码放入读取:

br = new BufferedReader(new FileReader(filename));

您应该使用的变量包括:

 private FileWriter fw;
 private PrintWriter pw;
 private BufferedReader br;
要保存复选框状态和文本字段值,可以使用
FileWriter
PrintWriter
保存到文件中:

btn1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    fw = new FileWriter(desktopPath + "yourfile.txt");
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
                pw = new PrintWriter(fw);
                pw.println(chckbx_1.isSelected() + "-" + textField.getText() + "-" + chckbx_2.isSelected()
                        + " -" + textField_1.getText());
                if (pw != null) {
                    pw.close();
                }
            }
        });
对于从文件中读取,您可以使用
BufferedReader
StringTokenizer
从文件中拆分读取行:

btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    String sCurrentLine;
                    br = new BufferedReader(new FileReader(desktopPath + "yourfile.txt"));
                    while ((sCurrentLine = br.readLine()) != null) {
                        StringTokenizer tokenizer = new StringTokenizer(sCurrentLine, "-");
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_1.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField.setText(tokenizer.nextToken());
                        }
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_2.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField_1.setText(tokenizer.nextToken());
                        }

                    }
                } catch (FileNotFoundException ex) {
                    System.out.println("Error : " + ex);
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
            }
        });
如果你想从多个文件中读取,你可以使用
JFileChooser
比如:

    btn2.addActionListener(new ActionListener() {
                @Override
                    public void actionPerformed(ActionEvent e) {
                        JFileChooser fc = new JFileChooser();
                        int ret = fc.showOpenDialog(null);
                        if (ret == JFileChooser.APPROVE_OPTION) {
                            File file = fc.getSelectedFile();
                             filename = file.getAbsolutePath();
                        }
....
然后,将代码放入读取:

br = new BufferedReader(new FileReader(filename));

您应该使用的变量包括:

 private FileWriter fw;
 private PrintWriter pw;
 private BufferedReader br;
要保存复选框状态和文本字段值,可以使用
FileWriter
PrintWriter
保存到文件中:

btn1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    fw = new FileWriter(desktopPath + "yourfile.txt");
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
                pw = new PrintWriter(fw);
                pw.println(chckbx_1.isSelected() + "-" + textField.getText() + "-" + chckbx_2.isSelected()
                        + " -" + textField_1.getText());
                if (pw != null) {
                    pw.close();
                }
            }
        });
对于从文件中读取,您可以使用
BufferedReader
StringTokenizer
从文件中拆分读取行:

btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    String sCurrentLine;
                    br = new BufferedReader(new FileReader(desktopPath + "yourfile.txt"));
                    while ((sCurrentLine = br.readLine()) != null) {
                        StringTokenizer tokenizer = new StringTokenizer(sCurrentLine, "-");
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_1.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField.setText(tokenizer.nextToken());
                        }
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_2.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField_1.setText(tokenizer.nextToken());
                        }

                    }
                } catch (FileNotFoundException ex) {
                    System.out.println("Error : " + ex);
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
            }
        });
如果你想从多个文件中读取,你可以使用
JFileChooser
比如:

    btn2.addActionListener(new ActionListener() {
                @Override
                    public void actionPerformed(ActionEvent e) {
                        JFileChooser fc = new JFileChooser();
                        int ret = fc.showOpenDialog(null);
                        if (ret == JFileChooser.APPROVE_OPTION) {
                            File file = fc.getSelectedFile();
                             filename = file.getAbsolutePath();
                        }
....
然后,将代码放入读取:

br = new BufferedReader(new FileReader(filename));

您应该使用的变量包括:

 private FileWriter fw;
 private PrintWriter pw;
 private BufferedReader br;
要保存复选框状态和文本字段值,可以使用
FileWriter
PrintWriter
保存到文件中:

btn1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    fw = new FileWriter(desktopPath + "yourfile.txt");
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
                pw = new PrintWriter(fw);
                pw.println(chckbx_1.isSelected() + "-" + textField.getText() + "-" + chckbx_2.isSelected()
                        + " -" + textField_1.getText());
                if (pw != null) {
                    pw.close();
                }
            }
        });
对于从文件中读取,您可以使用
BufferedReader
StringTokenizer
从文件中拆分读取行:

btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String desktopPath = System.getProperty("user.home") + "/Desktop/";
                try {
                    String sCurrentLine;
                    br = new BufferedReader(new FileReader(desktopPath + "yourfile.txt"));
                    while ((sCurrentLine = br.readLine()) != null) {
                        StringTokenizer tokenizer = new StringTokenizer(sCurrentLine, "-");
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_1.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField.setText(tokenizer.nextToken());
                        }
                        if (tokenizer.hasMoreElements()) {
                             Boolean boolean1 = Boolean.valueOf(tokenizer.nextToken());
                             chckbx_2.setSelected(boolean1);
                        }
                        if (tokenizer.hasMoreElements()) {
                            textField_1.setText(tokenizer.nextToken());
                        }

                    }
                } catch (FileNotFoundException ex) {
                    System.out.println("Error : " + ex);
                } catch (IOException ex) {
                    System.out.println("Error : " + ex);
                }
            }
        });
如果你想从多个文件中读取,你可以使用
JFileChooser
比如:

    btn2.addActionListener(new ActionListener() {
                @Override
                    public void actionPerformed(ActionEvent e) {
                        JFileChooser fc = new JFileChooser();
                        int ret = fc.showOpenDialog(null);
                        if (ret == JFileChooser.APPROVE_OPTION) {
                            File file = fc.getSelectedFile();
                             filename = file.getAbsolutePath();
                        }
....
然后,将代码放入读取:

br = new BufferedReader(new FileReader(filename));


保存到文件..读取文件??阅读此文您想将jcheckbox值保存在一个简单的文本文件中还是保存在数据库中?创建一个模型来备份表单并保存它。您检查了我的答案吗?应该可以了,谢谢。是的。通过查看codejava.net/coding/…的网站,我不得不保存和加载。但它只能保存一个文件并加载它。问题是我不能保存多个文件。另一个问题是,如果我的jframe在复选框和文本字段下包含jtable,该怎么办。我可以保存所有数据吗?我的意思是,复选框状态、文本字段以及jtable值一起保存。保存到文件中..读取文件??阅读此文您想将jcheckbox值保存在一个简单的文本文件中还是保存在数据库中?创建一个模型来备份表单并保存它。您检查了我的答案吗?应该可以了,谢谢。是的。通过查看codejava.net/coding/…的网站,我不得不