利用BasicStroke类.
先创建一个BasicStroke类对象.然后通过Graphics2D 的setStroke 方法将直线的Styles传递给Graphics2D

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.event.*;
    import java.applet.*;public class FloatLine extends Applet
    {
    public void paint( Graphics g )
    {
    Rectangle r = getBounds();
    Line2D.Float line;
    line = new Line2D.Float(20,20,200,200);
    g.setStroke(new BasicStroke(2.0f));
    g.setColor( Color.red );
    g.draw(line);
    } public void processEvent( AWTEvent e )
    {
    if ( e.getID() == Event.WINDOW_DESTROY )
    {
    System.exit( 0 );
    }
    }
    }
    可是我这个简单的程序编译都不能通过呢?请高手指教
      

  2.   

    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.event.*;
    import java.applet.*;public class FloatLine extends Applet
    {
    public void paint( Graphics2D g )
    {
    Rectangle r = getBounds();
    Line2D.Float line;
    line = new Line2D.Float(20,20,200,200);
    g.setStroke(new BasicStroke(2.0f));
    g.setColor( Color.red );
    g.draw(line);
    } public void processEvent( AWTEvent e )
    {
    if ( e.getID() == Event.WINDOW_DESTROY )
    {
    System.exit( 0 );
    }
    }
    }
    这个小程序编译通过了,怎么不能在浏览器上画出相应的图形呢,请高手指教
      

  3.   

    画线直接用Graphics的drawLine方法就可以了
      

  4.   

    给你一个例子:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import java.awt.event.*;
    import java.applet.*;public class FloatLine extends JApplet
    {
    final static Color bg = Color.white;
        final static Color fg = Color.black;
        final static BasicStroke stroke = new BasicStroke(2.0f);
        final static BasicStroke wideStroke = new BasicStroke(8.0f);
        
        public void init() {
            //Initialize drawing colors
            setBackground(bg);
            setForeground(fg);
        }
        
    public void paint( Graphics g )
    {
    Graphics2D g2 = (Graphics2D) g;
    g2.setStroke(stroke);
    g2.setColor( Color.red );
    g2.drawLine(20,50,100,80);
    g2.setStroke(wideStroke);
    g2.drawLine(50,100,120,100);
    }
     public static void main(String s[]) {
            JFrame f = new JFrame("FloatLine");
            f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {System.exit(0);}
            });
            JApplet applet = new FloatLine();
            f.getContentPane().add("Center", applet);
            applet.init();
            f.pack();
            f.setSize(new Dimension(550,400));
            f.show();
        }}
      

  5.   

    好像是Graphics#setStroke(java.awt.graphics.Stroke)
      

  6.   

    谢谢,问题已解决,特别感谢ztc16627(无语) ,因为你给的例子和我昨天晚上凑出来的一样,就是将Graphics的变量g强制转换成Graphics2D的g2
      

  7.   

    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import java.awt.event.*;
    import java.applet.*;public class FloatLine extends JApplet
    {
    final static Color bg = Color.white;
        final static Color fg = Color.black;
        final static BasicStroke stroke = new BasicStroke(2.0f);
        final static BasicStroke wideStroke = new BasicStroke(8.0f);
        final static float dash1[] = {10.0f};                         //新加
        final static BasicStroke dashed = new BasicStroke(1.0f,       //新加
                                                          BasicStroke.CAP_BUTT, 
                                                          BasicStroke.JOIN_MITER, 
                                                          10.0f, dash1, 0.0f);
        
        public void init() {
            //Initialize drawing colors
            setBackground(bg);
            setForeground(fg);
        }
        
    public void paint( Graphics g )
    {
    Graphics2D g2 = (Graphics2D) g;
    g2.setStroke(dashed);
    g2.setColor( Color.red );
    g2.drawLine(20,50,100,80);
    g2.setStroke(wideStroke);
    g2.drawLine(50,100,120,100);
    }
     public static void main(String s[]) {
            JFrame f = new JFrame("FloatLine");
            f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {System.exit(0);}
            });
            JApplet applet = new FloatLine();
            f.getContentPane().add("Center", applet);
            applet.init();
            f.pack();
            f.setSize(new Dimension(550,400));
            f.show();
        }}
      

  8.   

    谢谢ztc16627(无语),那么请问虚线怎么画呢
      

  9.   

    你看看我刚刚贴的代码!!!final static float dash1[] = {10.0f};                         //新加
    final static BasicStroke dashed = new BasicStroke(1.0f,       //新加
                                                          BasicStroke.CAP_BUTT, 
                                                          BasicStroke.JOIN_MITER, 
                                                          10.0f, dash1, 0.0f);
    g2.setStroke(dashed);
      

  10.   

    你用
    drawLine函数分别画出正方形的四条边.(分别设置它们的粗细)
      

  11.   

    这是自然,谢谢 ztc16627(无语)