这是我们游戏的代码。之前我们把它作为applet查看器,我们尝试转换为jframe,但它一直给我们ClassCastException
错误。请帮助我们从applet转换为jframe。这是代码并告诉我们该怎么做?
import java.awt.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.*;
public class gg extends JFrame implements MouseListener
{
private JButton table[][];
//private boolean bomb[][];
// private boolean flag[][];
private boolean exposed[][];
//private boolean checkwinbool[][];
private int row = 16, col = 30;
private int sizex = 780, sizey = 492;
private Font f ;
private JPanel P;
private JLabel TimeRemaning, NG;
private JButton RestartE, RestartM, RestartH;
private GridLayout gl;
public gg() {
setLayout (new BorderLayout ());
gl = new GridLayout (row, col);
P = new JPanel (gl);
f = new Font ("ComicSans", Font.BOLD, 17);
setFont (f);
TimeRemaning = new JLabel ("");
NG = new JLabel ("New Game");
RestartE = new JButton ("Easy");
table = new JButton [row] [col];
//flag = new boolean [row] [col];
exposed = new boolean [row] [col];
//checkwinbool = new boolean [row] [col];
for (int x = 0 ; x < row ; x++)
{
for (int y = 0 ; y < col ; y++)
{
table [x] [y] = new JButton ();
table [x] [y].addMouseListener (this);
P.add (table [x] [y]);
}
}
//these for loops set up the buttons and sets all the boolean arrays to = false
add (P, "Center");
NG.setBackground(Color.lightGray);
NG.setForeground(Color.black);
Restart_Game (row, col, row, col, sizex, sizey);
}
public void Restart_Game (int row, int col, int prow, int pcol, int sizex, int sizey)
{
setSize (sizex, sizey);
invalidate();
validate();
gl.setRows (row);
gl.setColumns (col);
for (int x = 0 ; x < prow ; x++)
{
for (int y = 0 ; y < pcol ; y++)
{
P.remove (table [x] [y]);
}
}
for (int x = 0 ; x < row ; x++)
{
for (int y = 0 ; y < col ; y++)
{
table [x] [y].setEnabled (true);
table [x] [y].setBackground (Color.gray);
table [x] [y].setForeground (Color.white);
P.add (table [x] [y]);
//flag [x] [y] = false;
exposed [x] [y] = false;
//checkwinbool [x] [y] = false;
}
}
setSize (sizex, sizey);
invalidate();
validate();
}
public void mouseClicked (MouseEvent e)
{
if (e.getSource () == RestartE)
{
row = 10;
col = 10;
sizex = 300;
sizey = 346;
}
}
列出项目
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) {}}
答案 0 :(得分:1)
您无法将一个类转换为另一个需要重新设计程序的类。像这样:
public class GameBoard extends JPanel {
// all your stuff from gg class
}
public class GameFrame extends JFrame {
public GameFrame() {
add(new GameBoard());
}
}
public class GameApplet extends JApplet {
public GameApplet() {
add(new GameBoard());
}
}
答案 1 :(得分:0)
将TextBlock
替换为JApplet
,并在最后一个之前添加主要方法JFrame
。