Java 如何创建平铺类并将其添加到JFrame?
所以我有一个瓷砖类: 公共类平铺扩展JLabel{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
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 );
}
}