jpanel在paint()方法后面呈现

snvhrwxg  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(325)

我正在尝试创建一个棋盘游戏。我的窗口左边是我真正的棋盘游戏,而在右边我将有几个按钮和计时器。我画我的董事会使用油漆方法,但当我试图创建一个新的jpanel渲染的背景。我知道,因为我可以看到一些黑色的边缘游戏。
这是创建jframe并调用board类的主代码。

frame.setSize(864, 480);
    frame.add(new Board());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.setCursor(frame.getToolkit().createCustomCursor(new BufferedImage(3, 3, BufferedImage.TYPE_INT_ARGB), new Point(0, 0), "null"));

    JPanel panel = new JPanel();
    frame.add(panel);
    panel.setBackground(Color.BLACK);

这是我的代码,描绘了围棋的形象。这是我的棋盘课

super.paint(g);
    s.location = MouseInfo.getPointerInfo();
    s.mouse = s.location.getLocation();
    s.updateBlackX(s.mouse);
    s.updateBlackY(s.mouse);
    s.updateWhiteX(s.mouse);
    s.updateWhiteY(s.mouse);
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(board, 0, 0, null);
    paintArray(g2d);
    if (turn == 1)
        g2d.drawImage(s.getBlackStone(), s.getBlackX() - f.getX() - 15, s.getBlackY() - f.getY() - 35, null);
    else
        g2d.drawImage(s.getWhiteStone(), s.getWhiteX() - f.getX() - 15, s.getWhiteY() - f.getY() - 35, null);

这是我的游戏在运行时进一步解释我的问题。http://imgur.com/cais9ar
提前感谢您的帮助!

kcwpcxri

kcwpcxri1#

我正在尝试创建一个棋盘游戏。我的窗口左边是我真正的棋盘游戏,而在右边我将有几个按钮和计时器。
创建两个面板,一个用于board类,另一个用于按钮,然后将它们添加到框架中,如下所示:

frame.add(gamePanel, BorderLayout.CENTER);
frame.add(buttonPanel, BorderLayout.EAST);

也就是说,不要试图在一个面板上做所有你定制的绘画和游戏。

相关问题