我正在尝试创建一个程序,像MS Paint一样,我可以在图片或草图(处理中)的任何位置插入文本,并且能够编写任何所需的内容。在代码中编写文本很简单,但我的斗争是在草图中实际编写文本。
这是我的代码:
PFont f;
String textVar = "";
void setup() {
size(200,200);
f = createFont("Arial",16,true);
}
void draw() {
background(255);
textFont(f,16);
fill(0);
text (textVar, mouseX, mouseY);
}
void keyPressed() {
if (key == BACKSPACE) {
if (textVar.length() > 0) {
textVar = textVar.substring(0,textVar.length() - 1);
}
}
else if (textWidth(textVar+key) < width) {
textVar = textVar + key;
}
}
答案 0 :(得分:0)
使用mousePressed()
功能,您可以存储简单文字的位置
void mousePressed() {
X = mouseX;
Y = mouseY;
}
因此,您只需将text()
参数更改为:
text (textVar, X, Y);
如果您想要更多不同的文本框位置,则需要使用集合。为此,请使用以下属性创建class textBox
:positionX,positionY和text,您可以在其中存储所有importatnt信息。然后只需将其添加到集合中:
ArrayList<textBox> boxes = new ArrayList();
然后,您可以在mousePressed
函数中添加计数器以创建textBox
的新对象,并将其添加到boxes
的集合中:
boxes.add( new textBox(mouseX, mouseY, textVar))
在draw()
函数中,您必须绘制所有框:
for (textBox b: boxes) b.printB();
其中printB()
是类textBox的方法,只需在所需位置绘制文本。