Events
Komponentit, jotka ovat joko mukautettuja tai osa kehystä, tukevat tapahtumien käsittelyä. Voit lisätä tapahtumakuuntelijoita, jotka tallentavat erilaisia tapahtumia, kuten käyttäjän vuorovaikutuksia, tilan muutoksia tai muita mukautettuja tapahtumia. Näitä tapahtumakuuntelijoita voidaan käyttää erityisten toimintojen tai käyttäytymisten laukaisemiseen vastauksena tapahtumiin.
Alla olevassa esimerkissä tapahtuma lisätään käyttäen kolmea tuettua menetelmää: lambda-lausekkeita, nimettömiä luokkia ja menetelviittauksia.
Tapahtumien lisääminen
Tapahtumakuuntelijan lisääminen on mahdollista käyttää yhden seuraavista malleista, joissa:
-
myComponent
on komponentti, johon haluat liittää tapahtumakuuntelijan. -
addEventListener
korvataan tapahtumakohtaisella menetelmällä. -
EventListener
korvataan kuunneltavan tapahtuman tyypillä.
myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma käynnistyy
});
//TAI
myComponent.addEventListener(new ComponentEventListener<EventListener>() {
@Override
public void onComponentEvent(ComponentEvent e){
//Suoritetaan, kun tapahtuma käynnistyy
}
});
//TAI
myComponent.addEventListener(this::eventMethod);
Lisäksi on lisätty synnin sokeria tai alias-menetelmiä vaihtoehtoisia tapahtumien lisäämistä varten käyttämällä on
-etuliitettä, jota seuraa tapahtuma, kuten:
myComponent.onEvent(e -> {
//Suoritetaan, kun tapahtuma käynnistyy
});
Tapahtuman poistaminen
Kun lisäät tapahtumakuuntelijan, palautetaan ListenerRegistration
-objekti. Tätä voidaan käyttää muiden asioiden ohella tapahtuman poistamiseen myöhemmin.
//Tapahtuman lisääminen
ListenerRegistration listenerRegistration = myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma käynnistyy
});
//Tapahtuman poistaminen
listenerRegistration.remove();
Tapahtuman hyödyntäminen
On tärkeää huomata, että tapahtumilla tulee usein mukana kuormitus, joka sisältää lisätietoja tapahtumasta. Voit tehokkaasti käyttää tätä kuormitusta tapahtumankäsittelijässä päästäksesi käsiksi relevantteihin tietoihin ilman tarpeettomia matkustuksia asiakas- ja palvelinpuolien välillä. Näin voit parantaa sovelluksesi suorituskykyä.
Seuraavassa koodiesimerkissä kysytään komponentilta tietoa, joka, esimerkkimme tarkoitusten vuoksi, on jo mukana tapahtumakuormituksessa, mikä edustaa tehottomaa koodia:
myComponent.addEventListener(e -> {
// Pääsy dataan komponentista
String componentText = e.getComponent().getText();
//TAI jos komponentti on käytettävissä funktion laajuudessa
String componentText = myComponent.getText();
// Käytä componentTextiä muiden toimintojen suorittamiseen.
});
Sen sijaan kuormituksen hyödyntäminen, joka esimerkin vuoksi sisältää komponentin tekstin, välttää matkustuksen:
myComponent.addEventListener(e -> {
// Pääsy dataan tapahtumakuormituksesta
String componentText = e.getText();
// Käytä componentTextiä muiden toimintojen suorittamiseen.
});
Tämä lähestymistapa minimoi tarpeen kysyä komponentilta tietoja, sillä tiedot ovat helposti saatavilla tapahtumakuormituksessa. Noudattamalla tätä tehokasta tapahtumankäsittelykäytäntöä voit parantaa komponenttisi suorituskykyä ja reagointikykyä. Lisätietoja saat Asiakas/Palvelin vuorovaikutus.
Esimerkki
Alla on esitys, joka näyttää ButtonClickEvent
lisäämisen Button
. Tämä Button
käyttää myös tapahtuman kuormituksessa mukana tulevia tietoja näyttääkseen tietoa näytöllä.
Näytä koodi
- Java