Huis Persoonlijke financiën Hoe je innerlijke klassen maakt in Java - dummies

Hoe je innerlijke klassen maakt in Java - dummies

Video: Section 2 2024

Video: Section 2 2024
Anonim

Dit is groot nieuws! In Java kun je een klas in een andere klas definiëren! Hier bevat de GameFrame -klasse een klasse met de naam MyActionListener .

java importeren. awt. FlowLayout;

java importeren. awt. evenement. ActionEvent;

java importeren. awt. evenement. ActionListener;

java importeren. util. Willekeurig;

javax importeren. schommel. JButton;

javax importeren. schommel. JFrame;

javax importeren. schommel. JLabel;

javax importeren. schommel. JTextField;

class GameFrame breidt JFrame uit {

eigen statische laatste lange serialVersionUID = 1L;

int randomNumber = new Random (). nextInt (10) + 1;

int numGuesses = 0;

JTextField textField = nieuw JTextField (5);

JButton-knop = nieuwe JButton ("Guess");

JLabel-label = nieuwe JLabel (numGuesses + "guesses");

public GameFrame () {

setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

setLayout (nieuwe FlowLayout ());

toe te voegen (textField);

toe te voegen (toets);

toe te voegen (label);

knop. addActionListener (nieuwe MyActionListener () );

pack ();

setVisible (true);

}

klasse MyActionListener implementeert ActionListener {

@Override

public void actionPerformed (ActionEvent e) {

String textFieldText = textField . getText ();

if (Integer. ParseInt (textFieldText) == randomNumber) {

knop. setEnabled (false);

textField. setText (textField. getText () + "Ja!");

textField. setEnabled (false);

} else {

textField. setText ("");

textField. requestFocus ();

}

numGuesses ++;

String guessWord = (numGuesses == 1)? "Guess": "guesses";

label. setText (numGuesses + guessWord);

}

}

}

De MyActionListener -klasse hierboven is een innerlijke klasse. Een innerlijke klasse lijkt veel op elke andere klasse. Maar binnen de code van een innerlijke klasse kun je verwijzen naar de velden van de omsluitende klasse. Diverse statements binnen MyActionListener gebruiken bijvoorbeeld de naam textField en textField is gedefinieerd in de enclassing GameFrame -klasse.

Merk op dat de bovenstaande code slechts één keer de klasse MyActionListener gebruikt. (Het enige gebruik is tijdens een oproep naar knop addActionListener .) Dus, heb je echt een naam nodig voor iets dat maar één keer wordt gebruikt? Nee, dat doe je niet. U kunt de hele definitie van de binnenste klasse vervangen door de knop .addActionListener . Wanneer je dit doet, heb je een anonieme innerlijke klasse. Zo werkt het.

java importeren. awt. FlowLayout;

java importeren. awt. evenement. ActionEvent;

java importeren. awt. evenement. ActionListener;

java importeren. util. Willekeurig;

javax importeren. schommel. JButton;

javax importeren. schommel. JFrame;

javax importeren. schommel. JLabel;

javax importeren. schommel. JTextField;

class GameFrame breidt JFrame uit {

eigen statische laatste lange serialVersionUID = 1L;

int randomNumber = new Random (). nextInt (10) + 1;

int numGuesses = 0;

JTextField textField = nieuw JTextField (5);

JButton-knop = nieuwe JButton ("Guess");

JLabel-label = nieuwe JLabel (numGuesses + "guesses");

public GameFrame () {

setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

setLayout (nieuwe FlowLayout ());

toe te voegen (textField);

toe te voegen (toets);

toe te voegen (label);

knop. addActionListener (nieuwe ActionListener () {

@Override

public void actionPerformed (ActionEvent e) {

String textFieldText = textField. getText ();

if (Geheel getal. parseInt (textFieldText) = = randomNumber) {

knop.setEnabled (false);

textField. setText (textField. getText () + "Yes!");

textField. setEnabled (false);

} else {< textField. SetText ("");

textField. RequestFocus ();

}

numGuesses ++;

String guessWord = (numGuesses == 1)? "Guess": "guesses"; < label. SetText (numGuesses + guessWord);

}

}

);

pack (); setVisible (true);

}

}

Binnenklassen zijn goed voor zaken als gebeurtenishandlers, zoals de

actionPerformed

-methode. Het moeilijkste van een anonieme innerlijke klasse is het bijhouden van de haakjes, de accolades en de insprong. Een bescheiden advies: begin met het schrijven van code zonder innerlijke klassen. Later, wanneer je je verveelt met gewone Java-lessen, experimenteer je door enkele van je gewone lessen in innerlijke klassen te veranderen.

Hoe je innerlijke klassen maakt in Java - dummies

Bewerkers keuze

Gratis Software: autofilling-cellen in OpenOffice. org Calc - dummies

