I have a Text class which has the following code:
And a main class that calls a Text object like the following:
The textBox() method works when I call it from a act(0 method inside the Text class, but it won't work when called from the main class.
I dragged the text class onto the world canvas when I run it, and the textBox() method does run (I determined that using the System.out.print line at the end of textBox()) but it doesn't set the image for some reason.
Edit: I realised I used a private font object that's inaccessible to the main class in my post, but it doesn't work when it's another object that's accessible to the main class either.
I have seen other scenarios on this site print an image using a separate class so I know it's possible to make this work, but I am not sure how others do it.
Thanks in advance!
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Text extends Actor
{
//private GreenfootImage box = new GreenfootImage(500, 100);
private GreenfootImage text = new GreenfootImage(100, 100);
private Font test = new Font("Cambria", 24);
public Text(){
setImage(text);
//text.setTransparency(100);
}
public void textBox(String s, Font f, int size){
//text.setTransparency(0);
setLocation(250,250);
text.setFont(f);
text.setColor(Color.CYAN);
text.drawString(s,50,50);
setImage(text);
System.out.print("hello world");
}
}
private Font test = new Font("Cambria", 24);
Text t = new Text();
t.textBox("The quick brown fox jumps over the lazy dog", test, 36);

