I’d like to add a textfield named “input”. The description (“input”) should be of font size 5 but inside the text field I’d like to use a font size that fills out most of the text field. In any case, I’d like the font size for inside the text field to be bigger than 5.
This is how I’m coding the text field. How can I adjust the text sizes for the text field description and the text field input independently?
cp5.addTextfield("input")
.setPosition(20, 100)
.setSize(200, 40)
.setFont(createFont("ArialCE.ttf", 5, true))
.setFocus(true)
.setColor(color(255, 0, 0))
;
Did you check the examples and stuff on the website please?
The controlp5 Website?
1 Like
I couldn’t find anything in the documentation but I did find something here: How to change the defauld settings of the label of a textfield using Controlp5 library - Processing 2.x and 3.x Forum
cp5 = new ControlP5(this);
PFont font = createFont("arial",20);
Textfield t = cp5.addTextfield("textValue")
.setPosition(120,170)
.setSize(200,40)
.setFont(font);
Label label = t.getCaptionLabel();
label.setFont(font);
1 Like
Hi @tea_tree
It is possible if you call the right part of the controller
Please find the code below for your case. Hope it helps
import controlP5.*;
ControlP5 cp5;
String textValue = "";
void setup() {
size(700,400);
PFont font = createFont("arial",20);
PFont controlFont = createFont("arial", 5);
cp5 = new ControlP5(this);
cp5.addTextfield("input")
.setPosition(20,100)
.setSize(200,40)
.setFont(font)
.setFocus(true)
.setColor(color(255,0,0))
;
cp5.getController("input").getCaptionLabel().setFont(new ControlFont(controlFont)); //set the font of the caption label.
//you can also use this same method to set the font for the textarea instead of using .setFont() in the definition of the controller object.
//cp5.getController("input").getValueLabel().setFont(new ControlFont(font));
}
void draw() {
background(0);
fill(255);
text(cp5.get(Textfield.class,"input").getText(), 360,130);
text(textValue, 360,180);
}
public void clear() {
cp5.get(Textfield.class,"textValue").clear();
}
void controlEvent(ControlEvent theEvent) {
if(theEvent.isAssignableFrom(Textfield.class)) {
println("controlEvent: accessing a string from controller '"
+theEvent.getName()+"': "
+theEvent.getStringValue()
);
}
}
public void input(String theText) {
// automatically receives results from controller input
println("a textfield event for controller 'input' : "+theText);
}
Best regards
2 Likes