簡単なゲームで Java を学習するという私の探求を続けていると、ちょっとした問題に遭遇しました。私のゲームボードは JPanel とボードの各部分を拡張します。さて、これにはいくつかの問題があります。
各ピースのサイズを設定できないため、各ピース JPanel は JFrame 全体を占有し、残りのピースと背景 (ゲームボード) を隠します。
ピースの位置を設定できません。
デフォルトのフローマネージャーがあります。セットバウンドを試みましたが、運がありませんでした。
おそらく、他の JComponent を拡張するためのピースを作成する必要がありますか? 追加画像: それがピースです。灰色の領域もピースです。mousePressed リスナーを作成し、それにいくつかのものを割り当てることでそれを確認しました。灰色の領域の下には、別の JPanel であるゲームボードがあります (または、少なくともそうあるべきです!)。
代替テキスト http://img42.imageshack.us/img42/2227/screenshotvdy.png
いくつかのコード:
package TheProject;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GameWindow extends JFrame {
public GameWindow() {
setSize(800, 600);
setLocationRelativeTo(null);
Map map = new Map(800, 600, 2);
add(map);
MilitaryUnit imperialRussia = new MilitaryUnit(30, Color.BLACK, Color.YELLOW, Color.WHITE);
imperialRussia.setPreferredSize(new Dimension(30, 30));
add(imperialRussia);
}
}
これは、pack() メソッドを適用すると発生します: alt テキスト http://img442.imageshack.us/img442/5813/screenshot2ml.png
より大きく、JFrame を埋めるマップではなく、ユニットの周りにパックします。