与饼图小程序的麻烦

时间:2012-09-14 22:08:46

标签: java applet japplet

好的是,我正在尝试使用drawPie方法在applet中创建我的饼图。在尝试谷歌搜索后,我找到了多个教程来解释部分过程但不是全部。在尝试将部分信息编织在一起时,我无法得到我想要的结果。

    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;

    import javax.swing.JApplet;
    import javax.swing.JComponent;

public class JLW_PieApplet extends JApplet {

class PieData extends JComponent {
    PieValue[] slices = new PieValue[4];

    PieData() {
        slices[0] = new PieValue(35, Color.red);
        slices[1] = new PieValue(33, Color.green);
        slices[2] = new PieValue(20, Color.pink);
        slices[3] = new PieValue(12, Color.blue);

    }

    public void paint(Graphics g) {
        drawPie((Graphics2D)g, getBounds(), slices);
    }
}

}

2 个答案:

答案 0 :(得分:1)

在Swing中称为drawPie的Ther不是这种方法。没有这种方法的内容,我们不知道如何帮助你

尝试阅读2D Graphics并特别查看Ellipse2D

我能看到的另一个问题是你没有在paint方法中调用super.paint(g)。这非常非常非常重要

答案 1 :(得分:0)

您的小程序中有一个PieData组件,但您从未添加过该组件,因此您需要在init中添加该组件,并从上面的link引入drawPie

public class JLW_PieApplet extends JApplet {

   public void init() {
      add(new PieData());
   }

   class PieData extends JComponent {
      PieValue[] slices = new PieValue[4];

      PieData() {
         slices[0] = ...
      }

      @Override
      protected void paintComponent(Graphics g) {
         super.paintComponent(g);
         drawPie((Graphics2D) g, getBounds(), slices);
      }

      public void drawPie(Graphics2D g, Rectangle area, PieValue[] slices) {
      ...