Witam,
Mam problem. Muszę zrobić applet w którym wpisujemy w 3 różne pola tekstowe dowolne wartośći.
Po naciśnięciu guzika program rysuje wykres kołowy i dzieli okrąg na 3 kawałki(czerwony,zielony,niebieski).
Wielkośći kawałków mają być zależne od wielkości jakie wpisaliśmy w pola przykład :
pole1(red) - 50
pole2(green) - 15
pole3(blue) - 35
a więc 50% koła będzie miało kolor czerwony i analogicznie z resztą kolorów.
Wiem jak zrobić to na kątach ale nie wiem jak na procentach.
Próbuje od kilku godzin, proszę o pomoc.
Mój kod:(problem jest w metodzie actionPerformed)
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Grafika extends Applet implements ActionListener{
TextField r,g,b;
Button bDraw;
int size1,size2,size3,calosc;
int rsize,gsize,bsize;
public void init(){
r = new TextField(10);
g = new TextField(10);
b = new TextField(10);
add(r);
add(g);
add(b);
bDraw = new Button("D");
add(bDraw);
bDraw.addActionListener(this);
}
public void paint(Graphics g1){
setBackground(new Color(60,60,60));
r.setBounds(100,40,70,30);
g.setBounds(180,40,70,30);
b.setBounds(260,40,70,30);
r.setBackground(Color.RED);
g.setBackground(Color.GREEN);
b.setBackground(Color.BLUE);
r.setForeground(Color.WHITE);
g.setForeground(Color.BLACK);
b.setForeground(Color.WHITE);
bDraw.setBounds(320,90,30,30);
// tu zaczyna sie problem...
g1.setColor(Color.RED);
g1.fillArc(170,200,200,200,0,rsize);
g1.setColor(Color.GREEN);
g1.fillArc(170,200,200,200,rsize,gsize);
g1.setColor(Color.BLUE);
g1.fillArc(170,200,200,200,rsize+gsize,calosc);
}
public void actionPerformed(java.awt.event.ActionEvent zdarzenie){
size1=Integer.parseInt(r.getText());
size2=Integer.parseInt(g.getText());
size3=Integer.parseInt(b.getText());
calosc = size1 + size2 + size3;
rsize= (size1*100)/calosc;
gsize= (size2*100)/calosc;
bsize= (size3*100)/calosc;
repaint();
}
}