从另一个方法调用String - Java

时间:2013-03-03 03:03:39

标签: java eclipse methods using

我正在尝试使用另一种方法中名为“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 个答案:

答案 0 :(得分:1)

在您的类声明之后立即声明username

public class App {
    private String username;
    public static void main(String[] args) {
        ...
    }
    ...
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分: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的文本,以便在每次按下按钮时执行操作。