Ho una form di login in cui devo gestire degli eventi in base al contenuto inserito dall'utente.
Ho messo nel codice la gestione eventi associata alla jtextfiled della username.
Ovviamente non funziona.
Vi chiederei un chiarimento anche perchè il codice messo è stato raffa<<olato andando a vedere esempi in internet.
Possibilmente se potete commentarli perchè questa parte del codice java mi è ancora molto oscuro.
Grazie
Moreno
PS vi prego di non sorridere e di portare pazienza, ma sono alle prime fasi dell'education , nonostante tutti i miei sforzi,
comprendo di fare delle vere porcherie dal punto di vista sintattico.
grazie.
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import javax.swing.JPasswordField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JTextArea;
import javax.swing.JToggleButton;
import javax.swing.JTextPane;
import javax.swing.JSpinner;
import javax.swing.JList;
import javax.swing.JSlider;
import javax.swing.JScrollBar;
import javax.swing.JSeparator;
import javax.swing.JFormattedTextField;
import javax.swing.SwingConstants;
import javax.swing.JInternalFrame;
import java.sql.*;
import java.awt.event.*; // inserirla per gestire gli eventi
// import java.util.EventListener;
// public class login extends JFrame implements ActionListener {
public class login extends JFrame {
private JPanel contentPane;
private JTextField txtUserName;
private JPasswordField pwdUser;
// parametri per connessione
/*
private static Connection conn = null;
private Statement s = null;
private ResultSet rs = null;
*/
private static Connection conn;
private static Statement s;
private static ResultSet rs;
private static String MsgResult;
private String TxtMessaggio;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
login frame = new login();
EseguiConnessione();
frame.setTitle("Login in Java");
// frame.formattedTextField.setText(MsgResult);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public login() {
/*
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
*/
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 473, 289);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel_1 = new JPanel();
panel_1.setBounds(33, 63, 196, 26);
contentPane.add(panel_1);
panel_1.setLayout(null);
JLabel lblPwd = new JLabel("Password");
lblPwd.setBounds(0, 12, 60, 14);
panel_1.add(lblPwd);
pwdUser = new JPasswordField();
pwdUser.setBounds(87, 0, 109, 20);
panel_1.add(pwdUser);
JLabel lblNameUtente = new JLabel("Visualizza Nome Utente");
lblNameUtente.setFont(new Font("Tempus Sans ITC", Font.PLAIN, 14));
lblNameUtente.setForeground(new Color(255, 127, 80));
lblNameUtente.setBounds(33, 103, 251, 20);
contentPane.add(lblNameUtente);
JLabel lblRuolo = new JLabel("Visualizza Ruolo Utente");
lblRuolo.setForeground(new Color(255, 127, 80));
lblRuolo.setFont(new Font("Tempus Sans ITC", Font.PLAIN, 14));
lblRuolo.setBounds(33, 134, 231, 20);
contentPane.add(lblRuolo);
JButton btnLogin = new JButton("Login");
btnLogin.setBounds(80, 181, 109, 28);
contentPane.add(btnLogin);
JLabel lblLogo = new JLabel("");
Image imgLogo = new ImageIcon(this.getClass().getResource("./imagesLogin.png")).getImage();
lblLogo.setIcon(new ImageIcon(imgLogo));
lblLogo.setBounds(316, 35, 108, 135);
contentPane.add(lblLogo);
JPanel panel = new JPanel();
panel.setBounds(33, 27, 192, 20);
contentPane.add(panel);
panel.setLayout(null);
JLabel lblUserName = new JLabel("User Name");
lblUserName.setBounds(0, 3, 52, 14);
panel.add(lblUserName);
lblUserName.setHorizontalAlignment(SwingConstants.LEFT);
txtUserName = new JTextField();
txtUserName.setBounds(86, 0, 106, 20);
panel.add(txtUserName);
txtUserName.setColumns(10);
txtUserName.addActionListener(new ActionListener() // definito l'ascoltatore degli eventi
{
@Override
public void actionPerformed(ActionEvent e)
{
letturaUserName();
}
});
JPanel panel_2 = new JPanel();
panel_2.setBounds(18, 226, 441, 21);
contentPane.add(panel_2);
panel_2.setLayout(null);
JLabel lblIconMessage = new JLabel("ico");
Image imgLogoMessage = new ImageIcon(this.getClass().getResource("./Ko32x32.png")).getImage();
lblIconMessage.setIcon(new ImageIcon(imgLogoMessage));
lblIconMessage.setBounds(0, 0, 32, 32);
panel_2.add(lblIconMessage);
lblIconMessage.setHorizontalAlignment(SwingConstants.LEFT);
JSeparator separator01 = new JSeparator();
separator01.setBounds(18, 0, 1, 18);
panel_2.add(separator01);
separator01.setOrientation(SwingConstants.VERTICAL);
separator01.setBackground(Color.BLUE);
JLabel lblDay = new JLabel("Day");
lblDay.setBounds(293, 1, 69, 20);
panel_2.add(lblDay);
lblDay.setHorizontalAlignment(SwingConstants.LEFT);
JSeparator separator02 = new JSeparator();
separator02.setOrientation(SwingConstants.VERTICAL);
separator02.setBackground(Color.BLUE);
separator02.setBounds(335, 0, 1, 18);
contentPane.add(separator02);
JLabel lblHms = new JLabel("hh:mm:ss");
lblHms.setBounds(372, 0, 69, 20);
panel_2.add(lblHms);
lblHms.setHorizontalAlignment(SwingConstants.LEFT);
JSeparator separator03 = new JSeparator();
separator03.setBounds(368, 0, 1, 18);
panel_2.add(separator03);
separator03.setOrientation(SwingConstants.VERTICAL);
separator03.setBackground(Color.BLUE);
JFormattedTextField formattedTextField = new JFormattedTextField();
formattedTextField.setBounds(19, 1, 264, 20);
panel_2.add(formattedTextField);
formattedTextField.setText("riga messaggi");
formattedTextField.setHorizontalAlignment(SwingConstants.LEFT);
}
public static void EseguiConnessione()
{
conn = null;
s = null;
rs = null;
MsgResult = null;
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
}
catch(ClassNotFoundException ex) {
System.out.println("Problem in loading MS Access JDBC driver");
ex.printStackTrace();
System.out.println(ex.getMessage());
}
try
{
//String msAccDB = "C:\\Archivi\\Sif.accdb";
String msAccDB = "C:/Archivi/Sif.accdb";
String database = "jdbc:ucanaccess://" + msAccDB;
conn = DriverManager.getConnection(database);
System.out.println("Eseguita correttamente la connessione a OleDb su Sif");
MsgResult = "Db-Access Sif Connessione riuscita";
}
catch(Exception ex)
{
ex.printStackTrace();
System.out.println(ex.getMessage());
}
}
private void letturaUserName()
{
System.out.println("sono uscito dala textbox username");
}
}
Mi premerebbe sapere se all'interno dell'evento posso richiamare anche metodi esterni (la versione finale del metodo che tratta l'uscita dal campo
jTextFiled deve prevedere d effettuare una lettura nella tabella anagrafica degli utenti in base allo user id inserito)
Allegati: