java - 如何将 Applet 转换为 JFrame

标签 java swing applet jframe japplet

这是我们的游戏代码。我们之前把它作为小程序查看器,并尝试转换为 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) {}}
    

最佳答案

您无法将一个类转换为另一个类,您需要重新设计程序。像这样的事情:

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());
    }
}

关于java - 如何将 Applet 转换为 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34879034/

相关文章:

java - 简单的 spring boot web 应用程序不起作用,whitelabel 错误页面

java - 了解有效的对象创建

eclipse - 无法安装 JDK-7u3-windows-x64

Java Applet 错误,NullPointerException

java - KeyListener 无法使用 Applet

java - 在小程序上画一个旋转的矩形

java - 您将如何测试静态方法 URLEncoder.encode?

java - 在 JPanel 调整大小上使用 GroupLayout 将 JButtons 保持在 JPanel 中心的最佳方法是什么

java - 我应该在此代码示例中为变量赋予什么修饰符?

java - JCombobox - 仅在值更改时执行 actionlistener