我正在尝试使用另一种方法中名为“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");
}
这可能是我很遗憾的事情,谢谢你的帮助。
(完整代码)
答案 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的文本,以便在每次按下按钮时执行操作。