Работа с 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д