我正在尝试编写一个迷你文件浏览器,我在其中显示文件列表,并在更改目录时将列表替换为另一个。
我可以显示一个列表:
val myList = List("Paris", "New York", "Tokyo", "Berlin", "Copenhagen")
val myListBuffer = new ListBuffer[String] ()
myListBuffer.appendAll(myList)
val myListView = new ListView(myListBuffer)
...
contents += myListView
为了响应某个事件,我想更改显示的内容。我尝试过的大部分内容都会使列表“不可见”(但仍会响应上下箭头的选择) - 有时候只有在选中元素时才会使元素不可见!
如何更新ListView以反映ListBuffer的新内容?或者有人能指出我的一个例子吗?
感谢。
答案 0 :(得分:6)
这似乎有效:
object LVTest extends SimpleSwingApplication {
def top = new MainFrame {
contents = myListView
size = new Dimension(200, 200)
}
val myListView = new ListView[String]() {
val myListBuffer = ListBuffer("Paris", "New York", "Tokyo", "Berlin", "Copenhagen")
listData = myListBuffer
listenTo(mouse.clicks)
reactions += {
case e: MouseClicked => {
myListBuffer += "Slough"
listData = myListBuffer
}
}
}
}
答案 1 :(得分:2)
致电myListView.listData = myListBuffer
。