Hallo,
in meiner ListView werden beim Scrollen die vorhandenen Einträge wiederholt anstatt die nächsten anzuzeigen.
MainView.kt
data/Font.kt
Sprache Kotlin
Modul TornadoFX
Kann mir bitte jemand erklären, wie ich die ListView / Liste richtig verwenden muss?
in meiner ListView werden beim Scrollen die vorhandenen Einträge wiederholt anstatt die nächsten anzuzeigen.
MainView.kt
Code:
package app.view
import data.Fonts
import javafx.collections.FXCollections.observableArrayList
import javafx.scene.text.Font
import tornadofx.*
import java.io.File
class MainView : View("FontPerview") {
val fonts: List<String>
init {
fonts = Fonts("""C:\Users\Daniel\Documents\plotter\#fonts""").getList()
}
override val root = listview(fonts.observable()) {
cellFormat {
graphic = cache {
form{
fieldset {
field {
label(File(it).name)
}
label("The quick brown fox jumps over the lazy dog") {
font = Font.loadFont(File(it).inputStream(), 32.0)
}
label("1234567890") {
font = Font.loadFont(File(it).inputStream(), 20.0)
}
}
}
}
}
}
}
data/Font.kt
Code:
package data
import java.io.File
class Fonts(dir:String){
private var lst = mutableListOf<String>()
init {
File(dir).walk().filter {
it.name.toLowerCase().endsWith(".ttf") or it.name.toLowerCase().endsWith(".otf")
}.forEach { lst.add(it.toString()) }
}
fun getList():List<String> = lst
}
Sprache Kotlin
Modul TornadoFX
Kann mir bitte jemand erklären, wie ich die ListView / Liste richtig verwenden muss?