PASSWORDS Y LUEGO EJECUTAR

mikeing
17 de Febrero del 2010
Buenas... tenemos un problema

tenemos una cosa que es una ventada donde introduces la contraseña

vale queremos que cuando introduzcas la contraseña se ejecute el programa que hemos escrito

la estructura de programas seria:

1º le damos a run (en eclipse) y saldria el dialogo de la contraseña
2º si pones bien la contraseña se inicia el programa en cuestion
3º sino no

SERIA en donde pone que si la metes bien te salga otra ventanita dicendo success poner algo (no se que) que ejecutara lam siguiente parte del codigo
supongo q esa otra parte habria que meterla en otra nueva clase

GRAX!

este es el script de la contraseña:


package components;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;

/* PasswordDemo.java requires no other files. */

public class PasswordDemo extends JPanel
implements ActionListener {
private static String OK = "ok";
;

private JFrame controllingFrame; //needed for dialogs
private JPasswordField passwordField;

public PasswordDemo(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");


okButton.setActionCommand(OK);

okButton.addActionListener(this);


p.add(okButton);


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'sn"
+ "source code for the string "correctPassword".n"
+ "Or look at the section How to Use Password Fields inn"
+ "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 = { 'p', 'e', 'e', 'e', 'n', 'e', 'e' };

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 PasswordDemo newContentPane = new PasswordDemo(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();
}
});
}
}


kalua66
17 de Febrero del 2010
Hola mikeing, donde tienes el problema...

Creas otra clase donde tengas lo que quieras despues de pasar la contraseña.
Y caundo compruebas que acerto, pues creas un objeto de la clase nueva y lo llamas...

Tiene la:
clase PasswordDemo

Y la otra la llamas como kieras
EJ:
clase MenuPrincipal

pues desde donde acertaste..
creas el objeto...
MenuPrincipal Llamada=new MenuPrincipal();
Llamada.setTitle("aki le pone el titulo");
Llamada.setIcon.....
Llamada.setSize...
Llamada.setVisible(true);