我希望为用户输入大约10个文本框,然后将该值存储为变量。反正是否有一个文本框功能,参数是位置?
答案 0 :(得分:4)
是的,可以使用库controlP5。
import controlP5.*;
ControlP5 cp5;
String[] textfieldNames = {"tf1", "tf2", "tf3", "tf4", "tf5"};
void setup() {
size(700,400);
PFont font = createFont("arial",20);
cp5 = new ControlP5(this);
int y = 20;
int spacing = 60;
for(String name: textfieldNames){
cp5.addTextfield(name)
.setPosition(20,y)
.setSize(100,40)
.setFont(font)
.setFocus(true)
.setColor(color(255,0,0))
;
y += spacing;
}
textFont(font);
}
void draw() {
background(0);
}
void controlEvent(ControlEvent theEvent) {
if(theEvent.isAssignableFrom(Textfield.class)) {
println("controlEvent: accessing a string from controller '"
+theEvent.getName()+"': "
+theEvent.getStringValue()
);
}
}
答案 1 :(得分:3)
如果您是熟练的Java程序员,可以考虑使用主要的Java GUI小部件工具包 Swing Library 。但是,您也会发现自己正在处理Processing核心代码。不要那样做。
使用Java代码[在处理草图中]的主要规则:您不能使用大多数AWT或 Swing(建立在AWT上),因为它会干扰 图形模型。如果你想添加滚动条和按钮 项目,您应该使用处理代码,或嵌入您的 在另一个Swing或AWT应用程序中处理applet。 即使它们似乎有效,这样的草图通常会在你的时候打破 尝试在其他操作系统或其他版本的Java上运行。 - Processing FAQ
如果您不是Java程序员,请坚持使用Processing库或创建自己的文本字段类。
广受欢迎的 ControlP5 GUI库具有 text fields 和 text areas 的内置类。到目前为止,此版本已经过处理2.0b7测试,可能无法与最新的2.0版本一起使用。
如果这是您第一次使用外部库,请打开处理并通过从上方栏菜单中的“导入库...”子菜单中选择“添加库...”来添加提供的库。
编辑:我从未尝试过,但 Interfascia (alpha版)也有 text field 类。 The documentation 似乎易于阅读且代码易于使用。