Siirry pääsisältöön

Events

Avaa ChatGPT:ssä
Java API

Komponentit, olivatpa ne mukautettuja tai osia keh Frameworkista, tukevat tapahtumankäsittelyä. Voit lisätä tapahtumakuuntelijoita eri tyyppisten tapahtumien, kuten käyttäjävuorovaikutusten, tilamuutosten tai muiden mukautettujen tapahtumien, tallentamiseksi. Näitä tapahtumakuuntelijoita voidaan käyttää erityisten toimintojen tai käyttäytymisten laukaisemiseen tapahtumien yhteydessä.

Alla olevassa esimerkissä tapahtuma lisätään kolmen tuetun menetelmän avulla: lambda-lauseet, 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 tapahtumaspecific-grahamella.

  • EventListener korvataan tapahtuman tyypillä, jota kuunnellaan.

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äksi on lisätty synnynnäisiä sokerimenetelmiä tai alias-nimiä, jotka mahdollistavat tapahtumien vaihtoehtoisen lisäämisen käyttämällä on-etuliitettä, jota seuraa tapahtuma, kuten:

myComponent.onEvent(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});

Tapahtuman poistaminen

Kun tapahtumakuuntelija lisätään, ListenerRegistration-objekti palautetaan. Sitä voidaan käyttää muun muassa tapahtuman poistamiseen myöhemmin.

//Tapahtuman lisääminen
ListenerRegistration listenerRegistration = myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});

//Tapahtuman poistaminen
listenerRegistration.remove();

Tapahtumakuorman käyttäminen

On tärkeää huomata, että tapahtumat usein tulevat kuormituksen kanssa, joka sisältää lisätietoja, jotka liittyvät tapahtumaan. Voit hyödyntää tätä kuormaa tehokkaasti tapahtumankäsittelijässä saadaksesi käyttökelpoiset tiedot ilman tarpeettomia pyynnön toimittamista asiakkaan ja palvelimen välillä. Näin parannat sovelluksesi suorituskykyä.

Seuraava koodinpätkä kysyy komponentilta tietoja, jotka, tämän demonstroinnin tarkoituksia varten, on jo sisällytetty tapahtuman kuormaan, ja se edustaa tehotonta koodia:

myComponent.addEventListener(e -> {
// Joka saa tietoja 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 voit käyttää metodin kuormaa, jonka esimerkki sisältää komponentin tekstin, jolloin kierrosavoimaa vältetään:

myComponent.addEventListener(e -> {
// Joka saa tietoja tapahtumakuormasta
String componentText = e.getText();

// Käytä componentTextiä suorittaaksesi muita toimintoja.
});

Tämä lähestymistapa minimoi tarpeen kysyä komponentilta tietoja, koska tiedot ovat helposti saatavilla tapahtuman kuormassa. Noudattamalla tätä tehokasta tapahtumankäsittelykäytäntöä voit parantaa komponenttisi suorituskykyä ja reagointikykyä. Lisätietoja löytyy Asiakas/PALVELINSUHTEET.

Esimerkki

Alla on esittely, joka osoittaa ButtonClickEvent lisäämisen Button komponenttiin. Tämä Button käyttää myös tapahtuman kuorman mukana tulevaa tietoa näyttääkseen tietoja näytöllä.

Näytä koodi