gpt4 book ai didi

java - JPanel 在 Paint() 方法后面渲染

转载 作者:行者123 更新时间:2023-12-02 06:58:49 25 4
gpt4 key购买 nike

我正在尝试创建一款棋盘游戏。我的窗口的左侧是我实际的棋盘游戏,而右侧我将有一些按钮和计时器。我使用 Paint 方法绘制我的板,但是当我尝试创建一个在后台渲染的新 JPanel 时。我知道,因为我可以看到游戏边缘有一些黑色。

这是我的主要代码,用于创建 JFrame 并调用我的板类。

    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);

这是我绘制棋盘图像的代码。这是我的 Board 类(class)

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);

这是我在运行时的游戏,并进一步解释了我的问题。 /image/GNuy7.jpg

预先感谢您提供的所有帮助!

最佳答案

I am trying to create a board game. The left side of my windows is my actual board game while on the right side I was going to have a few buttons and timers.

创建两个面板,一个用于 Board 类,另一个用于按钮,然后将它们添加到框架中,如下所示:

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

这就是不要尝试在单个面板上完成所有自定义绘画和游戏。

关于java - JPanel 在 Paint() 方法后面渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16949607/

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