如何将Applet转换为JFrame

时间:2016-01-19 14:13:04

标签: java swing applet jframe japplet

这是我们游戏的代码。之前我们把它作为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;
        }
    }
  1. 列出项目

    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {    }
    public void mouseExited(MouseEvent e) {}}
    

2 个答案:

答案 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