>> LUIDSPREKER 1: Laten we een programma schrijven met een grafische user interface en
een tekstveld dat de gebruiker mogelijk maakt om Typ een stukje tekst en druk op Enter op
welk punt die string is verstrekt aan mijn programma.
Net als GetString in de CS50 Bibliotheek werkt, maar dit keer met een
grafische gebruikersinterface.
Laten we beginnen.
>> Ik heb al een aantal skelet code geschreven, dus laten we nu in een lege vullen.
GTextField, noemde het veld.
Toe te wijzen de return waarde van newGTextField.
En specificeren dat ik graag zou willen zien 10 karakters van de gebruiker op
het scherm tegelijk.
>> Laten we het volgende gesprek setActionCommand, passeren in het veld, passeren in laten we zeggen,
citaat unquote "input." Met andere woorden, laten we associëren met dit tekstveld
unieke string "invoeren." voor het geval mijn gebruikersinterface heeft meerdere tekst
velden, deze string zal een unieke identificeren deze.
>> Laten we het volgende gesprek addToRegion, passeren in venster, passeren in het veld, langs
in citaat unquote "ZUIDEN," een unieke identifier gedefinieerd in de Stanford
Portable Library die aangeeft de zuidelijke of onderkant
gebied van mijn gebruikersinterface.
>> Laten we naast een oneindige lus veroorzaken.
En de binnenkant van deze lus, laten we luisteren naar twee gebeurtenissen.
Een, de gebruiker sluiten van het venster.
Of twee, de gebruiker typt iets in die tekstveld.
Laten we verklaren een gActionEvent.
Noemde het evenement.
Toe te wijzen de terugkeer waarde van waitForEvent.
Preciseren dat het type gebeurtenis we zouden graag voor om te luisteren is een ACTION_EVENT,
waar ACTION_EVENT is een constante in de Stanford Portable verklaard
Bibliotheek die specificeert dat type evenement.
>> Laten we volgende controle indien, getEventType, passeren in geval gelijk gelijken
WINDOW_CLOSED, een andere constante verklaard in de Stanford Portable
Bibliotheek die aangeeft dat het venster gesloten.
Laten we dan gewoon breken van deze oneindige lus.
>> Anders laten we nu controleren of de gebruiker heeft iets in die getypt
tekstveld.
Indien, string vergelijker, getActionCommand, passeren in geval komma citaat unquote
"Input" is gelijk aan gelijk is aan 0.
Met andere woorden, als de unieke identificator het tekstveld waarin
de gebruiker heeft getypt iets gelijk is om dat unieke identificatie die ik
gespecificeerd eerder, laten we het volgende doen.
>> Printf citaat unquote "% s werd ingevoerd." En laten we plug-in voor die
% S de return waarde van getText passerende in het veld, waar getText een andere
functie, gedefinieerd in de Stanford Draagbare Bibliotheek, dat de tekst wordt
uit een veld.
>> Laten we nu nog redden, compileren, en uitvoeren van deze programma.
Maken tekst.
. / Tekst.
Daar is mijn user interface, en er is dat tekstveld onderaan.
Laten we iets typt h-e-l-l-o, Enter.
En daar onderaan mijn console venster, inderdaad zien we
dat "hello" werd ingevoerd.