我正在使用JFrame
. 我制作了一个简单的“开始”屏幕,它基本上由 aString
和 a组成JButton
。我正在使用该actionPerformed(ActionEvent e)
方法单击按钮。我不知道如何使用按钮单击来更改卡片。这似乎是一个很容易解决的问题,但随之而来的是扭曲:我的主 JFrame、我的 StartScreen 和我的 JPanel 都在不同的文件中。我的主文件 Virus.java 是我创建JFrame
. 我的文件 VirusGamePanel.java 是游戏发生的地方。我的文件 StartScreen.java 是带有按钮的屏幕。当玩家单击按钮时,我想将“卡片”更改为游戏屏幕。我怎样才能做到这一点?我的 StartScreen.java 文件:
package virus;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.Graphics;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.CardLayout;
public class StartScreen extends JPanel implements ActionListener{
private static final long serialVersionUID = 1L;
JButton start = new JButton("Start");
public StartScreen(){
start.addActionListener(this);
start.setBounds(new Rectangle(400,300,100,30));
this.add(start);
}
public void paint(Graphics g){
super.paint(g);
g.setFont(new Font("Impact",Font.BOLD,72));
g.setColor(Color.MAGENTA);
g.drawString("Virus",275,300);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==start)
{
//what to do here?
}
}
}
我的 Virus.java 文件:
package virus;
import javax.swing.*;
import java.awt.CardLayout;
import virus.StartScreen;
public class Virus extends JFrame{
private static final long serialVersionUID =1L;
JFrame jf = new JFrame("Virus");
static JPanel thegame = new JPanel(new CardLayout());
JPanel game = new VirusGamePanel();
JPanel start = new StartScreen();
public Virus(){
jf.setResizable(false);
jf.setSize(600,600);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
jf.setVisible(true);
jf.add(thegame);
thegame.add(start);
thegame.add(game);
}
public static void main(String[] args) {
new Virus();
}
}