Создать класс с кнопками, которые вызывают соответствующий метод - Java

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

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

Создать на языке Java класс, который описывает понятие реального мира согласно варианту задания. Класс должен иметь не менее 5 полей, описывающих свойства данного понятия и не менее 3 методов, которые описывают его поведение. Методы должны работать с полями, читать или записывать их; все поля должны быть задействованы в методах. Имена полей должны начинаться с существительного или прилагательного, методов - с глагола. Создать программу, которая создает окно с четырьмя кнопками. При нажатии на первую кнопку должен создаться объект нашего класса, при нажатии на каждую из других кнопок должен запускаться соответствующий метод нашего класса. Вариант: Дерево. ПОМОГИТЕ ПОЖАЛУЙСТА. ОЧЕНЬ ПРОШУ!!!

Решение задачи: «Создать класс с кнопками, которые вызывают соответствующий метод»

textual
Листинг программы
  1. package exp.dag;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5.  
  6. public class Tree {
  7.  
  8.     private static Tree tree;
  9.     private double height, diameter, age, depth;      // высота, диаметр ствола, возраст, глубина корней
  10.     private int countOfLeaves;                        // количество листьев
  11.     private int season = 1;      // времена года
  12.  
  13.     private Tree(double height, double diameter, double age, double depth, int countOfLeaves) {
  14.         this.height = height;
  15.         this.diameter = diameter;
  16.         this.age = age;
  17.         this.depth = depth;
  18.         this.countOfLeaves = countOfLeaves;
  19.     }
  20.  
  21.     public static void main(String[] args) {
  22.         JFrame frame = new JFrame();
  23.         frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  24.         frame.setSize(400, 100);
  25.         frame.setLocationRelativeTo(null);
  26.  
  27.         JButton button1 = new JButton("Создание дерева");
  28.         JButton button2 = new JButton("Вырасти");
  29.         JButton button3 = new JButton("Питаться");
  30.         JButton button4 = new JButton("Контролировать листву");
  31.  
  32.         button1.addActionListener(e -> tree = new Tree(2, .05, 1, .5, 30));
  33.         button2.addActionListener(e -> {
  34.             if (tree != null) tree.grow();
  35.             System.out.println(tree);
  36.         });
  37.         button3.addActionListener(e -> {
  38.             if (tree != null) tree.eat();
  39.             System.out.println(tree);
  40.         });
  41.         button4.addActionListener(e -> {
  42.             if (tree != null) tree.toControlFoliage();
  43.             System.out.println(tree);
  44.         });
  45.  
  46.         frame.setLayout(new FlowLayout());
  47.         frame.add(button1);
  48.         frame.add(button2);
  49.         frame.add(button3);
  50.         frame.add(button4);
  51.  
  52.         frame.setVisible(true);
  53.     }
  54.  
  55.     private void grow() {   // расти
  56.         age += .1;
  57.         height += .01;
  58.         diameter += .0005;
  59.         season = (int) (age % 1 % .25);
  60.     }
  61.  
  62.     private void eat() {                // питаться
  63.         depth += .1;
  64.         grow();
  65.         grow();
  66.         toControlFoliage();
  67.     }
  68.  
  69.     private void toControlFoliage() {           // контролировать листву
  70.         if (season == 1 || season == 2 || season == 3) countOfLeaves += 100;
  71.         else countOfLeaves = countOfLeaves - 1000 > 0 ? countOfLeaves - 1000 : 0;      // season == 4
  72.     }
  73.  
  74.     @Override
  75.     public String toString() {
  76.         return "Tree{" +
  77.                 "height=" + height +
  78.                 ", diameter=" + diameter +
  79.                 ", age=" + age +
  80.                 ", depth=" + depth +
  81.                 ", countOfLeaves=" + countOfLeaves +
  82.                 ", season=" + season +
  83.                 '}';
  84.     }
  85. }

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


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

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

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

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

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

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