Scala Swing 组件大小调整

Posted

技术标签:

【中文标题】Scala Swing 组件大小调整【英文标题】:Scala Swing component sizing 【发布时间】:2011-04-29 09:31:07 【问题描述】:

Scala 是一门很棒的语言,但遗憾的是缺少库文档。如何更改组件的初始大小?我什么都没有(故意),但无论如何都希望它有一定的尺寸。我目前有

...
contents = new BoxPanel(Orientation.Vertical) 
    contents += new BoxPanel(Orientation.Horizontal) 
        contents += buttons(0)
        contents += buttons(1)
        contents += buttons(2)
    
    contents += new BoxPanel(Orientation.Horizontal) 
        contents += buttons(3)
        contents += buttons(4)
        contents += buttons(5)
    
    contents += new BoxPanel(Orientation.Horizontal) 
        contents += buttons(6)
        contents += buttons(7)
        contents += buttons(8)
    
    border = Swing.EmptyBorder(10, 10, 10, 10);

...

buttonsscala.swing.Buttons 的数组。不幸的是,当应用程序运行时,它们都显示得非常小。我希望它们每个约为 60x60 像素,尽管任何相当大的正方形都足够了。

【问题讨论】:

这更像是一个摇摆不定的问题,但这里有一些指导:java-forums.org/awt-swing/17138-jbutton-size.html 嗯,常规的 Swing 和 Scala 的 scala.swing 包装库之间有很大的不同。 【参考方案1】:

您是否尝试过在按钮上设置首选尺寸?

buttons foreach  _.preferredSize = new Dimension(60, 60) 

【讨论】:

不幸的是,这似乎不起作用。按钮很小。 听起来布局有问题。您可以尝试在构建每个按钮时设置 PreferredSize(例如new Button preferredSize = new Dimension(60, 60)),或者在设置首选尺寸后重新验证外部 BoxPanel。 还是没有运气。我最终回到了我熟悉的 Java Swing 库。我已经和他们一起工作了。

以上是关于Scala Swing 组件大小调整的主要内容,如果未能解决你的问题,请参考以下文章

除非调整窗口大小,否则组件不会显示 - Java

Java Swing:如何更改 Grid 布局中一行的大小并允许它仅水平而不是垂直地动态调整大小?

java - swing - 组件不听边界

Swing 布局 - 在保持组件尺寸的同时使用网格

swing:关于调整 JFrame 大小和条件滚动

调整JScrollPane大小的最佳实践