Swing JTextField问题

时间:2018-02-01 11:56:54

标签: java swing jtextfield

我在JTextField上遇到问题,每当我输入内容时,我都希望分析输入,如果输入是“ADMIN”,则需要触发密码文本框

问题出在txtUsuario.addActionListener

我现在有以下代码

package FP.Graphics;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Window;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.BoxLayout;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Component;
import javax.swing.JLabel;

public class MainWindow extends JFrame {

    protected static final Window lblPassword = null;
    private JPanel contentPane;
    private JTextField txtUsuario;
    private JTextField textField;
    private JTextField TextBox;
    private JPasswordField passwordField;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainWindow frame = new MainWindow();
                    frame.setVisible(true);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public MainWindow() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 800, 600);
        contentPane = new JPanel();
        contentPane.setBackground(Color.WHITE);
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        txtUsuario = new JTextField();
        txtUsuario.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Update();
            }
            public void Update() {
                if (txtUsuario.getText().toUpperCase().equals("ADMIN"))//Si el texto digitado pasado a mayuscula es "ADMIN" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().toUpperCase().equals("GESTOR"))//Si el texto digitado pasado a mayuscula es "GESTOR" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().toUpperCase().equals("USUARIO"))//Si el texto digitado pasado a mayuscula es "USUARIO" se ejecutara el siguiente bloque de codigo
                {

                }
                else
                {

                    lblPassword.setVisible(false);
                    passwordField.setVisible(false);//Se ocultara el textbox de password
                }
            }
        });

        txtUsuario.setBounds(300, 196, 86, 20);
        contentPane.add(txtUsuario);
        txtUsuario.setColumns(10);

        passwordField = new JPasswordField();
        passwordField.setEnabled(false);
        passwordField.setBounds(300, 225, 86, 20);
        contentPane.add(passwordField);
        passwordField.setVisible(false);

        JLabel lblUsuario = new JLabel("Usuario");
        lblUsuario.setBounds(209, 199, 46, 14);
        contentPane.add(lblUsuario);

        JLabel lblPassword = new JLabel("Password");
        lblPassword.setBounds(209, 228, 66, 14);
        contentPane.add(lblPassword);
        lblPassword.setVisible(false);

        JButton btnLogin = new JButton("Login");
        btnLogin.setBounds(426, 195, 79, 23);
        contentPane.add(btnLogin);
    }
}

我也试过这个没有成功

txtUsuario.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void changedUpdate(DocumentEvent arg0) {
                if (txtUsuario.getText().equals("ADMIN"))//Si el texto digitado pasado a mayuscula es "ADMIN" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().equals("GESTOR"))//Si el texto digitado pasado a mayuscula es "GESTOR" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().equals("USUARIO"))//Si el texto digitado pasado a mayuscula es "USUARIO" se ejecutara el siguiente bloque de codigo
                {

                }
                else
                {
                    lblPassword.setVisible(false);
                    passwordField.setVisible(false);//Se ocultara el textbox de password
                }

            }
            @Override
            public void insertUpdate(DocumentEvent arg0) {
                if (txtUsuario.getText().equals("ADMIN"))//Si el texto digitado pasado a mayuscula es "ADMIN" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().equals("GESTOR"))//Si el texto digitado pasado a mayuscula es "GESTOR" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().equals("USUARIO"))//Si el texto digitado pasado a mayuscula es "USUARIO" se ejecutara el siguiente bloque de codigo
                {

                }
                else
                {
                    lblPassword.setVisible(false);
                    passwordField.setVisible(false);//Se ocultara el textbox de password
                }

            }
            @Override
            public void removeUpdate(DocumentEvent arg0) {
                if (txtUsuario.getText().equals("ADMIN"))//Si el texto digitado pasado a mayuscula es "ADMIN" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().equals("GESTOR"))//Si el texto digitado pasado a mayuscula es "GESTOR" se ejecutara el siguiente bloque de codigo
                {
                    lblPassword.setVisible(true);
                    passwordField.setVisible(true);//Se hara visible un textbox de password
                }
                else if (TextBox.getText().equals("USUARIO") )//Si el texto digitado pasado a mayuscula es "USUARIO" se ejecutara el siguiente bloque de codigo
                {

                }
                else
                {
                    lblPassword.setVisible(false);
                    passwordField.setVisible(false);//Se ocultara el textbox de password
                }

            }

        });

0 个答案:

没有答案