Siirry pääsisältöön

Events

Avaa ChatGPT:ssä
Java API

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