Java 如何创建平铺类并将其添加到JFrame?

Java 如何创建平铺类并将其添加到JFrame?,java,Java,所以我有一个瓷砖类: 公共类平铺扩展JLabel{ private char _c; private static char randomChar; public Tile(char c, Color background) { super(); setBackground(background); setOpaque(true); _c = c; } public static char randomLetter() { Random r = ne

所以我有一个瓷砖类:

公共类平铺扩展JLabel{

private char _c;
private static char randomChar;

public Tile(char c, Color background) {
    super();
    setBackground(background);
    setOpaque(true);
    _c = c;

}

public static char randomLetter() {
    Random r = new Random();
    randomChar = (char) (97 + r.nextInt(25));
    return randomChar;
    }

public static void main(String[] args) {
    Tile tile = new Tile(Tile.randomLetter(), Color.BLUE);
    Tile tile1 = new Tile(Tile.randomLetter(), Color.RED);
    Tile tile2 = new Tile(Tile.randomLetter(), Color.GREEN);
    Tile tile3 = new Tile(Tile.randomLetter(), Color.YELLOW);

    JFrame frame = new JFrame();
    frame.getContentPane().setLayout(new GridLayout(4,1));
    frame.setSize(500, 800);
    frame.setVisible(true);
    frame.add(tile);
    frame.add(tile1);
    frame.add(tile2);
    frame.add(tile3);

    System.out.println(Tile.randomLetter());
它应该有一个字母和一种颜色。我正在尝试在
JFrame
中创建这些瓷砖的4×1网格。我该怎么做


假设我需要另一个类,例如一个模型类来继续制作这些平铺,而不是手动制作。我该怎么做呢?

您可以使用
JLabel

JLabel blueLabel = new JLabel("a");
blueLabel.setOpaque(true);
blueLabel.setBackground( Color.BLUE );
然后,您可以将
JPanel
GridLayout
一起使用,并将标签添加到面板:

JPanel panel = new JPanel( new GridLayout(1, 0) );
panel.add(blueLabel);
panel.add(redLabel);
panel.add(...);
编辑:


您好,这可能会起作用,但是我的说明要求我定义自己的具有letter@Kisuna97那么?从
JLabel
扩展并提供功能,以便可以从
Tile
@MadProgrammer配置它。我是java新手,我了解如何扩展它。但是idk如何创建Tile class使用JLabelsHi这是在您的示例之后所做的。我仍然无法在框架中显示互动程序。如果我只在此处发布说明,是否会对您有更好的帮助?链接如下1:2:3: @camickr@Kisuna97,
我仍然无法在框架中显示磁贴
请先阅读上Swing教程的部分。下载演示代码并进行测试。然后更改其中一个JLabel以使用上面的磁贴类。
public class Tile extends JLabel
{
    public Tile(String letter, Color background)
    {
        super(letter);
        setBackground( background );
        setOpaque( false );
    }
}