Графики с JLabel для внешнего вида [нулевое расположение] Java Swing * ERROR - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь построить график студента с JLabels

мое приложение выполняет sql-запрос и возвращает значение типа int для числа записей за каждый месяц, а если не находит ни одного, возвращает 0.

//scale variable is an int

//ene is a return value from another method that runs before

//in case there are no students in january I dont have to graph anything
//so this 'if' doesnt run

Scale = 50;  

if (Ene != 0) { 

            System.out.println(Ene + " ene stdds");

// this prints out 11 ene stdds

            double EneBH = 449 * (Ene / Scale);
            int EneBHeight = (int) Math.round(EneBH);
            int EneBYLocal = 612 - EneBHeight;

            EneP.setBounds(76, EneBYLocal, 7, EneBHeight);
            EneP.setVisible(true);

        } else {

//if the last if didnt run I want to know if it hidd the label

            System.out.println("HIDDEN ENE");
            EneP.setVisible(false);
        }

https://i.stack.imgur.com/su4qS.png

* Ene P - самый первый jlabel для построения графиков, он выглядит детским серым цветом и находится в энергозоне.

* EneP распечатывает 11 учеников, но никогда не появляется, не печатает скрытые данные, просто не появляется

* EneP будет иметь тот же код, что и другие jlabels, если я решу или вы решите это, пожалуйста

1 Ответ

0 голосов
/ 10 ноября 2018

Я нашел решение для моей собственной проблемы

Решение было простым, получается, что если разделить Ene (переменную возврата из запроса, которая сохраняет как целочисленное значение) на переменную Scale, которая также является целым числом, это заставляет java возвращать 0

Итак, я обнаружил это самостоятельно, поместив system.out.print () после каждой строки и напечатав значения каждой переменной.

Я заметил, что 11/50 не должно возвращать 0, поэтому я изменил масштабную переменную на двойную и все равно вернул 0; но я изменил оба, и теперь все работает как надо.

Scale = 50;  

if (Ene != 0) { 

        System.out.println(Ene + " ene stdds");

// this prints out 11 ene stdds

        double EneBH = 449 * (Ene / Scale);
        int EneBHeight = (int) Math.round(EneBH);
        int EneBYLocal = 612 - EneBHeight;

        EneP.setBounds(76, EneBYLocal, 7, EneBHeight);
        EneP.setVisible(true);

    } else {

  //if the last if didnt run I want to know if it hidd the label

        System.out.println("HIDDEN ENE");
        EneP.setVisible(false);
    }

введите описание изображения здесь

...