【问题标题】:Drawing a grid in java在java中绘制网格
【发布时间】:2013-10-03 18:29:20
【问题描述】:

我正在尝试使用 for 循环创建笛卡尔网格。到目前为止,以下是我的部分代码;当我运行它时,它不会产生一系列线条,而是会产生一个带有白色面板的窗口,这会大大降低我的计算机速度。事实上,我必须启动任务管理器并结束任务,因为它甚至不会正常关闭。

public void paintComponent(Graphics g)
{
    int width = getWidth();
    int height = getHeight();
    super.paintComponent(g);

    int xstart=0;

    for(int i = 1; i <= 10; i = i++)
    {
        xstart = i*(width/10);
        g.drawLine(xstart, 0, xstart, height);
    }
}

【问题讨论】:

标签: java grid draw


【解决方案1】:

实际上你需要两个for循环,一个用于行,一个用于列,而不是你只使用一个,这不足以绘制网格。

我已经画了网格作为我的作业,我已经和你分享了。它将帮助您找到编码中的问题...

import java.awt.*;

class Grids extends Canvas {

    int width, height, rows, columns;

    Grids(int w, int h, int r, int c) {
        setSize(width = w, height = h);
        rows = r;
        columns = c;
    }

    @Override
    public void paint(Graphics g) {
        int k;
        width = getSize().width;
        height = getSize().height;

        int htOfRow = height / (rows);
        for (k = 0; k < rows; k++) {
            g.drawLine(0, k * htOfRow, width, k * htOfRow);
        }

        int wdOfRow = width / (columns);
        for (k = 0; k < columns; k++) {
            g.drawLine(k * wdOfRow, 0, k * wdOfRow, height);
        }
    }
}

public class DrawGrids extends Frame {

    DrawGrids(String title, int w, int h, int rows, int columns) {
        setTitle(title);
        Grids grid = new Grids(w, h, rows, columns);
        add(grid);
    }

    public static void main(String[] args) {
        new DrawGrids("Draw Grids", 200, 200, 2, 10).setVisible(true);
    }
}

【讨论】:

    【解决方案2】:

    for 循环中的增量是错误的。而不是

    i = i++
    

    应该很简单

    i++
    

    后增量运算符返回 i, 的旧值,该值被分配回 i,,因此 i 永远不会真正改变。

    【讨论】:

      【解决方案3】:

      嘿,伙计们,我只是用你 p 的一小部分来尝试修复它,我刚刚创建了一个字符串艺术结构,如果你也想这样做,这里是代码。int width = getWidth(); int height = getHeight();

         int xstart=0;
      
         for(int i = 1; i <= 10; i++)
         {
      
           xstart = i*(height/10);
           page.drawLine(xstart, 0, width, xstart);
         }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 2021-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多