对于循环不能按预期使用图形

时间:2016-05-18 01:35:52

标签: java for-loop graphics

我一直试图制作一个for循环,在屏幕上横向复制垂直线,每个距离与其先例相同;但是,尽管看起来语法正确,但我的代码似乎不起作用。我在下面发布了我的代码,希望有人可以发现问题。

class HVLines
{
    public static void Lines(Graphics g)
     {
    int k;
    int x=0;

        for (k = 1; k <= 50; k++)
         {
      g.drawLine(20+x,150,20+x,525);

        for (x = 1; x <= 50; x+=20)
            {

            }
        }
     }
}

2 个答案:

答案 0 :(得分:-1)

看起来应该是这样的。我不能确保它能够正常工作,因为我不知道你是如何使用它的。此外,在您的循环中,您使用x两次,但不要使用k。更改其中一个,或者,如果您不需要,请删除其中一个循环。

我很确定这个会创建一条对角线而不是水平线。

for (k = 1; k <= 50; k++)  {
    for (x = 1; x <= 50; x+=20) {
        // Choose one of the following
        g.drawLine(20+k,150,20+x,525);
        g.drawLine(20+x,150,20+k,525);
    }
}

这个创建一条直线:

for (x = 1; x <= 50; x+=20) {
    g.drawLine(20+x,150,20+x,525);
}

答案 1 :(得分:-1)

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Line2D;
import javax.swing.JApplet;
import javax.swing.JFrame;

public class DrawLine extends JApplet {
    public void init() {
        setBackground(Color.white);
        setForeground(Color.white);
    }

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setPaint(Color.gray);
        for (int y = 0; y <= 300; y += 30) {
            g2.draw(new Line2D.Double(0, y, 300, y));
        }
    }

    public static void main(String s[]) {
        JFrame f = new JFrame("Line");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        JApplet applet = new DrawLine();
        f.getContentPane().add("Center", applet);
        applet.init();
        f.pack();
        f.setSize(new Dimension(300, 300));
        f.setVisible(true);
    }
}