我的java代码出了问题

时间:2013-03-04 02:37:06

标签: java swing jframe

当我尝试使用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");
}

我看了很多解决方案,我找不到一个。

1 个答案:

答案 0 :(得分: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。