In [ ]:
import java.util.function.Supplier
import java.util.stream.Stream
TableDisplay.setLoadingMode(TableDisplayLoadingMode.ENDLESS)

def generate = Stream.generate(new Supplier<Map<String, Object>>() {
    def random = new Random()
    def index = 0

    @Override
    Map<String, Object> get() {
        return [
            str1: index++,
            str2: random.nextDouble(),
            str3: random.nextFloat()
        ]
    }
    })

new TableDisplay(generate)

In [ ]:
import java.util.function.Supplier
import java.util.stream.Stream
TableDisplay.setLoadingMode(TableDisplayLoadingMode.ENDLESS)

def generate = Stream.generate(new Supplier<Map<String, Object>>() {
    def random = new Random()
    def index = 0

    @Override
    Map<String, Object> get() {
        return [
            str1: index++,
            str2: random.nextDouble(),
            str3: random.nextFloat()
        ]
    }
    })

td4 = new TableDisplay(generate)
td4.setFontColorProvider { row, col, td ->
    row = td.values[row]
    val = row[col]
    if (val % 10 == 0){
        return Color.GREEN
    }
    return Color.BLACK
}

td4