使用JFrame添加其他图像而不覆盖先前添加的图像时出现问题

时间:2019-05-04 12:47:56

标签: java

我对Java编程非常陌生,现在我正在尝试制作井字游戏。我的代码中的所有内容似乎都不错,但有一件事情:当我尝试向框架中添加自定义JLabel ImageIcon时,之前添加到内容窗格中的背景图像将覆盖JLabel ImageIcon,并且当我尝试添加时附加的JLabel ImageIcon,每个新的JLabel ImageIcon都会覆盖以前的JLabel ImageIcon。如果有人可以帮助我教我如何添加其他图像而不覆盖其他内容,将不胜感激。

在这里,我将ContentPane设置为具有背景图片:

JFrame frame = new JFrame("Tic Tac Toe");
        try {
            frame.setContentPane(new JLabel(
                    new ImageIcon(ImageIO.read(new File("C:/Users/anton/OneDrive/Bilder/tictactoe2.png")))));

        } catch (IOException e) {
            System.out.println("Image doesn't exist");
        }

在这里,我向JFrame中添加了一个新的JLabel ImageIcon,因为背景图像正在覆盖它,所以它没有显示出来:

        frame.add(new JLabel(new ImageIcon("C:/Users/anton/OneDrive/Bilder/Triangle1.png")));
        frame.setSize(500, 500);
        frame.setResizable(false);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

如果我尝试添加两个不同的JLabel ImageIcons而不在ConentPane中放置图像,则仅显示第二个JLabel ImageIcon:

        frame.add(new JLabel(new ImageIcon("C:/Users/anton/OneDrive/Bilder/Circle1.png")));
        frame.add(new JLabel(new ImageIcon("C:/Users/anton/OneDrive/Bilder/Triangle1.png")));
        frame.setSize(500, 500);
        frame.setResizable(false);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

0 个答案:

没有答案