2016-04-17 14 views
0

Ich habe mein Programm hier, wo Sie sehen können, habe ich eine Zeichenfolge namens "S", und eine void Get Temperature. Im unteren Bereich, in dem Tastatureingaben verarbeitet werden, gibt es eine andere If-Anweisung mit ENTER. Ich möchte es so, dass wenn Sie die Eingabetaste drücken, aktualisiert die Zeichenfolge (n) zu was auch immer Sie eingegeben haben, und laden Sie es dann in das Feld "SetAddress". Wie würde ich darüber gehen?Wie make keyCode == ENTER eine Zeichenfolge aktualisieren?

import com.temboo.core.*; 
import com.temboo.Library.Yahoo.Weather.*; 
import ddf.minim.*; 
AudioPlayer player; 
Minim minim; 
PImage bg; 
String myText; 
PFont Bold; 
PFont Thin; 
TembooSession session = new TembooSession("goldsmiths-c", "myFirstApp", "CNgLbwqnqzGdsnk6wHXPfAnQNSmV0Fmr"); 
String s = "Enter Location"; 
int prev = frameCount; 
//KeyPressed KeyPressed = new KeyPressed(); 

void setup() { 
    size(960, 540); 
    bg = loadImage("mountains.jpg"); 
    minim = new Minim(this); 
    player = minim.loadFile("song.mp3"); 
    player.play(); 
    player.loop(); 
    runGetTemperatureChoreo(); 
    Bold = createFont ("TTFirsBlackItalic.otf", height); 
    Thin = createFont ("TTFirsThin.otf", height); 
    frameRate (30); 
} 

void draw() { 
    background(bg); 
    fill (0); 
    textFont (Bold); 
    textSize (48); 
    fill(255, 255, 255); 
    text(myText, 10, 390); 
    fill(255, 255, 255); 
    textFont (Thin); 
    textSize (48); 
    text(s, 10, 500); 
    print(mouseY); 
} 

void runGetTemperatureChoreo() { 

    GetTemperature getTemperatureChoreo = new GetTemperature(session); 

    getTemperatureChoreo.setAddress(s); 
    getTemperatureChoreo.setUnits("c"); 

    GetTemperatureResultSet getTemperatureResults = getTemperatureChoreo.run(); 
    myText = (s) + (getTemperatureResults.getTemperature() + ("°c")); 
    print(getTemperatureResults.getTemperature()); 
} 
void keyPressed() 
{ 
    if (keyPressed && prev <= frameCount-10) { //If a key is being pressed, and the security/delay is fine with it 
    prev = frameCount; //re-Init the clock 
    if (keyCode == BACKSPACE) { //Delete a char! 
     if (s.length() > 0) { 
     s = s.substring(0, s.length()-1); 
     } 
    } else if (keyCode == DELETE) { 
     s = ""; 
    } else if (keyCode == ENTER && s.length() != 0) { 
    } else if (keyCode != SHIFT && keyCode != CONTROL && keyCode != ALT && s.length() < 20) { //It's an ok char, add it to the String 
     s += key; 
    } 
    } 
} 

Antwort

0

Nun, es sieht aus wie Sie zu speichern, was der Benutzer in dem s Variable. Sie haben dann diesen Teil Ihrer if-Anweisung:

else if (keyCode == ENTER && s.length() != 0) { 
} 

Die else if wird eingegeben werden, wenn der Benutzer drückt nach etwas eingeben eingeben. So müssen Sie nur, was Code, den Sie im Inneren des Körpers dieser Aussage wollen setzen:

else if (keyCode == ENTER && s.length() != 0) { 
    getTemperatureChoreo.setAddress(s); 
} 

Ich könnte nicht voll werden, um Ihren Code zu verstehen, so ist dies nur ein Beispiel. Aber die Grundidee ist die gleiche: Um etwas zu tun, wenn der Benutzer die Eingabetaste drückt, geben Sie einfach den Code ein, der in diesem else if Block passieren soll.

Bitte versuchen Sie in Zukunft einen MCVE anstatt Ihrer gesamten Skizze zu posten. Zum Beispiel hat deine Frage nichts mit Minim zu tun, so dass du den ganzen Code loswerden kannst. Beginne mit einer leeren Skizze und füge nur so viel Code hinzu, dass wir sie kopieren und einfügen können, um zu sehen, wo du feststeckst. Viel Glück.

Verwandte Themen