Siirry pääsisältöön

Events

Avaa ChatGPT:ssä
Java API

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:

  • myComponent on komponentti, johon haluat liittää tapahtumakuuntelijan.

  • addEventListener korvataan tapahtumakohtaisella metodilla.

  • EventListener korvataan 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