如何让enter键在处理新行时启动新字符串?

时间:2017-05-21 10:48:37

标签: processing

我一直在处理编码排版程序,我似乎无法按照我喜欢的方式使用输入键。这是我的代码:

String vtl = "";
float cursor;
int vtly = 20;

void setup(){
  size(800, 200);
  textSize(15);
  stroke(0);
  fill(0);
}
void draw(){
  background(250);
  cursor = textWidth(vtl);
  line(cursor, vtly - 15, cursor, vtly);
  text(vtl, 0, vtly);
}
void keyPressed(){
    if(textWidth(vtl + key) == width){
      vtly = vtly + 25;
    }
    if(key == BACKSPACE){
      if(vtl.length() > 0){
        vtl = vtl.substring(0, vtl.length() - 1);
      }
    }else if(textWidth(vtl + key) < width){
       vtl = vtl + key;
    }

    if(key == ENTER){
      vtly = vtly + 15;
      vtl = "\n";
    }
}

每当按下回车键,就会删除整个第一行。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

看看这一行:

vtl = "\n";

此处您将vtl设置为"\n",这会丢弃vtl的旧值。如果您想在String的末尾添加换行符,则必须将其添加到现有值中:

vtl = vtl + "\n";

可以缩短为:

vtl += "\n";

之后,您在文本的垂直位置方面遇到了其他问题,但这是一个单独的问题。