2011-02-18 53 views
1

我有一個帶jButton的jPanel,用戶可以在啓動應用程序時定義jPanel的大小參數,根據jPanel的jButton大小。如何將jButton上的文字字體大小設置爲適合jButton的最大尺寸

問題是當我使用固定的字體和麪板很大,那麼字體看起來很小,反之亦然。

所以字體大小應該始終是適合按鈕的最大字體大小。

+2

當您讓用戶指定JPanel或其他容器的大小時,這似乎是基本問題。這是佈局的目的。如果它對於當前視圖來說太大,請將其放入JScrollPane中。 – 2011-02-18 12:22:02

回答

3

不確定,但您可能會在paintComponent方法內使用Graphics.getFontMetrics()方法找到大小?也許你可以使用FontMetrics.getStringBounds()方法並測試按鈕是否包含矩形(RectangularShape.contains())。

您可以使用二進制搜索算法來查找最大字體。

確保你考慮到了插入。

1

而不是搞亂不同的字體大小。我會建議玩佈局,並保持按鈕面板的大小不斷增長。允許額外空間被面板中的其他組件佔用。

+0

我的應用程序是一個只包含按鈕的4x4 GridBagLayout。這是一種用於觸摸屏的數字鍵盤。所以當面板尺寸較大時,所有的按鈕都應該放大,包括按鈕上的文字。這只是一件好事,但它是一個非常好的:-p – 2011-02-19 10:11:45