Siirry pääsisältöön

Events

Avaa ChatGPT:ssä
Java API

Komponentit, olivatpa ne mukautettuja tai osa kehystä, tukevat tapahtumien käsittelyä. Voit lisätä tapahtumakuuntelijoita eri tyyppisten tapahtumien, kuten käyttäjävuorovaikutusten, tilamuutosten tai muiden mukautettujen tapahtumien, sieppaamiseksi. Näitä tapahtumakuuntelijoita voidaan käyttää erityisten toimintojen tai käyttäytymisten käynnistämiseen vastauksena tapahtumiin.

Alla olevassa esimerkissä lisätään tapahtuma jokaisella kolmella tuetulla menetelmällä: lambda-lausekkeilla, nimettömillä luokilla ja menetelmäviittauksilla.

Tapahtumien lisääminen

Tapahtumakuuntelijan lisääminen on mahdollista käyttää yhtä seuraavista malleista, joissa:

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

  • addEventListener korvataan tapahtumasidonnaisella menetelmällä.

  • EventListener korvataan tapahtumatyypillä, jota kuunnellaan.

myComponent.addEventListener(e -> {
// Suoritetaan, kun tapahtuma laukeaa
});

// TAi

myComponent.addEventListener(new ComponentEventListener<EventListener>() {
@Override
public void onComponentEvent(ComponentEvent e){
// Suoritetaan, kun tapahtuma laukeaa
}
});

// TAi

myComponent.addEventListener(this::eventMethod);

Lisäksi on lisätty syntaktisia makeisia tai alias-nimiä, jotka mahdollistavat vaihtoehtoisen tapaamisen tapahtumien lisäämiseksi käyttämällä on-etuliitettä, jota seuraa tapahtuma, kuten:

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

Tapahtuman poistaminen

Kun lisäät tapahtumakuuntelijan, ListenerRegistration-objekti palautuu. Tätä voidaan käyttää, muiden asioiden ohella, tapahtuman poistamiseen myöhemmin.

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

// Tapahtuman poistaminen
listenerRegistration.remove();

Tapahtuman kuormituksen käyttö

On tärkeää huomata, että tapahtumat tulevat usein kuormituksen kanssa, joka sisältää lisätietoja tapahtumasta. Voit käyttää tätä kuormitusta tehokkaasti tapahtumakäsittelijässä pääsyoikeuden saamiseksi asiaankuuluviin tietoon ilman tarpeettomia ylimääräisiä matkoja asiakkaan ja palvelimen välillä. Tällä tavoin voit parantaa sovelluksesi suorituskykyä.

Seuraavassa koodinpätkässä kysytään komponentilta tietoa, joka, meidän demonstraatiomme tarkoituksena, on jo mukana tapahtuman kuormituksessa, mikä edustaa tehotonta koodia:

myComponent.addEventListener(e -> {
// Pääsy komponentin tietoihin
String componentText = e.getComponent().getText();

// TAi jos komponentti on saatavilla funktion alueella
String componentText = myComponent.getText();

// Käytä componentTextiä muiden toimintojen suorittamiseen.
});

Sen sijaan, hyödyntäen metodin kuormitusta, joka esimerkin vuoksi sisältää komponentin tekstin, ylimääräinen matka vältetään:

myComponent.addEventListener(e -> {
// Pääsy tietoon tapahtuman kuormituksesta
String componentText = e.getText();

// Käytä componentTextiä muiden toimintojen suorittamiseen.
});

Tämä lähestymistapa minimoi tarpeen kysyä komponentilta tietoja, koska tiedot ovat heti käytettävissä tapahtuman kuormituksessa. Noudattamalla tätä tehokasta tapahtumakäsittelykäytäntöä voit parantaa komponenttisi suorituskykyä ja reagointikykyä. Lisätietoja varten voit viitata Asiakas/Palvelin Vuorovaikutus.

Esimerkki

Alla on demonstraatio, joka osoittaa ButtonClickEventn lisäämistä Button. Tämä Button käyttää myös tietoa, joka tulee tapahtuman kuormituksesta näyttääkseen tietoja näytöllä.

Näytä koodi