java - 如何创建一个扩展 jLabel 的类,以便它在我的主类中显示为 JLabel?

标签 java class jlabel extends

所以,本质上我是在创造内存。我有一个图 block 类,此时它只有一个数字和一个 boolean 值(以显示它是否被翻转)。我将所有数字复制为 Tile 对象并将它们随机化,然后将它们添加到我的布局中。

基本上,我需要它们作为 JLabels 显示在我的屏幕上,但我不太确定如何执行此操作?我应该扩展其他东西,还是在我的 Tile 类中做一些特别的事情?还是我其他地方的逻辑有问题?这是我此时的 Tile 类(很少)

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)
{

}

任何帮助将不胜感激! 编辑:

这是我尝试添加图 block 的主类

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
 }
<小时/>

只需创建Tile对象

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

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

关于java - 如何创建一个扩展 jLabel 的类,以便它在我的主类中显示为 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609296/

相关文章:

java - 从 IDE 运行服务时的 catalina.base 路径

java - 如何将字符串从 2 个 Activity 传递到 1 个 Activity ?

ios - 适应不断变化的模型 Swift iOS?

java - 我无法正确编译此代码。我究竟做错了什么?

java - 获取和使用 TestNG @test 注释参数

java - BlockingQueue资源消耗

java - 查明 JLabel 的文本是否超过标签大小

java - 向多个 JLabel 添加鼠标监听器

php 嵌套对象函数调用不起作用?

java - 当内容更改时,JTree 中的 JLabel 不会调整大小