有个作业做五子棋 我用jpanel作画布 棋盘都画好了 也能下子
问题来了:
paintComponent(Graphics)负责绘制棋盘 和 落的子
通过监听鼠标点击事件 调用 repaint()方法来落子
但每次下子都只有最新放下的一个棋子显示出来 以前画的棋子被清空了
能有什么办法把原来画好的内容保留下来 下次repaint()在这基础上接着画??
问题来了:
paintComponent(Graphics)负责绘制棋盘 和 落的子
通过监听鼠标点击事件 调用 repaint()方法来落子
但每次下子都只有最新放下的一个棋子显示出来 以前画的棋子被清空了
能有什么办法把原来画好的内容保留下来 下次repaint()在这基础上接着画??
做出单独的棋子后,在棋盘上就不用paintComponent来画棋子了。比如说你的棋盘是JPanel,设置jpanel.setLayout(null),直接用jpanel.add(JComponent)就可以了。棋子的坐标用 棋子.setBounds(x, y, w, h)来设置。所以你只要遍历List<棋子>把所有的棋子添加到棋盘上即可。