Ciao!
riutilizzando questo codice abbiamo notato che la textfield txtUtente accetta solo caratteri numerici. Come si può risolvere questo problema facendo si che vengano accettati caratteri alfabetici?? aiuto!!![]()
VVoVe:
codice:import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.net.URL; import java.net.MalformedURLException; import javax.swing.JApplet.*; public class Login3 extends JApplet { JLabel labTitAccesso,labUtente,labPassword; JTextField txtUtente; JPasswordField txtPassword; JButton btnEntra; JPanel panCentrale,panTitolo,panUtente,panPassword,panPulsanti; private Connection connessione; public void init() { setSize(400,400); setBackground( Color.black); try { // Inizia connessione con il database Class.forName("com.mysql.jdbc.Driver"); connessione=DriverManager.getConnection("jdbc:mysql://localhost:3306/schedule" , "root","root"); } catch (ClassNotFoundException cnfex) { //processo ClassNotFoundExceptions qui System.err.println("Caricamento di driver JDBC/ODBC non riuscito"); cnfex.printStackTrace(); System.exit(1); } catch (SQLException sqlex) { //processo SQLExceptions qui System.err.println("Non è possibile completare la connessione"); sqlex.printStackTrace(); } panCentrale=new JPanel(); panTitolo=new JPanel(); panUtente=new JPanel(); panPassword=new JPanel(); panPulsanti=new JPanel(); // imposto i layout dei pannelli setLayout(new BorderLayout()); panCentrale.setLayout(new BoxLayout(panCentrale, BoxLayout.Y_AXIS)); panUtente = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 10)); panPassword = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 10)); panPulsanti = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 10)); // definizioni delle etichette labTitAccesso=new JLabel("Accesso Utenti",SwingConstants.CENTER); labUtente=new JLabel("Utente",SwingConstants.CENTER); labPassword=new JLabel("Password",SwingConstants.CENTER); // definizioni dei campi di testo txtUtente=new JTextField(10); // questo campo accetterà solo numeri e il pulsante txtUtente.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char caracter = e.getKeyChar(); if(((caracter <'0') ||(caracter> '9')) &&(caracter != KeyEvent.VK_BACK_SPACE)) { e.consume(); } } }); txtPassword=new JPasswordField(10); // definizione del pulsante btnEntra=new JButton("Entra"); // collego questo pulsante al metodo Login btnEntra.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Login(e); } }); // inserimento degli elementi Swing ai pannelli panTitolo.add(labTitAccesso); panUtente.add(labUtente); panUtente.add(txtUtente); panPassword.add(labPassword); panPassword.add(txtPassword); panPulsanti.add(btnEntra); //inserimento dei pannelli al pannello centrale panCentrale.add(panTitolo); panCentrale.add(panUtente); panCentrale.add(panPassword); panCentrale.add(panPulsanti); add(panCentrale,BorderLayout.CENTER); } // metodo collegato al pulsante btnEntra public void Login(ActionEvent e) { try { if(!txtUtente.getText().equals("") && !txtPassword.getText().equals("")) { Statement statement =connessione.createStatement(); // query che usa i dati dei campi Codice e Password della tabella Utenti String query="SELECT Cognome,Password FROM Utente_docente WHERE Cognome="+ txtUtente.getText()+ " AND Password='"+txtPassword.getText()+"'"; // stampa della stringa della query System.out.println("\nInviando query: "+connessione.nativeSQL(query)+"\n"); ResultSet resultset=statement.executeQuery(query); display(resultset); statement.close(); } else if(txtUtente.getText().equals("") && !txtPassword.getText().equals("")) { JOptionPane.showMessageDialog(null, "Inserisca Nome Utente","Login", JOptionPane.ERROR_MESSAGE); } else if(!txtUtente.getText().equals("") && txtPassword.getText().equals("")) { JOptionPane.showMessageDialog(null, "Inserisca Password","Login", JOptionPane.ERROR_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Inserisca Nome Utente e Password","Login", JOptionPane.ERROR_MESSAGE);} } // cattura eventuali errori ed eccezioni nella richiesta de la query catch(SQLException sqlex) { sqlex.printStackTrace(); } } public void display(ResultSet resultset) { String urlString="Programma.html"; URL url = null; try { if(resultset.next()) { // Carica il file Programma.html nella stessa pagina dell'applet url = new URL(getDocumentBase(),urlString); getAppletContext().showDocument(url); JOptionPane.showMessageDialog(null, "Utente loggato" ,"Login", JOptionPane.INFORMATION_MESSAGE); } else {JOptionPane.showMessageDialog(null, "Riprovare","Login", JOptionPane.ERROR_MESSAGE); return; } } catch (MalformedURLException e) { System.err.println("Malformed URL: " + urlString); } catch (SQLException sqlex) { sqlex.printStackTrace(); } } }

VVoVe:
Rispondi quotando