Работа с Choice на Java

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

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

Здравствуйте) При выборе цвета из Choice должен меняться цвет фрактала. У меня почему-то не работает. Заранее огромное спасибо!) Вот код:
Листинг программы
  1. import java.applet.Applet;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.awt.geom.Line2D;
  5. import java.awt.geom.Point2D; //Точка
  6. import java.awt.event.ItemEvent;
  7. import java.awt.event.ItemListener;
  8. import javax.swing.*;
  9.  
  10. public class Kr_Koha extends Applet implements ActionListener, ItemListener{
  11. private Graphics2D g2 = null;
  12. Choice cvet = new Choice();
  13. private Integer biteger;
  14. int Number;
  15. public void init(){
  16. setLayout(null);
  17. int width = Integer.parseInt(getParameter("width"));
  18. int height = biteger.parseInt(getParameter("height"));
  19. cvet.reshape(160, 55, width / 4, height / 5);
  20.  
  21. cvet.add("Black");
  22. cvet.add("Blue");
  23. cvet.add("Cyan");
  24. cvet.add("Dark Gray");
  25. cvet.add("Gray");
  26. cvet.add("Green");
  27. cvet.add("Light Gray");
  28. cvet.add("Magenta");
  29. cvet.add("Orange");
  30. cvet.add("Pink");
  31. cvet.add("Red");
  32. cvet.add("White");
  33. cvet.add("Yellow");
  34. add(cvet);
  35. cvet.addItemListener(this);
  36. }
  37.  
  38. public void paint(Graphics g){
  39. setBackground(new Color(252,239,213));
  40. setSize(700,600);
  41. Font font=new Font("Times New Roman",Font.BOLD,25);
  42. Color color1= new Color(250, 74, 67);
  43. g.setColor(color1);
  44. g.setFont(font);
  45. g.drawString("Кривая Коха", 250, 20);
  46. Font font1=new Font("Times New Roman",Font.ITALIC,18);
  47. Color color2= new Color(250, 104, 218);
  48. g.setColor(color2);
  49. g.setFont(font1);
  50. g.drawString("Цвет фрактала",30,70);
  51. g2 = (Graphics2D) g;
  52. g2.setPaint(Color.blue);
  53. drawCurveKochRecur(new Line2D.Double(500,300,150,300), 8);
  54. }
  55.  
  56. private void drawCurveKochRecur(Line2D line, int maxIter, int curIter) {
  57. drawLine(line);
  58. if (curIter <= maxIter){
  59. double a = line.getP1().distance(line.getP2());
  60. a = a /2;
  61. g2.drawString(String.valueOf(a),2000,Integer.parseInt(String.valueOf(Math.round(10+(a*10)))));
  62. double h = Math.sqrt(Math.pow(a, 2) - Math.pow((a / 2), 2) / 4);
  63. Point2D ps = line.getP1();
  64. Point2D pe = line.getP2();
  65. Point2D pm = new Point2D.Double((ps.getX() + pe.getX()) / 2, (ps.getY() + pe.getY()) / 2);
  66. Point2D p1 = new Point2D.Double((2 * ps.getX() + pe.getX()) / 3, (2 * ps.getY() + pe.getY()) / 3);
  67. Point2D p2 = new Point2D.Double((2 * pe.getX() + ps.getX()) / 3, (2 * pe.getY() + ps.getY()) / 3);
  68. Point2D p3 = new Point2D.Double(
  69. pm.getX() + (h * (-p2.getY() + pm.getY())) / (a / 2),
  70. pm.getY() + (h * (p2.getX() - pm.getX())) / (a / 2)
  71. );
  72.  
  73. // Рекурсия
  74. curIter++;
  75. drawCurveKochRecur(new Line2D.Double(ps,p1), maxIter, curIter);
  76. drawCurveKochRecur(new Line2D.Double(p1,p3), maxIter, curIter);
  77. drawCurveKochRecur(new Line2D.Double(p3,p2), maxIter, curIter);
  78. drawCurveKochRecur(new Line2D.Double(p2,pe), maxIter, curIter);
  79. }
  80. }
  81.  
  82. private void drawCurveKochRecur(Line2D line, int maxIter) {
  83. drawCurveKochRecur(line, maxIter,0);
  84. }
  85. /** Нарисовать линию */
  86. public void drawLine(Line2D line) {
  87. g2.draw(new Line2D.Double(line.getP1(), line.getP2()));
  88. }
  89. @Override
  90. public void actionPerformed(ActionEvent e) {
  91. }
  92. @Override
  93. public void itemStateChanged(ItemEvent e) {
  94. Number=cvet.getSelectedIndex();
  95. if(Number==2)
  96. g2.setPaint(Color.cyan);
  97.  
  98. }
  99. }

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут