Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [netbeans java]Grafica con tool di netbeans

    ciao sono di nuovo qui con un altro problema.

    sto usando netbeans per fare la grafica del progetto che avevo sviluppato.ho creato la prima schermata di netbeans per il login nessun problema. questa è il risultato:

    il problema sta che voglio mettere un evento ad bottone login. premendo su login dovrebbe comparire il jdialog che sto creando. Mi potete dare una mano con questo jdialog. il codice il button e questo:
    codice:
    private void loginActionPerformed(java.awt.event.ActionEvent evt) {
        String user = fildUser.getText();
        char[] psw = fieldpsw.getPassword();
        if (user == null || psw == null || user.equals("") || psw.length < 6) {
            String msg = "Errore inserisci correttamente i dati di login. \n ";
            if (psw.length < 6) {
                msg += " Password troppo corta.";
            }
            JOptionPane.showMessageDialog(rootPane, msg, "Errore di login!!", WIDTH);
    
        } else {
            String passwor = "";
            for (int i = 0; i < psw.length; i++) {
                passwor += psw[i];
            }
            GestoreLogin gl = new GestoreLogin(db);
            List<Login> lList = gl.cerca( new Login(user, passwor, null));
            if (lList == null || lList.isEmpty()) {
                JOptionPane.showMessageDialog(rootPane, "Password o username sbagliati. /n oppure utente non presnete nel db", "Errore di login!!", WIDTH);
    
            } else {
                GestoreDipendente gd = new GestoreDipendente(db);
                List<Dipendente> dlist = gd.cerca(lList.get(0).getDipendente());
                if (dlist == null || dlist.isEmpty()) {
                    JOptionPane.showMessageDialog(rootPane, "Errore dipendente non trovato", "Errore di login!!", WIDTH);
                } else {
                    String ruolo = dlist.get(0).getRuolo().toLowerCase().trim();
                   if(ruolo.equals("admin")){
                      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
                      getContentPane().setLayout(layout);
                        System.out.println("sono dentro admin");
                   }else if(ruolo.equals("cuoco")){
                        System.out.println("sono dentro cuoco");       
                       cuoco2.setVisible(true);
                                     
                   }
                }
            }
        }
    
    
    
    }
    il codice funziona in parte cioe apre il jdialog pero rimane anche aperto il jframe iniziale cioe quello che ho messo lo screen.

    qualcuno di voi puo suggerirmi una idea?
    qualsiasi soluzione anche non usare i jdialog, avevo pensato di usare i jpanel pero con netbeans non posso creare jpanel separati da poterli disegnare con il suo tool.

    in coclusione mi serve un metodo che dopo il login ricrea un panello con all'interno i nuovi dati che devo scrivere per la gestione ristorante.



    grazie della disponibilita.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ci sono diversi consigli che posso darti:

    1. impara a programmare in oggetti.
    Hai un metodo enorme, e sicuramente pezzi di codice li utilizzi in altri posti.
    Ad esempio, ti chiedi se gli input sono validi, ma

    codice:
    private boolean inputValid(String text){
        return (text != null && text.trim().length > 0)
    }
    in questo modo la tua azione di controllo dentro l'azione sarà del tipo

    codice:
    private void azione(){
       if (inputValid(login.getText()) && inputValid(password.getText()){
        //fai le tue cose.
        // se sei qui considera anche che controlli aggiuntivi su lunghezza minima puoi farne, 
        // ma puoi farne in altri modi più eleganti
      }
    }
    hai già creato un componente riusabile, aggiunto leggibilità/manutenibilità al codice

    2. per passare da string a byte array hai mai guardato la libreria String e il metodo getBytes()?

    3. ad ogni richiesta chiami il gestore di login, a cui passi db che penso sia la tua connessione. E fin qui ok, ma la tua login deve tornare solo vero o falso, non ti interessa la lista (non perdi tempo a costruirla). Il login non necessita di un suo bean, fai una query ad una tabella con user e pass e ti serve sapere si o no. Se ti serve altro prendi le altre info (ma un record solo, non una lista) con query diretta.
    Se trovi un utente con quel nome e quella pass sei ok (ti basta che la query torni result), altrimenti rispondi con errore.
    Se trovi result, puoi caricare il dipendente.
    Ma tutti questi gestori sono necessari? In realtà a te serve UN SOLO GESTORE a cui chiedi tante cose, puoi mettere le più comuni in metodi ben precisi (es. login, cercadipendente) e fare le altre con query sql pure. Perché aggiungere questo sovraccarico?

    codice:
     Gestore gl = new Gestore(db);
    boolean found = gl.login(userName, pass); 
    if (!found) {
     //errore
    return; 
    }
    
    Dipendente dip = gl.getDipendente (user, pass); 
    if (dip != null) {
    // e dovrebbe essere vero 
    // fai le tue cosine
    }
    3. JOptionPane sono usati per visualizzare BREVI messaggi informativi all'utente
    4. chi è cuoco2?
    5. molla netbeans grafico e impara a scrivere le interfacce grafiche a manina, questo ti costringe a guardare le api e a capire come gestire i dialog
    RTFM Read That F*** Manual!!!

  3. #3
    ti ringrazio molto per i tuoi consigli faro come hai detto faro un solo gestione max 2 insomma suddivido in operazioni comuni.

    per il fatto di netbeans mi hanno detto che velocizzavo le operazione, ne no la grafica amano la so fare o creato fari progetto facendo sempre a meno del tool. oggi sono riuscito a capire come funziona il tool e dico ben aiuta ottimizza la scrittura della grafica la maggior parte invece lo devo scrivere a mano.

    per il fatto che restituisco una lista di dipendente bhe su questo ti do ragione sl fatto che la lista è eccessiva ma non va bene neache che ritorni un boolean mi deve restituire il codice fiscale cioe la chiave del dipendete poiche devo controllare il suo ruolo nel ristorante, poiche ho diverse interfaccie grafiche per ogni tipo di dipendete cioe cuoco, cameriere, magazziniere ecc... in base al suo ruolo che si trova nella tabella dipendete devo cariare la interfaccia diversa.

    comunque grazie per i tuoi consigli, li metterò in atto rifarò la implementazione del progetto. tanto avendo gia scritto il codice. non ci metto molto a modificarlo, il codice rimane sempre lo stesso.

    tnks

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da orphenix
    per il fatto di netbeans mi hanno detto che velocizzavo le operazione, ne no la grafica amano la so fare o creato fari progetto facendo sempre a meno del tool. oggi sono riuscito a capire come funziona il tool e dico ben aiuta ottimizza la scrittura della grafica la maggior parte invece lo devo scrivere a mano.
    per esperienza, dopo un po' sono più i problemi che netbeans crea con matisse che non quelli che ti risolve (un indizio: prova a gestire il resizing).
    Originariamente inviato da orphenix
    per il fatto che restituisco una lista di dipendente bhe su questo ti do ragione sl fatto che la lista è eccessiva ma non va bene neache che ritorni un boolean mi deve restituire il codice fiscale cioe la chiave del dipendete poiche devo controllare il suo ruolo nel ristorante, poiche ho diverse interfaccie grafiche per ogni tipo di dipendete cioe cuoco, cameriere, magazziniere ecc... in base al suo ruolo che si trova nella tabella dipendete devo cariare la interfaccia diversa.
    beh fatti tornare la chiave primaria (codice fiscale insomma)
    Originariamente inviato da orphenix

    comunque grazie per i tuoi consigli, li metterò in atto rifarò la implementazione del progetto. tanto avendo gia scritto il codice. non ci metto molto a modificarlo, il codice rimane sempre lo stesso.

    tnks
    prego
    RTFM Read That F*** Manual!!!

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.