Не рисуется картинка, но должна

я написал программу, которая должна рисовать на кнопке рисунок, основанный на уравнении по типу (XY)^3 = tan(YX). Но после увеличения точности до 0.0000, рисунок перестал появляться. По логам понятно, что метод draw(int,int) выполняется.

Код:

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;

class FrameHandler{

    //основные переменные для установки информации
    private static BufferedImage img;
    private static Graphics2D g2d;

    //константы
    private static final int deep = 500;
    private static final int width = 1000;
    private static final int zoom = 100;
    private static final int accur = 10000;

    //окно
    static JFrame jFrame = getFrame();
    static JButton jButton = new JButton();

    //определяем компоненты
    private static void init() {
        jFrame.add(jButton);
        GridBagLayout gridBagLayout = new GridBagLayout();
        jButton.setLayout(gridBagLayout);
    }

    //присваеваем значения
    private static void setVars(){
        img = new BufferedImage(width,width,BufferedImage.TYPE_INT_RGB);
        g2d = (Graphics2D) img.getGraphics();
    }

    //обрабатываем функцию и устанавливаем картинку
    public static void mainMethod(){
        setVars();
        clear();
        check_drawAtAllCells();
        init();
        imageToPanel();
    }

    //пробегаемся по полю
    private static void check_drawAtAllCells(){
        for (int X = 0; X < width / zoom * accur; X++){
            for (int Y = 0; Y < width / zoom * accur; Y++){
                if (checkTheFunc(X, Y)){
                    System.out.println(Y / (width / zoom * accur / width) + " " + X / (width / zoom * accur / width));
                    X / (width / zoom * accur / width));
                    draw(X / (width / zoom * accur / width), Y / (width / zoom * accur / width));
                }
            }
        }
}

    //проверяем условие
    private static boolean checkTheFunc(int X, int Y){
        double imX = ((double) X - (double) deep) / (double) zoom;
        double imY = ((double) Y - (double) deep) / (double) zoom;
        return Math.pow((imX * imY),3) == Math.tan(imX * imY);//наше уравнение
    }

    //рисуем
    private static void draw(int X, int Y){
        g2d.setColor(Color.BLACK);
        g2d.fillRect(X - 1,Y - 1,3,3);
    }

    //сила в чистоте))
    private static void clear(){
        g2d.setColor(Color.WHITE);
        g2d.fillRect(0,0,width,width);
    }

    //задаём картинку панели
    private static void imageToPanel(){
        jButton.setIcon(new ImageIcon(img));
        jButton.setSize(width,width);
        jFrame.setVisible(true);
    }

    //определяем окно
    static JFrame getFrame(){
        JFrame jFrame = new JFrame();
        jFrame.setSize(width,width);
        jFrame.setResizable(false);
        jFrame.setLocationRelativeTo(null);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        return jFrame;
    }
}    

В код не попало, что я вызываю метод mainMethod() из Main.main(String args)


Ответы (0 шт):