[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 747
  • Last Modified:

Swing applet with a JTextField asking user for a password

Hi,
I have to Create a Swing applet that asks a user to enter a password into a JTextField and to then press [Enter].
Compare the password to "Rosebud"; if it marches, display "Access Granted", if not display "Access Denied.

I tried to write a program but everytime I run it, whenever I enter the correct password or the wrong one it comes out as "access denied".

Here is my code: (Hope you can help)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JPasswordA extends JApplet implements ActionListener
{
      JLabel greeting = new JLabel("Please, enter password");
      Font bigFont = new Font("TimesRoman", Font.ITALIC, 24);
      JButton pressMe = new JButton("Press ME");

      JTextField answer = new JTextField("",10);
      FlowLayout flow = new FlowLayout();

      public void init()
      {
            greeting.setFont(bigFont);
            Container con = getContentPane();
            con.add(greeting);
            con.setLayout(flow);
            con.add(answer);
            con.add(pressMe);
            pressMe.addActionListener(this);
            answer.addActionListener(this);
            answer.requestFocus();
      }
      public void actionPerformed(ActionEvent thisEvent)
      {
            Object source = thisEvent.getSource();
                  if(source == ("Rosebud"))
                  {
                  String name = answer.getText();
                  System.out.println("Access granted");
            }
                  else if(source instanceof JTextField);
                  {
                        String name = answer.getText();
                        System.out.println("Access denied");
                  }
            }
      }
0
stdebernardi
Asked:
stdebernardi
  • 2
1 Solution
 
yongsingCommented:
The following will work.

public void actionPerformed(ActionEvent thisEvent)
{
    Object source = thisEvent.getSource();
    if (source instanceof JTextField)
    {
          String name = answer.getText();
          if (name.equals("Rosebud")) {
              System.out.println("Access granted");
          }
          else
          {
              System.out.println("Access denied");
          }
    }
}

0
 
yongsingCommented:
If you want the checking to be done when either the Enter key is pressed or the button is clicked, then the following code will do:

public void actionPerformed(ActionEvent thisEvent)
{
     String name = answer.getText();
     if (name.equals("Rosebud")) {
         System.out.println("Access granted");
     }
     else
     {
         System.out.println("Access denied");
     }
}


By the way, you should use a JPasswordField instead. This component will display the characters you enter as *.
0
 
stdebernardiAuthor Commented:
That's great.
Thank you so much.

I thought about using a JPasswordField but the requirement was a JTextField, I don't know why, a JPasswordField would have been more realistic. Oh well.

Thanks again.
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now