1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:03,170 >> HÖGTALARE 1: Låt oss skriva ett program med en grafiskt användargränssnitt samt 3 00:00:03,170 --> 00:00:07,240 ett textfält som gör att användaren kan skriver i någon sträng och tryck Enter, vid 4 00:00:07,240 --> 00:00:09,920 vilken punkt som strängen är förutsatt att mitt program. 5 00:00:09,920 --> 00:00:13,360 Ungefär som GetString i CS50 biblioteket fungerar, men denna gång med en 6 00:00:13,360 --> 00:00:14,880 grafiskt användargränssnitt. 7 00:00:14,880 --> 00:00:16,180 Låt oss komma igång. 8 00:00:16,180 --> 00:00:19,810 >> Jag har redan skrivit några skelettkoden, så låt oss nu fylla i en tom. 9 00:00:19,810 --> 00:00:22,770 GTextField, kalla det området. 10 00:00:22,770 --> 00:00:25,790 Tilldela det returvärdet av newGTextField. 11 00:00:25,790 --> 00:00:28,790 Och anger att jag skulle vilja se 10 tecken från användaren på 12 00:00:28,790 --> 00:00:30,440 skärmen åt gången. 13 00:00:30,440 --> 00:00:35,720 >> Låt oss nästa samtal setActionCommand, passerar i området, som går i säga, 14 00:00:35,720 --> 00:00:39,330 quote unquote "ingång." Med andra ord låt oss förknippar med denna textfält 15 00:00:39,330 --> 00:00:43,620 unik sträng "input". bara i fall min Användargränssnittet har flera text 16 00:00:43,620 --> 00:00:47,260 fält, här strängen unikt identifiera denna. 17 00:00:47,260 --> 00:00:53,000 >> Låt oss nästa samtal addToRegion, som går i fönster, som går i området, som går 18 00:00:53,000 --> 00:00:56,780 i citat unquote "SOUTH," en unik identifierare som definieras i Stanford 19 00:00:56,780 --> 00:00:59,680 Bärbar bibliotek som anger den södra eller botten 20 00:00:59,680 --> 00:01:01,560 regionen i my användargränssnitt. 21 00:01:01,560 --> 00:01:05,230 >> Låt oss nästa framkalla en oändlig loop. 22 00:01:05,230 --> 00:01:07,870 Och inne i denna slinga, låt oss lyssna efter två händelser. 23 00:01:07,870 --> 00:01:09,910 Ett, att användaren stänger fönstret. 24 00:01:09,910 --> 00:01:13,060 Eller två, användaren skriver något in i det textfält. 25 00:01:13,060 --> 00:01:15,600 Låt oss förklara en gActionEvent. 26 00:01:15,600 --> 00:01:16,770 Kalla det evenemanget. 27 00:01:16,770 --> 00:01:19,700 Tilldela den avkastningen värdet av waitForEvent. 28 00:01:19,700 --> 00:01:24,720 Ange att den typ av händelse som vi skulle gillar att lyssna på är en ACTION_EVENT, 29 00:01:24,720 --> 00:01:28,470 där ACTION_EVENT är en konstant förklarade i Stanford Portable 30 00:01:28,470 --> 00:01:31,180 Bibliotek som anger denna typ av händelse. 31 00:01:31,180 --> 00:01:37,600 >> Låt oss nästa kontroll om, getEventType, passerar händelse, lika likar 32 00:01:37,600 --> 00:01:42,110 WINDOW_CLOSED, en annan konstant deklareras i Stanford Portable 33 00:01:42,110 --> 00:01:45,090 Bibliotek som tyder på att fönstret har stängt. 34 00:01:45,090 --> 00:01:48,450 Sedan ska vi helt enkelt bryta ut av detta oändlig slinga. 35 00:01:48,450 --> 00:01:51,600 >> Annars, låt oss nu kontrollera om användare har skrivit något i det 36 00:01:51,600 --> 00:01:52,910 textfält. 37 00:01:52,910 --> 00:02:00,950 Om, sträng jämföra, getActionCommand, passerar händelse, kommatecken citat unquote 38 00:02:00,950 --> 00:02:03,510 "Input" är lika med jämlikar 0. 39 00:02:03,510 --> 00:02:07,340 Med andra ord, om den unika identifierare textfältet in i vilken 40 00:02:07,340 --> 00:02:10,680 användaren har matat in någonting är lika till den unika identifierare som jag 41 00:02:10,680 --> 00:02:13,000 specificerat tidigare, låt oss gör följande. 42 00:02:13,000 --> 00:02:18,970 >> Printf citat unquote "% s inmatade." Och låt oss plug-in för att 43 00:02:18,970 --> 00:02:24,950 % S returvärdet för gettext passerar inom det område, där Gettext är en annan 44 00:02:24,950 --> 00:02:28,350 funktion, definierad i Stanford Bärbar Bibliotek, blir att texten 45 00:02:28,350 --> 00:02:29,430 från ett fält. 46 00:02:29,430 --> 00:02:32,210 >> Låt oss nu spara, kompilera, och köra programmet. 47 00:02:32,210 --> 00:02:33,730 Gör text. 48 00:02:33,730 --> 00:02:35,630 . / Text. 49 00:02:35,630 --> 00:02:38,780 Det är min användargränssnitt, och det finns att textfältet längst ner. 50 00:02:38,780 --> 00:02:42,310 Låt oss skriva något liknande h-e-l-l-o, Enter. 51 00:02:42,310 --> 00:02:45,280 Och där, längst ner i min konsolfönster, faktiskt ser vi 52 00:02:45,280 --> 00:02:46,530 att "hej" var inmatade. 53 00:02:46,530 --> 00:02:48,790