Java Program. Demo for Password Field - Using Package
/*Copyright Right Reserved MIT*/
package javaapplication1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
public class JavaApplication1 extends JPanel implements ActionListener{
private static String OK = "ok";
private static String HELP = "help";
private JFrame controllingFrame; //needed for dialogs
private JPasswordField passwordField;
public JavaApplication1(JFrame f) {
//Use the default FlowLayout.
controllingFrame = f;
//Create everything.
passwordField = new JPasswordField(10);
passwordField.setActionCommand(OK);
passwordField.addActionListener(this);
JLabel label = new JLabel("Enter the password: ");
label.setLabelFor(passwordField);
JComponent buttonPane = createButtonPanel();
//Lay out everything.
JPanel textPane = new JPanel(new FlowLayout(FlowLayout.TRAILING));
textPane.add(label);
textPane.add(passwordField);
add(textPane);
add(buttonPane);
}
protected JComponent createButtonPanel() {
JPanel p = new JPanel(new GridLayout(0,1));
JButton okButton = new JButton("OK");
JButton helpButton = new JButton("Help");
okButton.setActionCommand(OK);
helpButton.setActionCommand(HELP);
okButton.addActionListener(this);
helpButton.addActionListener(this);
p.add(okButton);
p.add(helpButton);
return p;
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (OK.equals(cmd)) { //Process the password.
char[] input = passwordField.getPassword();
if (isPasswordCorrect(input)) {
JOptionPane.showMessageDialog(controllingFrame,
"Success! You typed the right password.");
} else {
JOptionPane.showMessageDialog(controllingFrame,
"Invalid password. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);
}
//Zero out the possible password, for security.
Arrays.fill(input, '0');
passwordField.selectAll();
resetFocus();
} else { //The user has asked for help.
JOptionPane.showMessageDialog(controllingFrame,
"You can get the password by searching this example's\n"
+ "source code for the string \"correctPassword\".\n"
+ "Or look at the section How to Use Password Fields in\n"
+ "the components section of The Java Tutorial.");
}
}
/**
* Checks the passed-in array against the correct password.
* After this method returns, you should invoke eraseArray
* on the passed-in array.
*/
private static boolean isPasswordCorrect(char[] input) {
boolean isCorrect = true;
char[] correctPassword = { 'b', 'u', 'g', 'a', 'b', 'o', 'o' };
if (input.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (input, correctPassword);
}
//Zero out the password.
Arrays.fill(correctPassword,'0');
return isCorrect;
}
//Must be called from the event dispatch thread.
protected void resetFocus() {
passwordField.requestFocusInWindow();
}
/**
* Create the GUI and show it. For thread safety, * this method should be invoked from the
* event dispatch thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("PasswordDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
final JavaApplication1 newContentPane = new JavaApplication1(frame);
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Make sure the focus goes to the right component
//whenever the frame is initially given the focus.
frame.addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent e) {
newContentPane.resetFocus();
}
});
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event dispatch thread:
//creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//Turn off metal's use of bold fonts
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
}
Check for errors );
PASSWORD AS "bugaboo"![](data:image/png;base64,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)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
public class JavaApplication1 extends JPanel implements ActionListener{
private static String OK = "ok";
private static String HELP = "help";
private JFrame controllingFrame; //needed for dialogs
private JPasswordField passwordField;
public JavaApplication1(JFrame f) {
//Use the default FlowLayout.
controllingFrame = f;
//Create everything.
passwordField = new JPasswordField(10);
passwordField.setActionCommand(OK);
passwordField.addActionListener(this);
JLabel label = new JLabel("Enter the password: ");
label.setLabelFor(passwordField);
JComponent buttonPane = createButtonPanel();
//Lay out everything.
JPanel textPane = new JPanel(new FlowLayout(FlowLayout.TRAILING));
textPane.add(label);
textPane.add(passwordField);
add(textPane);
add(buttonPane);
}
protected JComponent createButtonPanel() {
JPanel p = new JPanel(new GridLayout(0,1));
JButton okButton = new JButton("OK");
JButton helpButton = new JButton("Help");
okButton.setActionCommand(OK);
helpButton.setActionCommand(HELP);
okButton.addActionListener(this);
helpButton.addActionListener(this);
p.add(okButton);
p.add(helpButton);
return p;
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (OK.equals(cmd)) { //Process the password.
char[] input = passwordField.getPassword();
if (isPasswordCorrect(input)) {
JOptionPane.showMessageDialog(controllingFrame,
"Success! You typed the right password.");
} else {
JOptionPane.showMessageDialog(controllingFrame,
"Invalid password. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);
}
//Zero out the possible password, for security.
Arrays.fill(input, '0');
passwordField.selectAll();
resetFocus();
} else { //The user has asked for help.
JOptionPane.showMessageDialog(controllingFrame,
"You can get the password by searching this example's\n"
+ "source code for the string \"correctPassword\".\n"
+ "Or look at the section How to Use Password Fields in\n"
+ "the components section of The Java Tutorial.");
}
}
/**
* Checks the passed-in array against the correct password.
* After this method returns, you should invoke eraseArray
* on the passed-in array.
*/
private static boolean isPasswordCorrect(char[] input) {
boolean isCorrect = true;
char[] correctPassword = { 'b', 'u', 'g', 'a', 'b', 'o', 'o' };
if (input.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (input, correctPassword);
}
//Zero out the password.
Arrays.fill(correctPassword,'0');
return isCorrect;
}
//Must be called from the event dispatch thread.
protected void resetFocus() {
passwordField.requestFocusInWindow();
}
/**
* Create the GUI and show it. For thread safety, * this method should be invoked from the
* event dispatch thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("PasswordDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
final JavaApplication1 newContentPane = new JavaApplication1(frame);
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Make sure the focus goes to the right component
//whenever the frame is initially given the focus.
frame.addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent e) {
newContentPane.resetFocus();
}
});
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event dispatch thread:
//creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//Turn off metal's use of bold fonts
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
}
Check for errors );
PASSWORD AS "bugaboo"
No comments:
Post a Comment