рисование нескольких заполненных дуг внутри овала - PullRequest
0 голосов
/ 27 марта 2012

Я хочу нарисовать круговое меню в java, в котором есть 8 пирогов внутри овала одинакового размера. Проблема в том, что когда я рисую одну дугу внутри овала, следующая дуга перекрывает предыдущую дугу и меняю ее цвет, но я хочу, чтобы внутри круга с заполнением разными цветами было 8 дуг одинакового размера. Кто-нибудь может сказать мне, как я могу достичь этого? Вот мой код.

public class mypanel extends JPanel {

    int mx = 20;
    int my = 20;
    int ms = 120;
    int mg = 120;

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.red);
        g2.drawOval(mx, my, 100, 100);
        g2.fillArc(mx, my, 100, 100, 0, 45);
        g2.setColor(Color.blue);
        g2.fillArc(mx, my, 100, 100, 0, 60);
        g2.setColor(Color.white);
        g2.fillArc(mx, my, 100, 100, 0, 20);
        g2.setColor(Color.black);
        g2.fillArc(mx, my, 100, 100, 0, 80);
        g2.setColor(Color.blue);
        g2.fillArc(mx, my, 100, 100, 0, 95);

    }
}

Ответы [ 2 ]

4 голосов
/ 27 марта 2012

Это должно сработать:

    Color[] c = {Color.BLACK, Color.RED, Color.BLUE, Color.YELLOW, 
                 Color.GREEN, Color.CYAN, Color.MAGENTA, Color.PINK};
    for(int i=0; i<8; ++i){
        g.setColor(c[i]);
        g.fillArc(x, y, w, h, i*45, 45);
    }
2 голосов
/ 27 марта 2012

Библиотека включает в себя несколько базовых демонстраций , включая PieChartDemo1.Нажмите на название класса, чтобы увидеть соответствующий источник .Любой CategoryAnnotation должен быть применим, и есть поддержка для богатой системы событий .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...