-3

我正在尝试从另一种方法中使用这个名为“用户名”的字符串,但我似乎不知道该怎么做。

我在这里有这段代码,它将文本字段的条目分配给变量,但我似乎无法在其他方法中使用此变量

        //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

您似乎没有办法阅读 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 回答
0

如果这是两个单独的方法,您将需要再次重新分配用户名变量,或者您可以在您的方法之外创建一个全局变量。

于 2013-03-03T03:08:03.277 回答
0

您可能希望将字符串变量“用户名”作为参数传递给另一个方法,因为它不会在另一个方法中识别您的字符串的范围,除非它声明为全局的。

于 2013-03-03T03:08:06.020 回答