我正在用 Java swing 编写游戏,并且有几层需要实现的类。
以下是课程:
- Main() //设置窗口,制作游戏,并设置可见
- 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);
}
这是我的游戏课。从这里我想添加Board和Panels,我希望Board添加Rooms等。我不知道如何封装类并仍然添加它们和setVisible。我知道如何在 main 中做到这一点,但是有没有办法使用类似的 content.add() 类型的东西向 Game 添加东西?
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 新手...