我想到的就是,直接画Rectangle。。
等待高人解答。

解决方案 »

  1.   

    我也是新手,这个例子看看怎么样吧。
    package swing;import java.awt.BorderLayout;
    import java.awt.Canvas;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.Box;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class chart {
    public static void main(String[] args){
    JFrame f= new JFrame("BoxLayout 演示程序");
    f.setBounds(80, 60, 300, 230);
    f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    f.setVisible(true);
    int SIZE = 3;
    MyCanvas mc = new MyCanvas();
    f.add(mc);
    }
    }class MyCanvas extends Canvas{
    public void paint(Graphics g)
    {
    g.setColor(Color.red);
    g.setPaintMode();
    int iHeight;
    int iWidth=10;
    int ix=20;
    iHeight = 100;
    g.fill3DRect(ix, 230-iHeight-32, iWidth, iHeight, true);
    g.drawString("100%", ix-iWidth/2-5, 230-iHeight-37);

    ix += 20+10;
    iHeight = 80;
    g.fill3DRect(ix, 230-iHeight-32, iWidth, iHeight, true);
    g.drawString("80%", ix-iWidth/2-5, 230-iHeight-37);

    ix += 20+10;
    iHeight = 20;
    g.fill3DRect(ix, 230-iHeight-32, iWidth, iHeight, true);
    g.drawString("20%", ix-iWidth/2-5, 230-iHeight-37);

    ix += 20+10;
    iHeight = 120;
    g.fill3DRect(ix, 230-iHeight-32, iWidth, iHeight, true);
    g.drawString("120%", ix-iWidth/2-5, 230-iHeight-37);
    }
    }