ホームページ >Java >&#&チュートリアル >Windows Aero で表示テキストを含むサイズ変更不可の JFrame を正しく配置する方法

Windows Aero で表示テキストを含むサイズ変更不可の JFrame を正しく配置する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 05:35:13827ブラウズ

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

サイズ変更不可のウィンドウの境界線と位置

問題

サイズ変更不可の JFrame を作成する場合、setLocation メソッドがウィンドウを適切に考慮していないようです。 Windows Aero が有効な場合は境界線。その結果、境界線が重なり合います。 Aero が無効になっている場合、または setResizable 呼び出しが削除されている場合、動作は期待どおりになります。

原因

この問題は、サイズ変更できないコンテナーの境界を設定するときに発生します。ユーザーのプラットフォーム固有のフォント設定によっては、境界を変更するとテキストが非表示になる場合があります。

解決策

サイズ変更できないコンテナの境界を設定する正しい方法は、すべてのテキストが表示されるようにすることです。ホスト プラットフォームのデフォルトのフォントに関係なく、表示されたままになります。これは、文字列のピクセル幅とコンテナの高さに基づいて境界を調整することで実現できます。

たとえば、次のコードは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。