首頁 > Java > java教程 > 如何在 Windows Aero 中正確定位具有可見文字的不可調整大小的 JFrame?

如何在 Windows Aero 中正確定位具有可見文字的不可調整大小的 JFrame?

Linda Hamilton
發布: 2024-12-09 05:35:13
原創
848 人瀏覽過

How to Correctly Position Non-Resizable JFrames with Visible Text in Windows Aero?

不可調整大小的視窗邊框和定位

問題

創建不可調整大小的JFrame 時,setLocation 方法似乎沒有正確考慮視窗如果啟用了Windows Aero,則為邊框。結果,邊界重疊。如果停用 Aero 或刪除 setResizing 調用,則行為符合預期。

原因

設定不可調整大小的容器的邊界時會出現此問題。根據使用者特定於平台的字體設置,更改邊界可能會導致文字不可見。

解決方案

設定不可調整大小的容器的邊界的正確方法是確保任何文字無論主機平台的預設字體如何,都保持可見。這可以透過根據字串的像素寬度和容器的高度調整邊界來實現。

例如,以下程式碼使用computeStringWidth計算字串的像素寬度並相應地設定幀大小:

JLabel label = new JLabel(s + "3, 1, 4, 1, 5, 9", JLabel.LEFT);

int w = SwingUtilities.computeStringWidth(
    label.getFontMetrics(label.getFont()), s);
int h = f.getHeight();
f.setSize(w, h);
f.setResizable(false);
登入後複製

這可確保無論用戶平台上的字體設定如何,文字都可見的。

以上是如何在 Windows Aero 中正確定位具有可見文字的不可調整大小的 JFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板