好的是,我正在尝试使用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);
}
}
}
答案 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) {
...