我怎么能在我的JFrame中实现render()方法

时间:2014-03-29 06:08:06

标签: java swing

我正在尝试创建一个既有文本又有图形版本的小图形游戏。对于这两个版本,我使用了一个render()方法,它将所有内容绘制到板上(在这种情况下,将它绘制到JFrame)。但是,我在尝试将方法添加到JFrame时遇到了麻烦。我想知道如何做到这一点,如果我不能做我能做的其他事情。

// Rows
    for (int x = 0; x < this.cells.length; x++) {

        // Columns
        for (int y = 0; y < this.cells[x].length; y++) {
            if (this.cells[x][y].type == Cell.EMPTY) {
                g.setColor(Color.black);
                g.drawOval(x, y, 10, 10);
            } else if (this.cells[x][y].type == Cell.MONSTER) {
                g.setColor(Color.red);
                Polygon poly = new Polygon();
                poly.addPoint(x, y);
                poly.addPoint(x - 10, y - 10);
                poly.addPoint(x + 10, y + 10);
                g.drawPolygon(poly);

            }

这是一个渲染方法,它搜索单元格数组,并根据x和y处的对象类型,绘制相应的形状。虽然,我对编程世界比较陌生,但我很感激能得到的所有帮助!

1 个答案:

答案 0 :(得分:2)

  1. 不要画框。相反,请绘制到JPanel
  2. 要自定义绘画,@Override paintComponent(Graphics)方法。
    • 请务必在呈现前先致电super.paintComponent(g);
  3. 同样@Override面板的首选尺寸,以返回显示整个图纸的尺寸。
  4. 为重复任务(例如动画制作)实现Swing Timer
    • 在监听器中,调整与渲染相关的位置或其他因素,然后调用repaint();