-5

if ステートメントを使用して 2 つの別々の単語をコンソールに出力しようとすると、何を入力しても常に 1 つの単語しか返されません。

私の完全なコード:

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 に答える