我正在用Java编写游戏,并且需要实现几层类。
以下是课程:
主要课程:
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的新手......
答案 0 :(得分:3)
首先......不要这样做!! EVER !!
public void paintComponent (Graphics g) {
JPanel ControlPanel=new JPanel();
ControlPanel.setLayout(new FlowLayout());
ControlPanel.setBorder(new LineBorder(Color.red, 9));
}
你也必须打电话给super.paintComponent
,除非你真的有充分的理由不这样做。这些方法做了很多重要的背景工作。
永远不要在任何paintXxx
方法的上下文中修改任何组件。这会让你进入一个无限循环,并最终耗尽你所有的CPU。
我首先要阅读