ホームページ >Java >&#&チュートリアル >Windows Aero で表示テキストを含むサイズ変更不可の JFrame を正しく配置する方法
サイズ変更不可の 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 サイトの他の関連記事を参照してください。