【发布时间】:2015-05-03 20:39:32
【问题描述】:
这是我尝试画线的课程
package gps;
import java.awt.*;
import java.awt.geom.Line2D;
import java.util.*;
import javax.swing.*;
public class RoadMap extends JPanel {
public void paintComponent(Graphics2D g)
{
super.paintComponent(g);
g.setColor(Color.blue);
for(int i = 0; i < Graph.getEdges().length; i++)
{
Shape s = new Line2D.Double(Graph.vMap.get(Graph.getEdges()[i].i1).x,
Graph.vMap.get(Graph.getEdges()[i].i1).y,
Graph.vMap.get(Graph.getEdges()[i].i2).x,
Graph.vMap.get(Graph.getEdges()[i].i2).y);
g.draw(s);
}
}
}
Graph.vMap.get(Graph.getEdges()[i].i2).x 和 Graph.vMap.get(Graph.getEdges()[i].i2).y 访问线端点的 x 和 y 值,我已经对其进行了测试,它返回了正确的值。但是,我的 JFrame 中没有显示任何内容。尝试在 for 循环之外绘制具有设定值的其他线条实际上是有效的。
【问题讨论】:
-
您正在绘制的线条的典型
x和y值是多少? -
x1 = 43.12929, x2 = 43.12976, y1 = -77.626956, y2 = -77.62679
-
由这些值定义的线的端点相差一个像素的一小部分。如果你想看到这么小的线条,你必须对它们进行缩放,使线条的长度变得大于一个像素。
标签: java swing jpanel double graphics2d