Как я могу очистить «текстовое поле» - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь записать текст в текстовое поле, очистить текст и написать новый текст. Я не могу избавиться от старого текста. Новое написано на старом, поэтому я вижу их обоих. Я использую selectfile и пытаюсь показать выбранный файл в текстовом поле, чтобы подтвердить выбор.

class TestView : View("My View") {
    var tf: TextField by singleAssign()

    override val root = BorderPane()

    init {
        with(root) {
            center = form {
                fieldset("Main") {
                    field("File") {
                        vbox {
                            tf = textfield()
                            tf.text("678")
                            tf.clear()
                            tf.text("999")
                        }
                    }
                }
            }
        }
    }
}

Я ожидал увидеть «999» в текстовом поле, но я вижу и 678, и 999 в одном месте.

1 Ответ

0 голосов
/ 22 января 2019

Вы на самом деле вызываете конструктор text() в текстовом поле, поэтому вы в основном создаете два текстовых элемента внутри текстового поля. Я думаю, вы должны сделать шаг назад и прочитать руководство, прежде чем идти дальше :) Вот исправленная версия вашего кода:

class TestView : View("My View") {
    val filename = SimpleStringProperty()

    override val root = borderpane {
        center {
            form {
                fieldset("Main") {
                    field("File") {
                        textfield(filename)
                        button("Browse...").action {
                            val filters = arrayOf(FileChooser.ExtensionFilter("All Files", "*.*"))
                            chooseFile("Choose file...", filters).firstOrNull()?.let {
                                filename.value = it.path
                            }
                        }
                    }
                }
            }
        }
    }
}

Result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...