1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:03,170 >> SPEAKER 1: La oss skrive et program med en grafisk brukergrensesnitt samt 3 00:00:03,170 --> 00:00:07,240 et tekstfelt som lar brukeren skriver i noen streng og trykk Enter, på 4 00:00:07,240 --> 00:00:09,920 som peker på at strengen er gitt mitt program. 5 00:00:09,920 --> 00:00:13,360 Mye som GetString i CS50 Library fungerer, men denne gangen med en 6 00:00:13,360 --> 00:00:14,880 grafisk brukergrensesnitt. 7 00:00:14,880 --> 00:00:16,180 La oss komme i gang. 8 00:00:16,180 --> 00:00:19,810 >> Jeg har allerede skrevet noen skjelett kode, så la oss nå fylle ut en tomt. 9 00:00:19,810 --> 00:00:22,770 GTextField, kaller det feltet. 10 00:00:22,770 --> 00:00:25,790 Tilordne den returverdien av newGTextField. 11 00:00:25,790 --> 00:00:28,790 Og spesifisere at jeg ønsker å se 10 tegn fra brukeren på 12 00:00:28,790 --> 00:00:30,440 skjermen på en gang. 13 00:00:30,440 --> 00:00:35,720 >> La oss neste samtale setActionCommand, passerer i feltet, passerer i si, 14 00:00:35,720 --> 00:00:39,330 quote unquote "input". Med andre ord, la oss forbinder med dette tekstfeltet 15 00:00:39,330 --> 00:00:43,620 unik streng "input". bare i tilfelle min Brukergrensesnittet har flere tekst 16 00:00:43,620 --> 00:00:47,260 felt, denne strengen vil unikt identifisere denne. 17 00:00:47,260 --> 00:00:53,000 >> La oss neste samtale addToRegion, passerer i vindu, passerer i feltet, passerer 18 00:00:53,000 --> 00:00:56,780 i quote unquote "SOUTH," en unik identifikator definert i Stanford 19 00:00:56,780 --> 00:00:59,680 Portable Library som spesifiserer den sørlige eller bunnen 20 00:00:59,680 --> 00:01:01,560 region min brukergrensesnitt. 21 00:01:01,560 --> 00:01:05,230 >> La oss neste indusere en uendelig løkke. 22 00:01:05,230 --> 00:01:07,870 Og inne i denne sløyfen, la oss lytte etter to hendelser. 23 00:01:07,870 --> 00:01:09,910 One, brukeren lukker vinduet. 24 00:01:09,910 --> 00:01:13,060 Eller to, brukeren skriver noe inn i dette tekstfeltet. 25 00:01:13,060 --> 00:01:15,600 La oss erklære en gActionEvent. 26 00:01:15,600 --> 00:01:16,770 Kaller det event. 27 00:01:16,770 --> 00:01:19,700 Tilordne den avkastningen Verdien av waitForEvent. 28 00:01:19,700 --> 00:01:24,720 Spesifisere at type arrangement vi hadde liker å lytte etter er en ACTION_EVENT, 29 00:01:24,720 --> 00:01:28,470 hvor ACTION_EVENT er en konstant erklærte i Stanford Portable 30 00:01:28,470 --> 00:01:31,180 Bibliotek som spesifiserer at type arrangement. 31 00:01:31,180 --> 00:01:37,600 >> La oss neste sjekk om, getEventType, passerer i hendelsen, tilsvarer likemenn 32 00:01:37,600 --> 00:01:42,110 WINDOW_CLOSED, en annen konstant erklærte i Stanford Portable 33 00:01:42,110 --> 00:01:45,090 Bibliotek som indikerer at vinduet er lukket. 34 00:01:45,090 --> 00:01:48,450 Så la oss rett og slett bryte ut av denne uendelig loop. 35 00:01:48,450 --> 00:01:51,600 >> Ellers, la oss nå sjekke om brukeren har skrevet noe i det 36 00:01:51,600 --> 00:01:52,910 tekstfeltet. 37 00:01:52,910 --> 00:02:00,950 Hvis, streng sammenligne, getActionCommand, passerer i hendelsen, komma quote unquote 38 00:02:00,950 --> 00:02:03,510 "Input" er lik lik 0. 39 00:02:03,510 --> 00:02:07,340 Med andre ord, dersom den unike identifikatoren tekstfeltet der 40 00:02:07,340 --> 00:02:10,680 brukeren har skrevet noe er lik til at unik identifikator som jeg 41 00:02:10,680 --> 00:02:13,000 spesifisert tidligere, la oss gjør følgende. 42 00:02:13,000 --> 00:02:18,970 >> Printf quote unquote "% s ble lagt inn." Og la oss plug-in for at 43 00:02:18,970 --> 00:02:24,950 % S returverdien av gettext bestått i feltet, hvor GetText er en annen 44 00:02:24,950 --> 00:02:28,350 funksjon, definert i Stanford Portable Library, som får teksten 45 00:02:28,350 --> 00:02:29,430 fra et felt. 46 00:02:29,430 --> 00:02:32,210 >> La oss nå lagre, sammenstille, og kjøre dette programmet. 47 00:02:32,210 --> 00:02:33,730 Gjør teksten. 48 00:02:33,730 --> 00:02:35,630 . / Tekst. 49 00:02:35,630 --> 00:02:38,780 Det er min brukergrensesnittet, og det er at tekstfeltet nederst. 50 00:02:38,780 --> 00:02:42,310 La oss skrive noe sånt h-e-l-l-o, Enter. 51 00:02:42,310 --> 00:02:45,280 Og der, på bunnen av min konsollen vinduet, faktisk ser vi 52 00:02:45,280 --> 00:02:46,530 at "hei" ble lagt inn. 53 00:02:46,530 --> 00:02:48,790