Unicode 如何在处理过程中使用keyPressed()捕捉变音符号?

Unicode 如何在处理过程中使用keyPressed()捕捉变音符号?,unicode,processing,keypress,Unicode,Processing,Keypress,我试图在处理过程中模仿打字机,类似于 因为我主要用葡萄牙语写作,所以我需要变音符号,在打字机中,变音符号是作为非前进键实现的(它打印重音,然后在它下面打印下一个键,例如“pépão pátria”) 当我简单地使用下一行打印键值和代码时,当我输入~时,即使重复输入,我也什么也得不到,而当我输入~+a时,我只得到a: void keyPressed() println("key: " + String.valueOf(key) + " value: " + int(key) + "

我试图在处理过程中模仿打字机,类似于

因为我主要用葡萄牙语写作,所以我需要变音符号,在打字机中,变音符号是作为非前进键实现的(它打印重音,然后在它下面打印下一个键,例如“pépão pátria”)

当我简单地使用下一行打印键值和代码时,当我输入
~
时,即使重复输入,我也什么也得不到,而当我输入
~
+
a
时,我只得到
a

void keyPressed()   
    println("key: " + String.valueOf(key) + " value: " + int(key) + " code: " + keyCode);  
}
因此,问题是:

如何在拉丁布局键盘(法语、西班牙语、葡萄牙语)中捕捉变音重音击键,以及如何使用这些按键合成unicode重音字符


如果键盘设置为正确的语言且字体支持这些字符,则应该可以使用这些字符

以下是基于您提供的链接的示例:

String text1 = " ";
PFont font;
int bfill = 150;
boolean randomizer = false;

void setup() {
  size(400, 400);
  smooth();
  font = createFont("Arial",48);//loadFont("Arial-Black-48.vlw");
  textFont(font, 20);
}

void draw() {

  background(bfill);
  fill(255);
  text(text1, 0, 40, width, height);
  if(randomizer) {
    for(int j = 0; j < 400; j++) {
      text1 += char(int(random(18, 126)));
    }
    text(text1, 0, 40, width, height);
    text1 = " ";
  }

}

void keyPressed() {
  if (key == BACKSPACE) {
    if(text1.length() > 0) {
      text1 = text1.substring(0, text1.length() - 1);
    }
  }
  else if (key == '1') {
    randomizer = true;
  }
  else {
    text1 += key;
    if(key == 'ă') println("got ă");
  }
}

你输入的字符的unicode值是多少?@KevinWorkman,我不知道怎么写,但对于“ã”,我认为是U+00E3
got ă