【问题标题】:How to set the size of a Button in Scala Swing?如何在 Scala Swing 中设置按钮的大小?
【发布时间】:2011-12-06 01:49:49
【问题描述】:

我正在尝试使用minimumSize 将按钮的大小设置为特定大小的像素,但它看起来不起作用。

我什至尝试将它子类​​化并这样做

class SizedButton(text0: String, width0: Int, height0: Int) 
                                      extends Button(text0) {
  minimumSize = new Dimension(width0, height0)
  // also tried preferredSize here ...
}

但这也没有用。

【问题讨论】:

  • 在类正文中尝试this.peer.setPreferredSize(new Dimension(width0,height0) )
  • 正如你所知道的习惯用法是创建匿名子类,所以创建一个命名的子类将无济于事。 minimumSize 是否执行任何操作取决于您使用的布局管理器。

标签: swing user-interface scala button resize


【解决方案1】:

很难说出您真正想要做什么,但通常大小取决于您使用的布局管理器。无论如何,以下修复了按钮的大小,例如:

import swing._
import java.awt.Dimension

val s = new Dimension(100, 100)
val f = new Frame {
  contents = new FlowPanel { 
    contents += new Button("huhu") { 
      minimumSize = s
      maximumSize = s
      preferredSize = s
    }
  }
}

f.pack
f.visible = true

【讨论】:

  • 究竟是什么解决了这个问题?设置所有三个设置或f.pack?
  • 该包仅调整框架的大小,使其足以容纳 FlowPanel 的首选大小。大小固定是通过设置最小值、最大值和首选来完成的。在这个确切的场景中,您甚至可以不使用 maxSize,因为 FlowLayout 不会使按钮大于其首选大小(因为没有理由:面板占用了可用空间)。
猜你喜欢
  • 1970-01-01
  • 2020-04-07
  • 2011-02-01
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 2011-10-11
相关资源
最近更新 更多