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();
}
}
}