Gratis Software: autofilling-cellen in OpenOffice. org Calc - dummies

OpenOffice. org - een gratis alternatief voor Microsoft Office - bevat Calc, een spreadsheetprogramma vergelijkbaar met Excel. Calc biedt een eenvoudige manier om automatisch een kolom of rij met getallen te maken in elke volgorde die u opgeeft. Deze functie voor automatisch aanvullen is handig voor het maken van genummerde lijsten of het invullen van kolom- en rijkoppen van tabellen, zoals ...

Handige Shortcuts in Prezi's Show Mode - dummies

Handige Shortcuts in Prezi's Show Mode - dummies

Prezi heeft twee verschillende werkingsmodi: Edit Mode, waarin u maak je presentatie en Show Mode, waarin je je creaties presenteert. Gebruik deze handige sneltoetsen in de weergavemodus om uw presentatie nog vlotter te laten verlopen. Gebruik dit als een oefenchecklist voordat je begint: Gebruik deze functie: Om dit te doen: Volledige ...

Te gebruiken hoe het Prezi padhulpmiddel te gebruiken - dummies

Te gebruiken hoe het Prezi padhulpmiddel te gebruiken - dummies

Prezi heeft een padhulpmiddel dat u gebruikt om in te stellen en volg je verhaallijn. In het bijzonder helpt de tool u bij het instellen van padnummers die uw presentatie van element naar element verplaatsen, ongeacht de nabijheid. Op die manier verlies je nooit je plaats. Bovendien kun je met een ingesteld pad je Prezi verzenden als ...

Bewerkers keuze

Tracking van klantbetalingen in QuickBooks 2003 - dummies

Tracking van klantbetalingen in QuickBooks 2003 - dummies

Als uw klanten u niet altijd betalen -front voor hun aankopen, moet u een ander type betaling opnemen - die door klanten worden betaald om te betalen of om te betalen wat u hen hebt gefactureerd. Om de betalingen te registreren, moet u natuurlijk eerst facturen voor de klant registreren. Als u kredietmemo's uitgeeft ...

Liquiditeitsratio's en QuickBooks 2012 - dummies

Liquiditeitsratio's en QuickBooks 2012 - dummies

Liquiditeitsverhoudingen, een van de verschillende soorten verhoudingen die u kunt gebruiken in QuickBooks 2012, meten hoe gemakkelijk en comfortabel een bedrijf zijn directe financiële verplichtingen kan nakomen en onmiddellijke financiële kortetermijnmogelijkheden kan benutten. Als al het andere bijvoorbeeld gelijk is, kan het bedrijf dat op een groot aantal contanten zit gemakkelijker zijn rekeningen betalen ...

Voorraad beheren in een productiebedrijf met QuickBooks 2011 - dummies

Voorraad beheren in een productiebedrijf met QuickBooks 2011 - dummies

Zelfs met QuickBooks, inventaris bijhouden in een productiebedrijf kan moeilijker zijn dan in andere soorten bedrijven. Het probleem komt voort uit enkele lastige boekhoudkundige vereisten. QuickBooks lost het eerste probleem op met betrekking tot productievoorraad; QuickBooks lost het tweede probleem echter niet op. In een productieomgeving combineert de fabrikant onbewerkte ...

Bewerkers keuze

Animeren langs een pad met Flash CS5 Motion Guides en Snapping - dummies

Animeren langs een pad met Flash CS5 Motion Guides en Snapping - dummies

Bewegings-tweens die u maakt in Adobe Flash Creative Suite 5 omvat eenvoudige animaties van de ene locatie naar de andere. Voor sommige Flash CS5-tweens wil je echter dat je symbool een uitgebreider bewegingspad volgt, zoals een raceauto die een nummer volgt. In dergelijke gevallen kunt u uw tween een specifieke ...

Maak een Flash CS5-document - dummies

Maak een Flash CS5-document - dummies

Om aan de slag te gaan met Adobe Flash Creative Suite 5, u wilt een nieuwe maken Flash-document. Gebruik Flash CS5-documenten om afbeeldingen te maken en te typen en in gang te zetten met op tijdlijnen gebaseerde animaties, filmfragmenten en interactieve knoppen. Voeg foto's, geluid en video toe aan uw Flash-document voor een nog rijkere ervaring. Gebruik Flash ...

Een filmclipsymbool maken in Flash CS5 - dummies

Een filmclipsymbool maken in Flash CS5 - dummies

Niet-geanimeerde Adobe Flash Creative Suite 5-afbeeldingen geconverteerd naar Flash CS5-filmclips gedragen zich hetzelfde als grafische symbolen, zodat u instanties op het werk kunt plaatsen, tweenen en wijzigen. Het verschil is echter dat je altijd geanimeerde inhoud later aan de filmclip kunt toevoegen door deze zelf te bewerken en zelf tweens te maken ...