Java - 如何从TextField获取文本

时间:2016-10-10 20:02:00

标签: java textfield

我是一个血腥的初学者。我想创建一个登录屏幕,但我遇到编译器错误:

package passwordmanager;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;


@SuppressWarnings("serial")
public class Frame extends JFrame
{
    JLabel username;
    JLabel password;
    JTextField user;
    JPasswordField pass;
    JButton login;
    public Frame()
    {
        //Frame
        setLayout(null);
        setLocationRelativeTo(null);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(425, 300);
        setVisible(true);
        setTitle("Password-Login");

        //Label 1
        username = new JLabel("Benutzernahme:");
        username.setBounds(16, 50, 500, 15);

            //Font
            Font font1 = new Font("", Font.BOLD, 13);

        username.setFont(font1);    
        add(username);

        //Label2
        password = new JLabel("Passwort:");
        password.setBounds(16, 134, 200, 20);
        password.setFont(font1);
        add(password);

        //TextField
        user = new JTextField();
        user.setBounds(16, 76, 350, 30);
        user.setVisible(true);
        add(user);

        //PasswordField
        pass = new JPasswordField();
        pass.setBounds(16, 160, 350, 30);
        pass.setVisible(true);
        add(pass);

        //Button
        login = new JButton();
        login.setBounds(0, 0, 5, 5);
        add(login);
    }

    String myusername = user.getText();
    String mypassword = new String(pass.getPassword());

    public class Listener implements ActionListener
    {

        public void actionPerformed(ActionEvent e) 
        {
            if(myusername.equalsIgnoreCase("whatever") && mypassword.equalsIgnoreCase("whatever"))
            {
                System.out.println("NICE");
            }
        }
    }
}

Eclipse说这个字符串

 String myusername = user.getText();

错了。你知道我怎么解决这个问题吗?

提前谢谢!:)

1 个答案:

答案 0 :(得分:0)

此:

String myusername = user.getText();
String mypassword = new String(pass.getPassword());

必须在方法或构造函数中......您不能将代码放在那里。您可以在那里声明变量但不能执行操作。

这部分:

myusername = user.getText();
mypassword = new String(pass.getPassword());

应该在你的构造函数中......或者其他一些方法。 你可能想要它在这里:

public void actionPerformed(ActionEvent e) 
{
    myusername = user.getText();
    mypassword = new String(pass.getPassword());
    if(myusername.equalsIgnoreCase("whatever") && mypassword.equalsIgnoreCase("whatever"))
    {
            System.out.println("NICE");
    }
}