Kaksi syöttökenttää

Entä, jos haluaisimme syöttää tekstiä hiiren avulla kahteen eri syöttökenttään? Tarvitsemme nyt kytkimen, jonka avulla valitaan syöttökenttä. Ohjelman koodi on seuraava. 

// Ohjelman tehnyt e-Oppi Oy
// 3.1.2018
String merkki ="0";
boolean n1 = false;
boolean nappi1 = true;
boolean nappi2 = false;
float luku1 = 0;
float luku2 = 0;

void setup() {
size(600,300); // Ikkunan koko
}

void draw () {
background(255); // Tyhjennä tausta
int x = mouseX;
int y = mouseY;
if (mousePressed == true) {
if ((x > 5) && (x < 45)) {
if ((y > 55) && (x < 95)) { // Valitse 1. kytkin
nappi1 = true;
nappi2 = false;
merkki="0";
}
if ((y > 105) && (x < 145)) { // Valitse 2. kytkin
nappi1 = false;
nappi2 = true;
merkki = "0";
}
}
}
if (nappi1 == true) { // Jos 1. kytkin on valittu
fill(255,0,0);
rect(5,55,40,40,10);
fill(200,200,200);
rect(200,55,300,35);
fill(50,200,200);
rect(5,105,40,40,10);
luku1 = syota_luku();
text(luku1,200,80);
}
if (nappi2 == true) { // Jos 2, kytkin on valittu
fill(50,200,200);
rect(5,55,40,40,10);
fill(255,0,0);
rect(5,105,40,40,10);
fill(200,200,200);
rect(200,105,300,35);
luku2 = syota_luku();
text(luku2,200,130);
}
textSize(20);
fill(0);
text("Anna 1. luku: ",60,80);
text("Anna 2. luku: ",60,130);
text(luku1+" + "+luku2+" = "+(luku1+luku2),60,180);
}

float syota_luku () {
int x = mouseX; // Lue hiiren paikka
int y = mouseY;
fill(50,200,200); // Lisää väri
rect(5,5,40,40,10); // Luodaan painonapit
rect(55,5,40,40,10);
rect(105,5,40,40,10);
rect(155,5,40,40,10);
rect(205,5,40,40,10);
rect(255,5,40,40,10);
rect(305,5,40,40,10);
rect(355,5,40,40,10);
rect(405,5,40,40,10);
rect(455,5,40,40,10);
rect(505,5,40,40,10);
rect(555,5,40,40,10);
textSize(30); // Tekstin koko 30
fill(0); // Tekstin väri musta
text("1",15,40); // Tulosta painonapeille tekstit
text("2",65,40);
text("3",115,40);
text("4",165,40);
text("5",215,40);
text("6",265,40);
text("7",315,40);
text("8",365,40);
text("9",415,40);
text("0",465,40);
text(",",515,40);
text("C",565,40);
if (mousePressed == true) { // Jos hiiren painike pohjassa
if ((y > 5) && (y < 45)) { // Jos pystysuuntainen paikka on välillä 5 < y < 45
if ((x > 5) && (x < 45)) { // Jos vaakasuuntainen paikka on välillä 5 < x < 45
fill(255,0,0); // Väritä punaisella
rect(5,5,40,40,10);
if (n1 == false) { // Jos n1:n arvo false, niin lisää yksi merkki
merkki = merkki+"1";
}
}
if ((x > 55) && (x < 95)) { // Jos vaakasuuntainen paikka on välillä 55 < x < 95
fill(255,0,0);
rect(55,5,40,40,10);
if (n1 == false) {
merkki = merkki+"2";
}
}
if ((x > 105) && (x < 145)) { // Jos vaakasuuntainen paikka on välillä 105 < x < 145
fill(255,0,0);
rect(105,5,40,40,10);
if (n1 == false) {
merkki = merkki+"3";
}
}
if ((x > 155) && (x < 195)) { // Jos vaakasuuntainen paikka on välillä 155 < x < 195
fill(255,0,0);
rect(155,5,40,40,10);
if (n1 == false) {
merkki = merkki+"4";
}
}
if ((x > 205) && (x < 245)) { // Jos vaakasuuntainen paikka on välillä 205 < x < 245
fill(255,0,0);
rect(205,5,40,40,10);
if (n1 == false) {
merkki = merkki+"5";
}
}
if ((x > 255) && (x < 295)) { // Jos vaakasuuntainen paikka on välillä 255 < x < 295
fill(255,0,0);
rect(355,5,40,40,10);
rect(255,5,40,40,10);
if (n1 == false) {
merkki = merkki+"6";
}
}
if ((x > 305) && (x < 345)) { // Jos vaakasuuntainen paikka on välillä 305 < x < 345
fill(255,0,0);
rect(305,5,40,40,10);
if (n1 == false) {
merkki = merkki+"7";
}
}
if ((x > 355) && (x < 395)) { // Jos vaakasuuntainen paikka on välillä 355 < x < 395
fill(255,0,0);
rect(355,5,40,40,10);
if (n1 == false) {
merkki = merkki+"8";
}
}
if ((x > 405) && (x < 445)) { // Jos vaakasuuntainen paikka on välillä 405 < x < 455
fill(255,0,0);
rect(405,5,40,40,10);
if (n1 == false) {
merkki = merkki+"9";
}
}
if ((x > 455) && (x < 495)) { // Jos vaakasuuntainen paikka on välillä 455 < x < 495
fill(255,0,0);
rect(455,5,40,40,10);
if (n1 == false) {
merkki = merkki+"0";
}
}
if ((x > 505) && (x < 545)) { // Jos vaakasuuntainen paikka on välillä 505 < x < 545
fill(255,0,0);
rect(505,5,40,40,10);
if (n1 == false) {
merkki = merkki+".";
}
}
if ((x > 555) && (x < 595)) { // Jos vaakasuuntainen paikka on välillä 555 < x < 595
fill(255,0,0);
rect(555,5,40,40,10);
if (n1 == false) {
merkki = "0";
}
}
n1 = true; // Tämä on nyt true, kunnes vapautat hiiren painikkeen
}
} else {
n1 = false; // Kun vapautat hiiren painikkeen, niin salli merkkien syöttö
}
fill(0); // Oletus tekstin väri on musta
textSize(20); // Oletus tekstin koko on 20
float luku = float(merkki); // Muuta syötetty merkkijono luvuksi
return luku; // Palauta syötetty luku
}


Kun ajat ohjelman, niin oletuksena on ylempi syöttökenttä valittuna. Nyt kun syötät luvun, niin luku tallentuu ensimmäiseen muuttujaan.




Kun seuraavaksi napsautat alempaa kytkintä, niin voit syöttää lukuja toiseen muuttujaan. Ohjelma näyttää syötettyjen lukujen summan reaaliaikaisesti.