如何在处理中创建文本框功能?

时间:2013-07-13 20:44:40

标签: java processing

我希望为用户输入大约10个文本框,然后将该值存储为变量。反正是否有一个文本框功能,参数是位置?

2 个答案:

答案 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版本一起使用。

您也可以使用 G4P 库及其 text area 实施。

如果这是您第一次使用外部库,请打开处理并通过从上方栏菜单中的“导入库...”子菜单中选择“添加库...”来添加提供的库。

编辑:我从未尝试过,但 Interfascia (alpha版)也有 text field 类。 The documentation 似乎易于阅读且代码易于使用。