Events
Komponentit, olivatpa ne mukautettuja tai osana kehystä, tukevat tapahtumien käsittelyä. Voit lisätä tapahtumakuuntelijoita kaapataksesi erilaisia tapahtumia, kuten käyttäjäinteraktioita, tilan muutoksia tai muita mukautettuja tapahtumia. Näitä tapahtumakuuntelijoita voidaan käyttää erityisten toimintojen tai käyttäytymisten käynnistämiseen vastauksena tapahtumiin.
Alla olevassa esimerkissä tapahtuma lisätään käyttämällä jokaista kolmea tuettua menetelmää: lambda-ilmaisut, anonyymit luokat ja metodiviittaukset.
Tapahtumien lisääminen
Tapahtumakuuntelijan lisääminen on mahdollista käyttää yhtä seuraavista malleista, joissa:
-
myComponenton komponentti, johon haluat liittää tapahtumakuuntelijan. -
addEventListenerkorvataan tapahtumakohtaisella metodilla. -
EventListenerkorvataan kuunneltavan tapahtuman tyypillä.
myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});
//TAI
myComponent.addEventListener(new ComponentEventListener<EventListener>() {
@Override
public void onComponentEvent(ComponentEvent e){
//Suoritetaan, kun tapahtuma laukaisee
}
});
//TAI
myComponent.addEventListener(this::eventMethod);
Lisäsyntaktiset sokerimenetelmät tai aliasit on lisätty mahdollistamaan vaihtoehtoinen tapahtumien lisääminen käyttämällä on-etuliitettä seurattuna tapahtumalla, kuten:
myComponent.onEvent(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});
Tapahtuman poistaminen
Kun lisätään tapahtumakuuntelija, palautetaan ListenerRegistration-olio. Tätä voidaan käyttää muun muassa tapahtuman poistamiseen myöhemmin.
//Lisätään tapahtuma
ListenerRegistration listenerRegistration = myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});
//Poistetaan tapahtuma
listenerRegistration.remove();
Tapahtuman kuormituksen käyttäminen
On tärkeää huomata, että tapahtumat tulevat usein kuormituksen kanssa, joka sisältää lisätietoja tapahtumasta. Voit hyödyntää tätä kuormitusta tehokkaasti tapahtumankäsittelijässä päästäksesi käsiksi olennaisiin tietoihin ilman turhaa liikennettä asiakkaan ja palvelimen välillä. Näin voit parantaa sovelluksesi suorituskykyä.
Seuraava koodinpätkä kysyy komponentilta tietoja, jotka esimerkin tarkoituksia varten on jo sisällytetty tapahtuman kuormitukseen, edustaen tehotonta koodia:
myComponent.addEventListener(e -> {
// Pääsy tietoihin komponentista
String componentText = e.getComponent().getText();
//TAI jos komponentti on käytettävissä funktion laajuudessa
String componentText = myComponent.getText();
// Käytä componentTextiä suorittaaksesi muita toimintoja.
});
Sen sijaan hyödyntäen metodin kuormitusta, joka esimerkin vuoksi sisältää komponentin tekstin, vältetään ylimääräinen kysely:
myComponent.addEventListener(e -> {
// Pääsy tietoihin tapahtuman kuormituksesta
String componentText = e.getText();
// Käytä componentTextiä suorittaaksesi muita toimintoja.
});
Tämä lähestymistapa minimoi tarpeen kysyä komponentilta tietoja, sillä tiedot ovat heti saatavilla tapahtuman kuormituksessa. Noudattamalla tätä tehokasta tapahtumien käsittelykäytäntöä voit parantaa komponenttiesi suorituskykyä ja reagointikykyä. Lisätietoja varten voit viitata Asiakas/Palvelin vuorovaikutukseen.
Esimerkki
Alla on esittely, joka näyttää ButtonClickEventin lisäämisen Button. Tämä Button käyttää myös tapahtuman kuormituksessa tulevia tietoja näyttääkseen tietoa näytöllä.
Näytä koodi
- ButtonEventView.java