2017-07-21 9 views
0

私は2Dゲームをコーディングしています。誰かがウィンドウのサイズを変更すると、現在のウィンドウサイズと比較してすべて同じサイズになるようにサイズを変更します。例えば、私はデフォルトのTILEWIDTHを持っていますが、もし誰かがそれを大きくするためにウィンドウのサイズを変更した場合、それは「TILEWIDTH」を大きくするでしょうか?私のランチャークラス(Mainメソッドを持っている)の瞬間には、特定のピクセルの幅と高さを持つ新しいディスプレイを作成するだけです(ウィンドウのサイズを変更すると、ゲームディスプレイの周りに点滅する黒色/灰色の領域が作成されます)。Javaウィンドウ - リサイズ

これは私のDisplayクラス(私はmainメソッドでランチャークラスの新しいディスプレイを作成する)である:あなたが必要となる何

package me.chickenpillow.game.display; 

import java.awt.Canvas; 
import java.awt.Dimension; 

import javax.swing.JFrame; 

public class Display { 

private JFrame frame; 
private Canvas canvas; 

private String title; 
private int width, height; 

public Display(String title, int width, int height) { 
    this.title = title; 
    this.width = width; 
    this.height = height; 

    createDisplay(); 
} 

private void createDisplay() { 
    frame = new JFrame(title); 
    frame.setSize(width, height); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setResizable(true); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 

    canvas = new Canvas(); 
    canvas.setPreferredSize(new Dimension(width, height)); 
    canvas.setMaximumSize(new Dimension(width, height)); 
    canvas.setMinimumSize(new Dimension(width, height)); 
    canvas.setFocusable(false); 

    frame.add(canvas); 
    frame.pack(); 
} 

public Canvas getCanvas() { 
    return canvas; 
} 

public JFrame getFrame() { 
    return frame; 
} 

}

+0

@RosárioPereira Fernandesコードを使って投稿を編集しました –

答えて

0

JFrameをリサイズするリスナーです。リスナーの追加別のスレッドで説明されています。リスナーがトリガされListen to JFrame resize events as the user drags their mouse?

した後、あなたがたJFrameの新しい次元を取得し、あなたの「tileWidthプロパティ」変数をアップ/ダウンスケールして、もう一度あなたのpaint(...)メソッドを呼び出すことができます。

もっとコードを提供すれば、私はより正確な答えを出すことができますが、これはその幸いです。あなたのcreateDisplay()方法の内部

UPDATE

frameを初期化し、セットアップした後、あなたが追加することができます:

frame.addComponentListener(new ComponentAdapter() 
{ 
    public void componentResized(ComponentEvent evt) { 
     Component c = (Component)evt.getSource(); 
     //update your view/canvas 
    } 
}); 

は、この特定のコンポーネントを自分でテストしていないが、これはあなたを持参してください遠くへ

+0

私はコードを編集しました。 –

関連する問題