0

こんにちは、ユーザー入力の取得とユーザー入力の受信に問題があります。次に、ユーザー入力を受け取り、それを使用して新しい空白のテキスト ファイルを作成します。動作させることはできますが、JTextField を使用するとファイルが作成されません。

どんな助けでも大歓迎です。

これは私のコードです:

import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import javax.swing.*;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import java.util.Scanner;

public class newGame extends JFrame {
    private JButton reg;
    private JTextField userName;
    private JTextField info;
    Scanner input = new Scanner(System.in);

    public newGame() {

        super ("Rock Paper Scissors");

        //creates the text fields
        info = new JTextField ("Welcome to the rock, Please enter your username below");
        info.setEditable(false);
        JTextField userName = new JTextField ("name");

        //impliments actionlistner
        newClass saver = new newClass();
        userName.addActionListener(saver);


        //adds the fields to the Content Layout
        JPanel content = new JPanel();
        content.setLayout(new BorderLayout());
        content.add(info, BorderLayout.NORTH);
        content.add(userName, BorderLayout.SOUTH);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(content);
        setTitle("Rock Paper Scissors The Game");
        pack();


    }


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

            String newUserName = userName.getText();
            File file = new File(newUserName + ".txt");
            boolean blnCreated = false;
            try {
                blnCreated = file.createNewFile();
            } catch(IOException ioe) {
            }
            JOptionPane.showMessageDialog
                (null,String.format("%s",event.getActionCommand()));
        }
    }
}
4

1 に答える 1

2

変数をシャドウしているuserNameため、同じ名前のクラス メンバー変数が設定されることはなく、ファイルを作成する前にエラーがNPE発生します。ActionListener交換

JTextField userName = new JTextField("name");

userName = new JTextField("name");
于 2013-05-28T18:43:31.873 に答える