私はJavaスイングでゲームを書いており、実装する必要があるクラスのレイヤーがいくつかあります。
クラスは次のとおりです。
- Main() //ウィンドウをセットアップし、ゲームを作成し、setVisible
- Game() //メインのゲーム キャンバスを描画し、ゲームに関するデータを維持し、各オブジェクトに自分自身を描画するよう指示します
- Board() // 部屋と背景のグラフィックを描画します
- Room() //部屋の中のものを描画し、場所を追跡します
- Items() //場所、色、機能など
- CollectibleItems() //アイテムを拡張する
- Creatures() //アイテムを拡張する
- Items() //場所、色、機能など
- Room() //部屋の中のものを描画し、場所を追跡します
- ControlPanel() //何かをするボタンを入れる
- StatePanel() //ルームのパネルにテキストを入れ、ロックされているかどうか
- Board() // 部屋と背景のグラフィックを描画します
- Game() //メインのゲーム キャンバスを描画し、ゲームに関するデータを維持し、各オブジェクトに自分自身を描画するよう指示します
メインクラス:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class Main extends JFrame {
public static void main (String [] args) {
new Main ();
}
public Main () {
// Window setup
setSize (700, 450);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container content = getContentPane();
content.setLayout(new BorderLayout());
// Put a Game in
Game myGame=new Game ();
myGame.setBorder(new LineBorder(Color.black, 9));
content.add(myGame, BorderLayout.CENTER);
setVisible (true);
}
これは私のゲームクラスです。ここからボードとパネルを追加し、ボードにルームなどを追加したいのですが、クラスをカプセル化して追加し、setVisible にする方法がわかりません。メイン内でそれを行う方法は知っていますが、同様の content.add() タイプのものを使用してゲームに何かを追加する方法はありますか?
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class Game extends JComponent {
public void paintComponent (Graphics g) {
JPanel ControlPanel=new JPanel();
ControlPanel.setLayout(new FlowLayout());
ControlPanel.setBorder(new LineBorder(Color.red, 9));
}
}
TL;DR- さまざまなクラスをカプセル化して表示するにはどうすればよいですか? JavaSwing の初心者...