我想画一个图,有六条线,其中第一条与X轴成0度,第二条与X轴成120度,第三条与X轴成240度.Java初学者,谢谢!

解决方案 »

  1.   

    有两个问题比较麻烦1)确定直线的点。对于这问题倒是有一个简单办法,不画线,画弧。
    2)坐标转换。和其它绘图系统一样,java2D的坐标系如下所示:        (0, 0)
                +--->x
                |
                |
                V y
    从你的问题看,你可能要把中心放在中央,另外,可能会采用我们习惯的坐标系。所以,需要转换。步骤:
    1) 选择画布
       java2D的图可以画在任何Component上,现在通常画在JLabel或者JPanel上,推荐使用JLabel。建一个JLabel的子类,重载paintComponent(Graphics g)方法。
    注意,格式是这样的。paintComponent(Graphics g) {
        //最好加上这句,虽然你当前的需求不需要这么做
        super.paintComponent(g);    // Graphics2D提供了更多的绘图支持,所以需要转换一下。
        Graphics2D g2 = (Graphics2D)g;    // 下面你就可以使用g2画图了。注意,默认坐标原点是Component的左上角。
    }2) 你当前的绘图区的大小与JLabel大小是一致的。因为我们不要弧线,只要直线,所以,你要把Arc的Retangle设置的比JLable本身大,并且Top-Left点为负值。并且,设置JFrame的resizable为false。基本上就这些。有关Java2D的资料你可以参考:
        http://java.sun.com/j2se/1.3/docs/guide/2d/spec/j2d-bookTOC.doc.html
    其中我翻译过Chapter5和6,发表在我的blog(http://blog.csdn.net/Unagain),不过跟你现在的问题关系不大。
      

  2.   


    public void lineDemo extends JPanel{
    public void paint(Graphics g){
         Line2D line = new Line2D();
         line.setLine(0,0,100,0);
         g.draw(line);     ....
         
    }
    }