Domanda su interfaccia GUI

di il
3 risposte

Domanda su interfaccia GUI

Buonasera a tutti, complimenti per il forum, io mi sono appena iscritto,ergo se toppo al primo post non uccidetemi
Ho una domanda su una interfaccia creata in java.
Premetto che non sono per niente pratico in interfacce e sono alle prime armi.
La domanda è questa:
Ho creato una semplice interfaccia con una label "username" ed una textField accanto in cui inserire la username richiesta, sotto la textField ho messo un piccola label in cui un metodo mi dice se la username inserita è valida oppure no (stupidamente controlla solo se la username inserita ha tutti i suoi caratteri maiuscoli) così giusto per esercitarmi un po'.
dopo che ho creato la textField nel codice mi sono comparsi due metodi
1) private void FieldUsernameActionPerformed(java.awt.event.ActionEvent evt) {}
2)private void FieldUsernameFocusLost(java.awt.event.FocusEvent evt) {}

I controlli li ho fatti su FocusLost perchè il controllo deve farlo quando viene perso il lost sulla text, e nella ActionPerformed non ho implementato nulla.
Stessa cosa con un Button messo alla fine che invia i dati su cui ho implementato un evento mouse click che controlla che sia tutto ok.
anche li però avevo il metodo ActionPerformed e MouseClicked, ed ho implementato solo MouseClicked.
Il programma funziona ma allora i metodi ActionPerformed a cosa mi servono?
Grazie per la pazienza e grazie a chi leggerà ed a chi mi aiuterà
Un saluto a tutti
Wiper

3 Risposte

  • Re: Domanda su interfaccia GUI

    Il metodo actionPerformed() serve per raccogliere l'evento del click su un JButton e fa parte dell'interfaccia ActionListener.
    il metodo mouseClicked() fa parte dell'interfaccia MouseListener (e implementato per non far nulla nella classe astratta MouseAdapter, assieme ad altri metodi affini) e serve per raccogliere l'evento del click del mouse su un'area della finestra (o di un pannello).

    Se ho ben capito cosa hai fatto (provo ad indovinare in assenza di codice) il tuo programma dovrebbe funzionare anche se non clicchi sul pulsante.
  • Re: Domanda su interfaccia GUI

    Ok mi è un pochetto più chiaro, si funziona anche senza perchè se il codice di controllo username l'ho implementato nel focus lost come tolgo il focus lui lavora.
    Quindi muoseClicked() server raccogliere l'evento click ma in qualsiasi area del pannello, ovviamente anche nel jButton in quanto si trova all'interno di esso. invece actionPerformed() di Listener serve per raccogliere l'evento click solo sul jButton in questione.
    Ok.
    Per quanto riguarda invece i due metodi sulla textField? quindi
    - FieldUsernameActionPerformed(java.awt.event.ActionEvent evt)
    - FieldUsernameFocusLost(java.awt.event.FocusEvent evt)

    Focus lost lavora non appena perdo il focus sulla text e siamo d'accordo, ma ActionPerformed() ad esempio come posso usarlo?
    Spero di essermi fatto capire.
    Grazie per la risposta comunque
  • Re: Domanda su interfaccia GUI

    Si, mouseClicked() rileva l'evento click del mouse in un punto qualunque del componente su cui ha aggiunto l'ascoltatore (cioè MouseListener).

    Per quanto riguarda i 2 metodi, non capisco, JTextField non mette a disposizione quei metodi.
    Suppongo che siano metodi scritti da te ad hoc, quindi non posso sapere come funzionano.
Devi accedere o registrarti per scrivere nel forum
3 risposte