如何使 class 扩展 jLabel 以便它在我的主 class 中显示为 JLabel?

How to make a class extending a jLabel so that it appears as a JLabel in my main class?

所以,基本上我在做记忆。我有一个图块 class,此时它只有一个数字和一个布尔值(显示它是否被翻转)。我将所有数字复制为 Tile 对象并将它们随机化,然后将它们添加到我的布局中。

基本上,我需要它们以 JLabel 的形式出现在我的屏幕上,但我不太确定该怎么做?我应该扩展其他东西,还是在我的 Tile class 中做一些特别的事情?还是我其他地方的逻辑有问题?这是我此时的 Tile class(很少)

PS。我还需要为触发器使用定时器

class Tile extends JLabel implements ActionListener{

boolean flipped;
int imageNum;
ImageIcon image;
JLabel card;

Tile(int num, boolean f)
{
    imageNum=num;
    flipped=f;
    card=new JLabel(""+imageNum);
}
public void flipCard()
{

}

public void actionPerformed(ActionEvent a)
{

}

如有任何帮助,我们将不胜感激! 编辑:

这是主要的 class 我尝试添加我的瓷砖的地方

JPanel gridPanel = new JPanel(new GridLayout(gridSize, gridSize));
    Tile[][]tiles=new Tile[(gridSize*gridSize)/2][2];
    boolean[][]tilePlaced=new boolean[(gridSize*gridSize)/2][2];
    JLabel[][] cardsOnGrid = new JLabel[gridSize][gridSize];
    for(int i=0;i<gridSize;i++)
    {
        for(int j=0;j<gridSize;j++)
            cardsOnGrid[i][j]=new JLabel("");
    }
    for(int i=0; i<((gridSize*gridSize)/2);i++)
    {
        tiles[i][0]= new Tile(i, true);
        tiles[i][1]= new Tile(i, true);
        tilePlaced[i][0]=false;
        tilePlaced[i][1]=false;
    }

    for(int i=0; i<gridSize;i++)
    {
        for(int j=0;j<gridSize;j++)
        {
            int tileNum = tileRandom(gridSize);
            int tileNumVer = (int)Math.floor(Math.random()*2);
            while(tilePlaced[tileNum][tileNumVer]==true)
            {
                tileNum = tileRandom(gridSize);
                tileNumVer = (int)Math.floor(Math.random()*2);
            }
            gridPanel.add(tiles[tileNum][tileNumVer]);
            tilePlaced[tileNum][tileNumVer]=true;
        }

:'(

 Tile(int num, boolean f){
    imageNum=num;
    flipped=f;
    card=new JLabel(""+imageNum);//1. Remove this line and card Label
    super.setText(String.valueOf(num));//ADD This line
 }

只需创建 ObjectTile

Tile myLabel = new Tile(10,false);//this will create lable

因为你的 Tile class 是 JLabel 的子类,不需要在 Tile class 中创建 Label 作为 Tile 本身是一个 Label。除此之外,您不会获得 JLabel 的操作事件。它不是使用 MouseListener.

的可点击元素