-5

当我尝试使用 if 语句将两个单独的单词打印到控制台时,无论输入什么,它始终只返回一个单词。

我的完整代码:

public class Frame{

    //Declaring needed text variables

    //Text Pane
    static JFormattedTextField formattedTextField = new JFormattedTextField();
    static String username = formattedTextField.getText();

    //Frame
    static JFrame UsernameFrame = new JFrame("Welcome");

    /**
     * @wbp.parser.entryPoint
     */
    public static void frame(){

        /**
         * Configuring the Frame
         */
        UsernameFrame.setSize(400,150);
        UsernameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        UsernameFrame.getContentPane().setLayout(null);

        /**
         * Configuring Submit button
         */
        JButton btnSubmit = new JButton("Submit");
        btnSubmit.setBounds(0, 89, 384, 23);
        btnSubmit.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(username.length() < 5){
                    System.out.println("no");
                }
                if(username.length() > 5){
                    System.out.println("continue");
                }
                //Execute when the button is pressed
                System.out.println("The button has been pressed");
            }
        });
        UsernameFrame.getContentPane().add(btnSubmit);

        /**
         * Configuring user-name text pane
         */
        JLabel lblEnterYourSelected = new JLabel("Enter your selected username below");
        lblEnterYourSelected.setHorizontalAlignment(SwingConstants.CENTER);
        lblEnterYourSelected.setBounds(81, 11, 214, 14);
        UsernameFrame.getContentPane().add(lblEnterYourSelected);

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




    }
}

这是我正在使用的特定线路

if(username.length() < 5){
  System.out.println("no");
}
if(username.length() > 5){
  System.out.println("continue");
}

我一直在寻找解决方案,但我找不到。

4

1 回答 1

3

您必须在按下按钮后读取用户名的值,在这种情况下,它将采用输入的最新值并检查长度。

如果您声明如下

public void actionPerformed(ActionEvent e){
            String username = formattedTextField.getText();

                if(username.length() < 5){
                    System.out.println("no");
                }
                if(username.length() > 5){
                    System.out.println("continue");
                }
                //Execute when the button is pressed
                System.out.println("The button has been pressed");
            }

这会奏效。此外,您还必须包含测试长度是否等于 5 的条件。

于 2013-03-04T02:50:05.527 回答