gpt4 book ai didi

java - 如何创建一个 Tile 类并将其添加到 JFrame 中?

转载 作者:行者123 更新时间:2023-11-30 07:47:34 24 4
gpt4 key购买 nike

所以我有一个图 block 类:

公共(public)类 Tile 扩展 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 中创建这些图 block 的 4 x 1 网格。我该怎么做?

据说我需要另一个类,例如模型类来继续制作这些图 block 而不是手动。我也该怎么做?

最佳答案

您可以只使用JLabel:

JLabel blueLabel = new JLabel("a");
blueLabel.setOpaque(true);
blueLabel.setBackground( Color.BLUE );

然后您可以将 JPanelGridLayout 结合使用,并将标签添加到面板中:

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

编辑:

public class Tile extends JLabel
{
public Tile(String letter, Color background)
{
super(letter);
setBackground( background );
setOpaque( false );
}
}

关于java - 如何创建一个 Tile 类并将其添加到 JFrame 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com