-3

別のメソッドから「username」と呼ばれるこの文字列を使用しようとしていますが、どうすればよいかわかりません。

ここに、テキストフィールドのエントリを変数に割り当てるこのコードがありますが、この変数を別のメソッドで使用できないようです。

        //Configuring content pane
    JFormattedTextField formattedTextField = new JFormattedTextField();
    formattedTextField.setBounds(129, 36, 120, 20);
    UsernameFrame.getContentPane().add(formattedTextField);
    UsernameFrame.setVisible(true);

    //Assigning text field entry to variable
    String username = formattedTextField.getText();

現在、以下に貼り付けたメソッドでこの変数を使用しようとしていますが、何が欠けているのかわかりません。

            public void actionPerformed(ActionEvent e){
            if(username.length() < 5){

            }
            //Execute when the button is pressed
            System.out.println("The button has been pressed");
        }

これはおそらく私が見逃している本当に単純なことです、あなたの助けてくれてありがとう。

(完全なコード)

http://pastebin.com/RMszazd4

4

4 に答える 4

1

次のように、クラス宣言usernameの直後に宣言します。

public class App {
    private String username;
    public static void main(String[] args) {
        ...
    }
    ...
}
于 2013-03-03T03:06:15.323 に答える
0

これらが2つの別個のメソッドである場合は、ユーザー名変数を再度割り当てる必要があります。または、メソッドの外部でグローバル変数を作成することもできます。

于 2013-03-03T03:08:03.277 に答える
0

グローバルとして宣言されていない限り、別のメソッドで文字列のスコープを認識しないため、文字列変数「username」をパラメータとして別のメソッドに渡すことをお勧めします。

于 2013-03-03T03:08:06.020 に答える
0

JFormattedTextFieldを読み取る方法がないようです。正しく実行しようとしていることを理解している場合は、formattedTextFieldをインスタンス変数として宣言してから、リスナー内でユーザー名を宣言できます。

public class Frame {
JFrame UsernameFrame = new JFrame("Welcome");
private JFormattedTextField formattedTextField;

...。

btnSubmit.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String username = formattedTextField.getText();
            if (username.length() < 5) {

            }
            // Execute when the button is pressed
            System.out.println("The button has been pressed");
        }
    });

これで、JFormattedTextFieldのテキストへの参照があり、ボタンが押されるたびに行うことを実行できます。

于 2013-03-03T04:44:01.047 に答える