import java.applet.Applet; import java.awt.*; //tekstiväljad, nupp import java.awt.event.*; //nupuvajutus public class Murruke2 extends Applet implements ActionListener{ public static int algX=10; public static int algY=300; //Ekraanipunktides public static int korgus=150; //cm public static int laius=150; public int osaLaius; public int joonteArv; public int lugeja; public int nimetaja; public TextField textlugeja=new TextField("1", 3); public TextField textnimetaja=new TextField("12", 3); public Button nupp=new Button("Joonista"); GridLayout grid=new GridLayout(2,2);//nupud üksteise peale public static final double PI= Math.PI; public static void main(String[] argumendid){ Frame f=new Frame("Murrud"); f.add(new Murruke2()); f.setSize(800, 600); f.setVisible(true); } public Murruke2(){ Panel p = new Panel(); p.setLayout(grid); add(p, BorderLayout.NORTH); p.add(textlugeja); p.add(nupp); p.add(textnimetaja); nupp.addActionListener(this); // setLayout(); } public void paint(Graphics g){ lugeja=Integer.parseInt(textlugeja.getText()); nimetaja=Integer.parseInt(textnimetaja.getText()); g.setColor(Color.blue); g.drawString("Murru lugeja", 245,25); g.drawString("Murru nimetaja", 240,50); if (lugeja>nimetaja) g.drawString("LUGEJA PEAB OLEMA NIMETAJAST VÄIKSEM!",100,100); else{ drawRuut(g); fillRuut(g,nimetaja,lugeja); drawRomb(g); fillCompRomb(g,lugeja*osaLaius,lugeja); fillRomb(g,nimetaja,lugeja); if(lugeja!=0) fillCompRing(g); drawRing(g); fillRing(g); drawRuut2(g); fillRuut2(g); } } public void drawRuut(Graphics g){ g.setColor(Color.black); g.drawLine(algX, algY-korgus, algX, algY);//I_ g.drawLine(algX+laius, algY-korgus,algX+laius, algY);//_I g.drawLine(algX, algY, algX+laius, algY);//_ g.drawLine(algX, algY-korgus, algX+laius, algY-korgus);//- } public void drawRomb(Graphics g){ g.setColor(Color.black); g.drawLine(algX+430, algY-korgus, algX+330, algY);///_ g.drawLine(algX+laius+330, algY,algX+laius+430, algY-korgus);//_/ g.drawLine(algX+330, algY, algX+laius+330, algY);//_ g.drawLine(algX+430, algY-korgus, algX+laius+430, algY-korgus);//- } public void fillRuut(Graphics g,int joonteArv,int arv){ double vajalik=Double.parseDouble(""+laius)/Double.parseDouble(""+joonteArv);//komakohtadega lõigu pikkus osaLaius=laius/joonteArv; boolean check=false; g.setColor(Color.blue); int abimuutuja=(arv+1)/2;//see on õige if(lugeja<=nimetaja) g.fillRect(algX,algY-korgus,arv*osaLaius+abimuutuja,korgus); if(vajalik-(double)osaLaius>=0.5) check=true; g.setColor(Color.black); if(!check){ for(int i=1; i<=joonteArv; i++){ g.drawLine(algX+i*osaLaius,algY-korgus, algX+i*osaLaius,algY); } }else{ boolean abi=false; int k=0; for(int i=1; i<=joonteArv; i++){ g.drawLine(algX+k+i*osaLaius,algY-korgus, algX+k+i*osaLaius,algY); if(!abi){ abi=true; }else{ abi=false; k++; } } } } public void fillRomb(Graphics g,int joonteArv,int arv){ double vajalik=Double.parseDouble(""+laius)/Double.parseDouble(""+joonteArv); osaLaius=laius/joonteArv; boolean check=false; if(vajalik-(double)osaLaius>=0.5)//juhul kui komakoht üle 0.5 check=true; g.setColor(Color.black); if(!check){//kõik on ok for(int i=1; i<=joonteArv; i++){ g.drawLine(algX+430+i*osaLaius,algY-korgus, algX+330+i*osaLaius,algY); } }else{ boolean abi=false;//et saaks aru,et üle ühe int k=0;//on see, mida juurde liidetakse for(int i=1; i<=joonteArv; i++){ g.drawLine(algX+430+k+i*osaLaius,algY-korgus, algX+330+k+i*osaLaius,algY); if(!abi){ abi=true; }else{ abi=false; k++; } } } } public void drawRing(Graphics g){ g.setColor(Color.black); g.drawOval(algX+180, algY-150, korgus,laius); g.setColor(Color.blue); } public void fillRing(Graphics g){ g.setColor(Color.black); if(lugeja!=nimetaja){ double nurk=2*PI/nimetaja; for(int i=1;i<=nimetaja;i++){ int uusKoordX=(int)(algX+255+75*Math.sin(nurk*i)); int uusKoordY=(int)(algY-75+75*Math.cos(nurk*i)); //for(int i=0; i