2011-10-12 70 views
4

我試圖設置一個按鈕的大小爲minimumSize的特定像素大小,但它看起來不起作用。如何在Scala Swing中設置Button的大小?

我甚至試圖繼承它,做它這樣

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

但也不能工作。

+1

嘗試'this.peer.setPreferredSize(新尺寸(width0,height0))'在類體內 – Jamil

+0

正如你所知道的成語是創建匿名的子類,所以創建一個名字不會有幫助。 minimumSize是否執行任何操作都取決於您使用的佈局管理器。 –

回答

7

這很難說出你真正想做什麼,但一般來說,調整大小取決於你使用的佈局管理器。反正下面的修復按鈕如大小:

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 
+0

什麼修正了它?設置所有三個設置或'f.pack'? – soc

+1

該包只是將框架的大小設置爲足夠大以便FlowPanel的首選大小。通過設置最小值,最大值和首選值來確定大小。在這種情況下,您甚至可以不使用maxSize,因爲FlowLayout不會使按鈕大於其首選大小(因爲沒有理由:面板佔用可用空間)。 – 2011-10-12 19:06:03