how to have JLabel update it's text value in another thread using Kotlin. (in Configurable::createComponent)
I have a Configurable class in which my createComponent() method looks somewhat like this:
override fun createComponent(): JComponent = com.intellij.ui.layout.panel {
row("DB info") {
cell {
browserLink("H2", "https://www.h2database.com")
val versionLabel = JLabel()
kotlin.run {
val driver = org.h2.Driver.load()
versionLabel.text = driver.majorVersion
versionLabel.updateUI() // <--- I've tried with and without this line
}
}
}
}
When I run the project I can see the link but the version number never appears. The process is running though as I can put a breakpoint on it and can see that the H2 db driver is loaded and returns a version number.
Please sign in to leave a comment.
I've actually got this working now with the following:
So the only question that I have now is whether or not I should be using JLabel or JBLabel for my UI and should I have wrapped that up in ApplicationManager.getApplication().invokeLater {}?