2016-06-19 22 views
1

サイズが1280x800でサイズ変更不可のJframeがあります。もちろん、このサイズは画面の解像度に応じて大きく、小さく表示されます。 (背景画像があります)。今、もし私がこれを試してみると、4kモニタと言うと、それは絶対に実用的ではないでしょう。 JFrameをスケールする方法はありませんか?またはこの問題の解決策ですか?私がやると思ったのは、より大きなjFramesを書いて、どのクラスを解決するかをメインクラスに伝えることです。私はそれが多くの人が出会っただろうと思うので、それを行うよりエレガントな方法があると確信しています! なんて悪夢!私を助けてください!あなただけのJFrameにあなたを最大化したい場合はJFrame高解像度画面のスケーリング

Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize(); 
double jFrameWidth = screenDimension.width * 0.7; 
double jFrameHeight = screenDimension.height * 0.5; 

または: は、あなたがそれは、デバイスの画面サイズを取得し、それに応じてあなたのJFrameのサイズを設定することである達成できる

+0

サイズ変更不可能なコンテナのthis [pitfall](http://stackoverflow.com/a/12532237/230513)も参照してください。 – trashgod

答えて

0

一つの方法をありがとう使用することができます。

jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
+0

はい、あなたが見ていますが、これは正しいサイズのフレームを作りますが、それに何が入っているのかはわかりません。そして、私の背景イメージは決して適切にフィットしません。 –

+0

@MarcoEdoardoPalma JFrameのサイズに合わせてレイアウトするように、JFrameの内容をレイアウトマネージャと固定サイズで書き込む必要があります。 – explv

0

は、あなたが起動しているウィンドウの解像度を検出し、そのウィンドウの割合にフレームを拡大。ベースラインのディメンション(1280 * 800)を持っているので、小さな画面であまりにも潰されることはありません。

例として、ローカルGraphicsEnvironmentをプルすると、それぞれの関連するGraphicsDeviceのデータを自分自身で作成したデータクラスにプルして、バッファ戦略、ウィンドウなどのすべての種類のものを与えるので、寸法などが含まれます。アプリケーションがロードされているときに(SplashScreenを使用)、プロセス全体を制御できます。

これはあなたが得るほどエレガントだと思います。私が取得していますかのアイデアを与えるためにいくつかの例の擬似コードで


EDIT

編集。それは必ずしもコンパイル準備されることはありませんので、私はJavaで主に書くが、私はIDEでこれをやっていないよ:

public void scaleWindowDimensions(JFrame frame, GraphicsDevice gd) { 
    Rectangle bounds = gd.getDefaultConfiguration().getBounds(); 
    int screenX = (int) bounds.getWidth(); 
    int screenY = (int) bounds.getHeight(); 
    // substitute this for however you're setting the size of the JFrame; this is simply how I sometimes do it 
    frame.getContentPane().setPreferredSize(new Dimension(screenX, screenY)); 
} 

これはそれにあなたのJFrameのサイズを設定します非常に簡単な例でありますそれが実行されているモニターのあなたも使用している背景イメージを変更する必要があります。あなたがこれでできることはもっとたくさんありますが、目的を単純にしています。

+0

これは私が探していたものですが、どのように拡大しますか?ありがとうございました! –

+0

'JFrame'がどの画面サイズで最もうまく動作するかを決める必要があります。次に、JFrameのサイズを大きくし、画面サイズを小さくします(最小サイズにならない限り)。同じ方法で背景画像を拡大/縮小できます。 – Gorbles

+0

コーディング・リファレンスをお願いしますか? –