Работа с Choice на Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте) При выборе цвета из Choice должен меняться цвет фрактала. У меня почему-то не работает. Заранее огромное спасибо!) Вот код:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D; //Точка
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;

public class Kr_Koha extends Applet implements ActionListener, ItemListener{
 
    private Graphics2D g2 = null;
    Choice cvet = new Choice();
    private Integer biteger;
    int Number;
 
    public void init(){
 
        setLayout(null);
        int width = Integer.parseInt(getParameter("width"));
        int height = biteger.parseInt(getParameter("height"));
        cvet.reshape(160, 55, width / 4, height / 5);

        cvet.add("Black");
        cvet.add("Blue");
        cvet.add("Cyan");
        cvet.add("Dark Gray");
        cvet.add("Gray");
        cvet.add("Green");
        cvet.add("Light Gray");
        cvet.add("Magenta");
        cvet.add("Orange");
        cvet.add("Pink");
        cvet.add("Red");
        cvet.add("White");
        cvet.add("Yellow");
 
        add(cvet);
        cvet.addItemListener(this);
 
        }

    public void paint(Graphics g){
 
        setBackground(new Color(252,239,213));
        setSize(700,600);
 
        Font font=new Font("Times New Roman",Font.BOLD,25);
        Color color1= new Color(250, 74, 67);
        g.setColor(color1);
        g.setFont(font);
        g.drawString("Кривая Коха", 250, 20);
        Font font1=new Font("Times New Roman",Font.ITALIC,18);
        Color color2= new Color(250, 104, 218);
        g.setColor(color2);
        g.setFont(font1);
        g.drawString("Цвет фрактала",30,70);
        
        g2 = (Graphics2D) g;
        g2.setPaint(Color.blue);
        drawCurveKochRecur(new Line2D.Double(500,300,150,300), 8);
 
    }

    private void drawCurveKochRecur(Line2D line, int maxIter, int curIter) {
 
        drawLine(line);
 
        if (curIter <= maxIter){
 
            double a = line.getP1().distance(line.getP2());
            a = a /2;
            g2.drawString(String.valueOf(a),2000,Integer.parseInt(String.valueOf(Math.round(10+(a*10)))));
            double h = Math.sqrt(Math.pow(a, 2) - Math.pow((a / 2), 2) / 4);
 
            Point2D ps = line.getP1();
            Point2D pe = line.getP2();
 
            Point2D pm = new Point2D.Double((ps.getX() + pe.getX()) / 2, (ps.getY() + pe.getY()) / 2);
            Point2D p1 = new Point2D.Double((2 * ps.getX() + pe.getX()) / 3, (2 * ps.getY() + pe.getY()) / 3);
            Point2D p2 = new Point2D.Double((2 * pe.getX() + ps.getX()) / 3, (2 * pe.getY() + ps.getY()) / 3);
            Point2D p3 = new Point2D.Double(
                    pm.getX() + (h * (-p2.getY() + pm.getY())) / (a / 2),
                    pm.getY() + (h * (p2.getX() - pm.getX())) / (a / 2)
            );

            // Рекурсия
            curIter++;
            drawCurveKochRecur(new Line2D.Double(ps,p1), maxIter, curIter);
            drawCurveKochRecur(new Line2D.Double(p1,p3), maxIter, curIter);
            drawCurveKochRecur(new Line2D.Double(p3,p2), maxIter, curIter);
            drawCurveKochRecur(new Line2D.Double(p2,pe), maxIter, curIter);
 
        }
    }

    private void drawCurveKochRecur(Line2D line, int maxIter) {
        drawCurveKochRecur(line, maxIter,0);
    }
 
    /** Нарисовать линию */
    public void drawLine(Line2D line) {
        g2.draw(new Line2D.Double(line.getP1(), line.getP2()));
 
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
 
          }
 
    @Override
    public void itemStateChanged(ItemEvent e) {
        Number=cvet.getSelectedIndex();
 
        if(Number==2)
            g2.setPaint(Color.cyan);

    }
}

Решение задачи: «Работа с Choice на Java»

textual
Листинг программы
drawCurveKochRecur(new Line2D.Double(500,300,150,300), 8);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5