这是我在stackoverflow中的第一篇文章:D
对不起我的英语(我是意大利语)
所以我有一个名为setFrame
的方法public static void setFrame()
{
JFrame GameMain = new JFrame();
GameMain.setSize(width, high);
GameMain.setLocationRelativeTo(null);
GameMain.setTitle("Tic Tac Toe!");
GameMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Grid grid = new Grid(600, 600);
GameMain.add(grid);
GameMain.pack();
GameMain.setVisible(true);
}
这是Grid类
public class Grid
{
private static int high;
private static int width;
public Grid(int width, int high)
{
width = width;
high = high;
BufferedImage img = null;
try {
img = ImageIO.read(new File("/grids/griglia1.png"));
} catch (IOException e) {
}
}
}
好的问题是,在方法setFrame中我写了“GameMain.add(grid);” 控制台给我一个错误 “Container类型中的方法add(Component)不适用于参数(Grid)”
感谢您的帮助
答案 0 :(得分:0)
据我所知,您想要将图像添加到JFrame中。但是,您的实施存在一些问题。首先,您无法将图像直接添加到组件中。您需要将它们封装在JLabel中。此外,您无法将网格类添加到JFrame的原因是因为它不是swing组件。
完成您要做的事情的最简单方法是创建一个JPanel,然后将其添加到框架中,然后创建一个封装图像的JLabel并将其添加到JPanel。
public static void setFrame()
{
JFrame GameMain = new JFrame();
GameMain.setSize(width, high);
GameMain.setLocationRelativeTo(null);
GameMain.setTitle("Tic Tac Toe!");
GameMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel GamePanel = new JPanel();
GamePanel.setSize(width, high);
GameMain.add(GamePanel);
background = new JLabel(new ImageIcon(ImageIO.read(new File("/grids/griglia1.png"))));
GamePanel.add(background);
GameMain.pack();
GameMain.setVisible(true);
}
这样您就可以完全绕过Grid类。希望这会有所帮助。