我一直试图制作一个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)
{
}
}
}
}
答案 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);
}
}