Swing Scala选项卡窗格自定义页面子类
我的Swing Scala选项卡窗格自定义页面子类,swing,scala,subclass,subclassing,Swing,Scala,Subclass,Subclassing,我的页面的自定义子类有问题。下面是一个简短的例子 def main(args: Array[String]): Unit = { val pane = new TabbedPane pane.pages += new LanguagePage("common_yes", new Label) println(pane.pages(0).isInstanceOf[LanguagePage]) } class LanguagePage(languageKey: String, com:
页面
的自定义子类有问题。下面是一个简短的例子
def main(args: Array[String]): Unit = {
val pane = new TabbedPane
pane.pages += new LanguagePage("common_yes", new Label)
println(pane.pages(0).isInstanceOf[LanguagePage])
}
class LanguagePage(languageKey: String, com: Component)
extends Page("", com, null) {
def method() {...}
}
当我运行程序时,将打印
false
。很高兴知道为什么会发生这种情况,以及如何再次访问我添加的页面。在我的例子中,我需要运行一个方法,子类必须根据设置的语言调整标题字符串。如果您查看源代码
class TabbedPane extends Component with Publisher {
object pages extends BufferWrapper[Page] {
def apply(n: Int) =
new Page(TabbedPane.this, peer.getTitleAt(n),
UIElement.cachedWrapper[Component]
(peer.getComponentAt(n).asInstanceOf[javax.swing.JComponent]),
peer.getToolTipTextAt(n))
你总是会得到一个新的实例
看着
class TabbedPane extends Component with Publisher {
object pages extends BufferWrapper[Page] {
def +=(t: Page): this.type = {
t.parent = TabbedPane.this
peer.addTab(t.title, null, t.content.peer, t.tip)
this
}
根本不记录参数t
但是您可以使用
pane.pages(0).title = "Title 2"
因此,您可以单独定义一个逻辑页面(Swing页面之外的一个伴随页面)。使用对窗格和选项卡索引的引用,该类可以更改标题。谢谢!现在,我将选项卡索引映射到生成选项卡标题所需的所有数据。然后我循环浏览地图并设置所有选项卡的标题。