Visualizzazione dei risultati da 1 a 10 su 10

Discussione: JPasswordField....

  1. #1
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515

    JPasswordField....

    ciao a tutti...ho insertito una password per aprire un programma...ma quando digito la password giusta non fa nulla!!! mi spiego meglio....

    allora per aprire il programma senza JPasswrodField scrivo:

    codice:
    public Main() {
    super();
    inizio();
    getContentMenuBar();
    comboShow();
    }
    in questo modo mi apre il programma e funziona benissimo!!!

    dopo do inserito il JPasswordField in questo modo:

    codice:
    public Main() {
    super();
    JFrame frame = new JFrame("Password");
    
            JLabel jlbPassword = new JLabel("Enter the password: ");
            JPasswordField pass = new JPasswordField(10);
            pass.setEchoChar('*');
            pass.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
    				 JPasswordField input = (JPasswordField)e.getSource();
    	             char[] password = input.getPassword();
    	             if (isPasswordCorrect(password)) {
    	            	 JOptionPane.showMessageDialog(null, "Password giusta.");
    	            	 inizio();
    	              getContentMenuBar();
    	            	 comboShow();
    	             } 
    	             else {
    	                    JOptionPane.showMessageDialog(null, "Password Errata.","Errore", JOptionPane.ERROR_MESSAGE);
    	             }
    			}
            });
            JPanel jplContentPane = new JPanel(new BorderLayout());
            jplContentPane.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
            jplContentPane.add(jlbPassword, BorderLayout.WEST);
            jplContentPane.add(pass, BorderLayout.CENTER);
            frame.setContentPane(jplContentPane);
            frame.setSize(00, 100);
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) { System.exit(0); }
            });
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
    }
    codice:
    private static boolean isPasswordCorrect(char[] inputPassword) {
    char[] actualPassword = { 'g', 'i', 'u', 's', 'e', 'p', 'p', 'e'};
     if (inputPassword.length != actualPassword.length)
    return false;				        
    for (int i = 0;  i < inputPassword.length; i ++)
     if (inputPassword[i] != actualPassword[i])
     return false;
    return true;
    }
    in questo modo quando digito la password "giuseppe" mi esce il messaggio ma non esce il programma....come mai????

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Ma tu programmi a ritmo di copia-incolla da internet? E' palese sai.
    Dai una sistemata agli apici intanto.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Verifica se viene sollevata qualche eccezione, ma la cosa più importante da fare è cercare di sistemare un po' quel codice.

    Nel primo caso stai chiamando i metodi inizio(), getContentMenuBar() e comboShow() dall'interno della classe. Nel secondo caso li stai richiamando dall'interno di una anonymous-inner class (l'ActionListener). Le cose cozzano un po'.

    Modifica l'ActionListener in questo modo:
    codice:
    pass.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
          verificaPassword((JPasswordField) e.getSource());
       }
    });
    Poi crea un metodo privato "verificaPassword", che prende in input un oggetto JPasswordField e fa tutti i controlli del caso:

    codice:
    private void verificaPassword(JPasswordField jpf) {
       char[] password = jpf.getPassword();
       if ( isPasswordCorrect(password) ) {
          JOptionPane.showMessageDialog(null, "Password giusta.");
          inizio();
          getContentMenuBar();
          comboShow();
       } else {
          JOptionPane.showMessageDialog(null, "Password Errata.","Errore", JOptionPane.ERROR_MESSAGE);
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    grazie mille lele....

    per quanto riguarda patrik!!!!!!

    da secoli anche nelle scuole!!!!!! quando si studia una cosa nuova viene associato senpre 1 o + esempi!!!! in modo tale da capire prima come funziona l'applicazione...applicare l'esempio associato...poi quando capisci come funziona lo vai a personalizzare....

    poi è ovvio che se non comprendi qualcosa scrivi nel forum per essere aiutato!!!!

    questa è una metologia di studio sempre applicato nelle scuole e in tutti i libri internazionali!!!!

    sei poi tu capisci nuove applicazioni senza esempi...buono per te!!!!

    ma nessuno ti da l'autorizzazione di giudicare e di dire che copio ed incollo!!!! perchè non sai assolutamente su cosa stò lavorando e costruendo!!!!!

    se mi vuoi aiutare molto bene..altrimenti preferire non vedere scritte determinate offese!!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Io ho riportato solamente la realtà dei fatti, caro Paul.

    da secoli anche nelle scuole!!!!!! quando si studia una cosa nuova viene associato senpre 1 o + esempi!!!! in modo tale da capire prima come funziona l'applicazione...applicare l'esempio associato...poi quando capisci come funziona lo vai a personalizzare....
    Gli esempi servono a capire, sono molti utili perchè chiariscono molti concetti. Infatti i libri di testo ne riportano sempre.
    Quindi si programma copiando del codice, incollandolo, e modificandolo quando lo si ha capito...giusto? Buona a sapersi!

    ma nessuno ti da l'autorizzazione di giudicare e di dire che copio ed incollo!!!! perchè non sai assolutamente su cosa stò lavorando e costruendo!!!!!

    se mi vuoi aiutare molto bene..altrimenti preferire non vedere scritte determinate offese!!!!
    No, ma i fatti si. La mia era solo una costatazione... non ti ho giudicato, ho giudicato ciò che hai fatto. Sai cosa me lo fa dire? Il fatto che se copi il tuo codice e lo incolli su google, ci sono almeno 4-5 esempi uguali (stesse variabili anche). Un esempio di quanto dico, lo si trova a pagina 20:
    http://www.scribd.com/doc/69969631/G...de-and-Samples

    Eccone un secondo:
    DOC

    Sorvolo poi sulla tua contraddizione...

    Non venire a dirmi che non ti ho mai dato aiuto... io più Lele e valia abbiamo sempre cercato di risponderti, spiegandoti le cose (valia in particolare); cose che ti ostini a non imparare in teoria, prima di applicarle.


    Mi scuso con lo Staff per l'OT.

  6. #6
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    non si programma copiando il cod. e incollarlo!!!!!!!!!!!!!!!!

    si programma capendo prima su cosa hai studiato (con gli esempi...)e facendo delle prove pratiche...una volta capito...la personalizzi!!!!!

    personalizzare non intendo modificare quello che ho copiato ma a creare una nuova...

    per quanto riguarda valia è stata molto gentile disponibile e suprattutto molto paziente su cose dove ho avuto difficoltà ad apprendere....ed è umano avere difficoltà in alcune cose...

    credimi non voglio assolutamente litigare con te....anzi...se ho detto cose offensive ti chiedo anche scusa...

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Non è mia intenzione litigare.

    Vi sono dei concetti teorici (la OOP, ad esempio) che non puoi apprendere con la pratica. La pratica può aiutarti a capire parti di teoria.
    Se ti parlo ad esempio di Overload e Override di un metodo, probabilmente non sai di che si tratta e quindi come realizzarli.


    Detto questo... con JPasswordField, hai risolto? In caso contrario posta del codice.

  8. #8
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    SI in gran parte...

    cioè quando faccio paartire il progetto mi escono 2 frame...

    quello del "Main" (vuoto) e quello con l'inserimento della password...

    nel momento in cui inserisco la password giusta mi esce il Main...

    all'inizio quando apro il programma vorrei fa uscire solo il frame della password....

    cmq il cod. è questo:

    codice:
    public Main() {
    super();
    framePass = new JFrame("Password");
            JLabel jlbPassword = new JLabel("Inserire la Password: ");
            JPasswordField pass = new JPasswordField(10);
            pass.setEchoChar('*');
            pass.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                	verificaPassword((JPasswordField) e.getSource()); 
    			}
            });
            JPanel p = new JPanel(new BorderLayout());
            p.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
            p.add(jlbPassword, BorderLayout.WEST);
            p.add(pass, BorderLayout.CENTER);
            framePass.setContentPane(p);
            framePass.setSize(500, 100);
            framePass.setLocationRelativeTo(null);
            framePass.setVisible(true);
    		
    	}
    codice:
    private void verificaPassword(JPasswordField pass) {
    char[] password = pass.getPassword();
    if ( isPasswordCorrect(password) ) {			
    JOptionPane.showMessageDialog(null, "Password giusta.");
    inizio();
    getContentMenuBar();
    comboShow();
    framePass.setVisible(false);
    			
    } else {
    JOptionPane.showMessageDialog(null, "Password Errata.","Errore", JOptionPane.ERROR_MESSAGE);
    }
    }
    codice:
    public static void main(String[] args) {
    		// TODO Auto-generated method stub		
    		Main d = new Main();
    		d.setVisible(true);
    		
    }
    quando avvio il programma mi escono 2 frame....

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da paul78
    quando avvio il programma mi escono 2 frame....
    Main immagino estenda JFrame, giusto?

    All'interno del main crei un'instanza di Main (che nome orrendo per una classe) e la rendi visibile.
    Al suo interno crei un JFrame e lo rendi visible.

    2 + 2 = ?



    ps: non per polemizzare ma è veramente un casino capire quello che scrivi, sia a livello di codice che -sopratutto- di italiano
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    giustissimo!!!!!

    risolto!!!!!


    grazie mille a tutti!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.