简体   繁体   English

Java GUI写入文件不起作用

[英]Java GUI Write to file not working

i am trying to implement GUI features to my java coding which i am trying out for the first time. 我正在尝试对我的Java编码实现GUI功能,这是我第一次尝试。 But i tried a "Create Player Feature" in my code but it is not writing to file can someone help? 但是我在代码中尝试了“创建播放器功能”,但是它没有写入文件,有人可以帮忙吗? thanks 谢谢

private class createListener implements ActionListener{
    public void actionPerformed(ActionEvent event){

            JFrame frame = new JFrame("Create Player");
            JPanel panel = new JPanel();
            JPanel mainpanel = new JPanel();
            JButton create;
            JLabel welcome = new JLabel("Create Player");
            JLabel name = new JLabel("Enter Player Name");
            nameP = new JTextField();
            JLabel pass = new JLabel("Enter Player Password");
            password = new JTextField();
            JLabel chips = new JLabel("Enter Player Chips");
            chipsP = new JTextField();
            buttonCreate = new JButton("Create Player");

            setSize(400,350);
            setLocation(500,280);
            panel.setLayout(new GridLayout(0,1,10,10));

            panel.add(name);
            panel.add(nameP);
            panel.add(pass);
            panel.add(password);
            panel.add(chips);
            panel.add(chipsP);
            panel.add(buttonCreate);
            mainpanel.add(panel);

            getContentPane().removeAll();
            getContentPane().add(mainpanel);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
            buttonCreate.addActionListener(new createListener());
        }

    }
    private class playerListener implements ActionListener{
    public void actionPerformed(ActionEvent event){
        String username = nameP.getText();
        String userpass = password.getText();
        String hasheduserP = Utility.getHash(userpass);
        String userchip = chipsP.getText();
        String userContent = username + "|" + hasheduserP + "|" + userchip;

        File file = new File("players.dat");
        try{
            //adding of user details
            PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("players.dat", true)));
            out.println(userContent);
            out.close();
            JOptionPane.showMessageDialog(null,"User Created");
        } catch (IOException ex){
            System.out.println("Error Writing to File");
        }



    }
}

The file related part of your code works without any problem. 代码中与文件相关的部分可以正常工作。

Hint: Improve it like this: 提示:像这样改善它:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class SOPlayground {

    public static void main(String[] args) throws Exception {
        String userContent = "foo";

        try {
            try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("/tmp/players.dat", true)))) {
                out.println(userContent);
            }
        } catch (IOException ex) {
            System.err.println("Error Writing to File: " + ex.getMessage());
        }
    }
}

The content of /tmp/players.dat now is /tmp/players.dat的内容现在是

foo

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM