繁体   English   中英

如何从另一个上课

[英]How to call a class from another

我想换一个班。 我有两个类都在扩展JPanels,我想一个消失,另一个出现。

我看过其他问题,但没有一个问题真正适用于我的情况。

我的menuScreen类:

package screens;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class menuScreen extends JPanel implements MouseListener{
  private static final long serialVersionUID = 1L;

  //-------------VARIABLES---------------//
  Image wallpaper = (Image)Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/wallpaper.jpg"));
  Image title_text = (Image)Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/title-text.png"));
  ImageIcon startGameimg = new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/startGame.png")));
  ImageIcon optionsimg = new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/options.png")));
  //JButton start = new JButton(basketball);
  JLabel options = new JLabel(optionsimg);
  JLabel startGame =  new JLabel(startGameimg);
  gameScreen gS = new gameScreen();

  //-------------PAINT FUNCTION----------//
  public void paintComponent(Graphics g){
    g.drawImage(wallpaper,0,0,this);
    g.drawImage(title_text,0,0,this);
    //g.drawImage(basketball1,110,180,this);
  }

  //-------------CONSTRUCTOR-------------//
  public menuScreen(){
    this.setLayout(null);
    this.add(options);
    this.add(startGame);
    startGame.setBounds(110,180,110,110);
    options.setBounds(110,300,110,110);
    startGame.addMouseListener(this);
    options.addMouseListener(this);
  }


  public void mouseClicked(MouseEvent e) {
    if(e.getSource() ==  (startGame)){
        setVisible(false);
    }
    if(e.getSource() == (options)){
        setVisible(false);
    }
  }

  public void mousePressed(MouseEvent e) { }
  public void mouseReleased(MouseEvent e) { }
  public void mouseEntered(MouseEvent e) { }
  public void mouseExited(MouseEvent e) { }
} //END OF CLASS startingScreen 

我想出现的gameScreen类:

package screens;

import javax.swing.*;

public class gameScreen extends JPanel{
  private static final long serialVersionUID = 1L;
}

在gameScreen类中,我还没有放任何东西,因为我不知道怎么称呼它。

基本上,您希望的行为是多余的,没有帮助,因为它们在继承上是相同类型的,并且实现相同的目的。 好吧,不简单。 您不能替换这样的类,您可以做的是将引用/实例化从调用类更改为新的GameScreen类实例,否则从menuscreen类内进行重新绘制以保存您希望GameClass应保持的状态值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM