显示两个Java类

显示两个Java类,java,user-interface,graphics,jframe,Java,User Interface,Graphics,Jframe,所以我对用Java设计图形还不熟悉,我想知道这里是否有人能帮我。我有两个类,我想在JFrame中同时显示这两个类。但只有一个或另一个得到显示 public class Tutorial extends JPanel implements ActionListener { Background bc = new Background(); Timer tm = new Timer(5,this); int x =0, velX = 2; public void paintCompo

所以我对用Java设计图形还不熟悉,我想知道这里是否有人能帮我。我有两个类,我想在JFrame中同时显示这两个类。但只有一个或另一个得到显示

 public class Tutorial extends JPanel implements ActionListener {
  Background bc = new Background();
 Timer tm = new Timer(5,this);
  int x =0, velX = 2;
  public void paintComponent(Graphics g){
    super.paintComponent(g);
    g.setColor(Color.RED);
    g.fillRect(x, 30, 50, 30);
    tm.start();
}

@Override
public void actionPerformed(ActionEvent e) {
    if(x<0 || x>550){
        velX = -velX;
    }
    x = x+ velX;
    repaint();

}


  public static  void main(String [] args){
    Background bc = new Background();
    Tutorial t = new Tutorial();
    JFrame jf = new JFrame();
    jf.setTitle("Tutorial");
    jf.setSize(600,400);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.add(t);
    jf.add(bc);



}
出于某种原因,我只能显示背景或教程?
谁能给我指出正确的方向或告诉我哪里出了问题。我希望能够在一个窗口中显示多个类似于这些类的内容

JFrame的默认布局管理器是一个边界布局

通过使用单参数JFrame.add()函数,可以将这两个组件添加到JFrame的BorderLayout.CENTER部分。这意味着您将只看到其中一个组件

解决方案是使用不同的布局管理器,或者将组件添加到BorderLayout的不同部分

更多信息请点击此处:

 public class Background extends Canvas {

    public void paint(Graphics g){
      g.setColor(Color.GREEN);
      g.fillRect(0,0,600,125);
      g.fillRect(0,250,600,125);
      g.setColor(Color.black);
      g.fillRect(0,125,600,125);

  }