Ответы пользователя по тегу Java
  • Почему возникает ошибка javafx.scene.text.Text.setText(String)?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    because "this.patientLastName" is null


    Есть готовый api для диалогов
    Alert alert = new Alert(AlertType.INFORMATION);
    alert.setTitle("Имя окна");
    alert.setHeaderText("хедер в окне:");
    alert.setContentText("сообщение под хедером");
    alert.showAndWait();
    Ответ написан
    Комментировать
  • Как правильно обратиться к переменной?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Еле кровь с глаз и клавиатуры оттер.
    У вас крайне бесполезная мешанина, кратко что не так:
    1) static нужно избегать всеми возможными путями. Представьте что у вас будет если вы захотите создать еще один экземпляр Field, они будут мешать друг другу.
    2) Класс Field не несет практического смысла т.к. все что можно и нельзя static.
    3) Класс должен выполнять максимально возможную "узкую" логику
    4) Что ,s общаться с классами нужно использовать getЧтоТо для получения и setЧтоТо для задания параметров и действий.
    5) Давайте максимально осмысленные названия всему, но без фанатизма

    Если не совсем полностью правильно но пока еще просто(без интерфейсов и фабрик) максимально близко к вашему должно быть как то так:
    public class Main {
        public static void main(String[] args) {
            Scanner len=new Scanner(System.in);
            System.out.println("Введите размерность матрицы");
            int lengh = len.nextInt();
            Field field1 = new Field(lengh);
            System.out.println(field1.toString()());
            System.out.println(field1.getDeterminant());
    }

    И класс сам:
    public class Field {
        private int lgth;
        private int a[][];
        public Field(int lengh){
            lgth = lenght;
            a=new int[lgth][lgth];
            for (int i=0;i < a.length-1;i++){
                for (int j=0;j < a[i].length-1;j++){
                    a[i][j]=(int)(Math.random()*10);
                }
            }
        }
    
        public int getDeterminant(){
            switch(lght):
    		case 1: return determinant1();
    		case 2: return determinant2();
    		case 3: return determinant3();
    		default: return -1; //Если не реализовано
        }
    	
        private int determinant1(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        private int determinant2(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        private int determinant3(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        @Override
        public String toString(){
           String str ="";
           for (int i=0;i < a.length-1;i++){
                for (int j=0;j < a[i].length-1;j++){
                    str+=(a[i][j]+" ");
                }
                str+="\n";
            }
            return str;
        }
    }
    Ответ написан
    1 комментарий
  • Как правильно составить путь до файла?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    java.io.IOException: The filename, directory name, or volume label syntax is incorrect

    имя файла, имя директории, или имя тома некорректно.

    В официальной документации Log4J 2 сказано, что

    fileName String The name of the file to write to. If the file, or any of its parent directories, do not exist, they will be created.

    что означает, если файл отсутствует по заданному пути, он будет создан. По каким правилам тогда задается путь?

    Отлично, но есть еще ограничения имен самой ОС и\или ФС в ней.
    В Windows это \/:*?<>"|
    Также есть ограничения и в самих словах и по ссылке выше найдете и их.
    В общем это не проблема самой java, и вообще не проблема, это ограничения ФС и ОС.
    Ответ написан
  • Как выполнить скомпилированный Java класс на Android?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Вам нужен jdk\jre, для termux были порты.
    Ответ написан
  • Кто может помочь с моим paint на Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Тупой способ:
    1) перед началом рисования полностью копируете весь холст без новой фигуры. Т.е. в момент тыка мышкой.
    ...
    2) Вставляете на основной холст чистую копию без фигуры
    3) Рисуете прямоугольник
    g2.setColor(Color.white);
    g2.drawRect(startX, startY, endX, endY);


    По правильному, за которое вам не оторвут руки.
    Перед рисованием фигуры поверх холста делаете прозрачный холст и рисуете уже на нем. Как только нарисовали сводим полученное в результат.
    Ответ написан
  • Возможно ли использование уникального примитива или вроде того?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    public abstract class UserProperty<T> {
      private String propertyName;
      private T propertyValue;
    
      public UserProperty(String propertyName, T propertyValue) {
        this.propertyName = propertyName;
        this.propertyValue = propertyValue;
      }
    }
    
    Гдето там нареализуете класс до нормально
    public class UserPropertyString extends UserProperty<String>{
    }
    или
    public class UserPropertyBoolean extends UserProperty<Boolean>{
    }
    и т.д.
    Ответ написан
    Комментировать
  • На Java программируют микроконтроллеры?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Пишут, есть как выше писали кучи embed'а, есть еще java me которая тоже используется. Как пример в sim картах (те что в телефонах и те что в банковских картах) код написан на java. Но нужно понимать что по факту внутри крутится java runtime написанный на томже с\с++ а уже внутри java приложение.
    Ответ написан
    Комментировать
  • Как получить изображение с камеры с помощью usb4java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Что вы подразумеваете в подходе с usb4java?
    Если вам надо получить именно изображение то это вполне тривиальный и стандартный путь т.к. камера определяется в ОС и дает стандартный доступ к ней.
    usb4java нужна если вы собрались общаться с железкой напрямую.
    Ответ написан
    1 комментарий
  • Как реализуются интерфеинтерфесы в Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Видимо не достаточно понимаете =)
    Когда вы имплементируете интерфейс, к примеру Runnable, то вы реализуете метод run(). Вы его не переопределяете а реализуете, это не одно и тоже с переопределением. В JAVA есть класс Thread в котором объявлено что он знает интерфейс Runnable(вполне конкретный) и что в нем совершенно точно есть реализация метода run(), других методов которые не объявлены в интерфейсе не знает.
    Например если вы создатите свой интерфейс:
    interface MyRunnable{
          void run(); 
    }

    То класс Thread никак не будет знать что это и что с ним делать и пошлет вас в веселую пешую прогулку.
    Даже если вы создатите "однофамильца":
    interface Runnable{
          void run(); 
    }

    То класс Thread никак не будет знать что это и что с ним делать и пошлет вас в веселую пешую прогулку. Потому что это не реализация java.lang.runnable.
    Зато такой момент сработает:
    interface MyRunnable extends Runnable{
          void some(); //Обратите внимание что тут уже run нельзя объявить т.к. он объявлен в  Runnable
    }

    и при реализации этого интерфейса вас заставят реализовывать уже 2 метода
    class CoolRunnable implements MyRunnable{
          void some(){System.out.print("some from MyRunnable")} 
          void run(){System.out.print("run from Runnable")} 
    }

    И в этом случае класс Thread увидит что класс CoolRunnable реализует интерфейс Runnable в котором есть метод run() о котором он знает и который ему нужен. Метод some() он не увидит. При запуске соответственно он выведет только "run from Runnable".

    Если попробовать на пальцах объяснить так сказать по аналогии с чемто. Скажем вы класс который может нажимать на левую кнопку мыши. Ничего другого вам не объясняли. Т.е. вам дали описание что это называется мышь и на котором есть кнопка слева и которую нужно нажать. Теперь любой производитель берет это описание и реализует мышь с левой кнопкой. Каждый свою, из разного материала, с разными механизмами кнопки и принципами работы, разной формы, и даже с кучей других кнопок. Все они попадают к вам, вы смотрите что конкретный экземпляр мыши реализован по описание которое вы знаете, кроме того это именно то описание что у вас а не одноименное. На основе этого вы признаете что эта вещь вам подходит и начинаете нажимать левую кнопку мыши на любой такой мышке которую вам дадут. Если же приходит другой предмет то вы ломаете палец, потом руку и умираете от потери крови с криками что это не по описанию что у вас есть.
    Ответ написан
    Комментировать
  • Почему нельзя создавать экземпляр класса в initialize() другого класса?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    initialize не для этих целей предназначен. Для начала почитайте как устроена JavaFX, удивитесь но уведите новое слово MVC.
    Когда придет понимание,устройства то поймете что как минимум нужно разделить хотябы на 2 части каждую форму, конкретно на model и ( комбинированный view и controller). В этом случае у вас Модель будет хранить данные, их состояние и оперировать ими. Комбинированный View\Controller будет содержать саму форму(View) и контроллер(Controller) прослойка соединяющая model с view. и привязывающая события(кнопку нажали или данные изменились) в обе стороны.

    Конкретно приведенный вами код это чепуха и работать она не будет. У вас уже Существует текущая сцена и предполагаю SceneSecondary , а вы создаете еще один SceneSecondary который никак не связан с первым т.к. это абсолютно разные сцены.

    Ну и перед тем как писать с возмущениями что это единственное решение (опять откуда то лично вами надуманное) можете сами себе ответить что делать, читайте азы и вопросы сами собой отпадут и времени потратите гораздо меньше чем гугление непонятного и написание непонятного и глупого вопроса.
    Ответ написан
    Комментировать
  • Возможно ли где-нибудь найти программиста, который будет работать за опыт и идею?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Привет, у меня появилась идея построить дом мечты и я не знаю, где можно найти строителя, который готов стать участником стройки, работая за идею и опыт, если у кого-то есть идеи или кто-то хочет попробовать, пишете мне в личку, я скажу, в чем крутость моей постройки.
    Ответ написан
    Комментировать
  • Как копировать GIF с сайта и вывести в JavaFX?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Ну так и реализуйте, стягивайте нужный файлик куда нибудь локально, скажем в %temp% и оттуда его отображаете в imageview. Чтобы каждый раз не перекачивать делайте проверку на наличие файла и совпадение размера.
    Т.е. есть url картинки, есть место где лежит ваш кэш, смотрите сначала по названию есть или нет файл, затем по размеру файла который хранится в кэше и на сайте, если один и тот же то просто отображаете а если отличается или файла нет то грузите в кэш. В случае отсутствия инета просто тупо берете картинку из кэша а если нет и инета и этой картинки в кэше то отображаете заглушку из ресурсов которые идут с программой вашей.
    Ответ написан
    Комментировать
  • Почему своя реализация system.arraycopy быстрее на 30%, учебники врут?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Да ваш вариант медленнее и в оракл не идиоты и в книгах не врут. Вопрос почему , да потому что вы не копируете ничего, вы копируете ссылки на объекты.
    Из этого делайте выводы, вы инициализировали массив что будет медленно т.к. выделяется память и т.д. .Дальше ваш метод "просто взял ссылки на готовые данные". А следом нативная реализация которая выделяет память указанного объема и копирует туда данные а не ссылки.
    Ну и да, Ваш код можете свернуть в трубочку и тихо рыдать в углу, продолжая читать дальше только уже не только про ЯП но и его устройство.
    Ответ написан
    Комментировать
  • Как здесь работает this?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Вы создали класс SimpleGuilB и имплементировали в него интерфейс ActionListener который говорит о том что необходимо реализовать метод actionPerformed().
    Дальше в вашем классе SimpleGuilB вы говорите button.addActionListener() т.е. сообщаете кнопке куда должны передаться события от кнопки и как аргумент сообщаете this. This говорит о том что грубо говоря "я\меня" т.е. именно этот созданный экземпляр класса SimpleGuilB который реализовал ActionListener .

    Т.е. проще говоря this внутри класса говорит что это "я\меня\мое\у меня" у экземпляра.
    В другом случае вы могли создать реализацию ActionListener примерно так
    public class SimpleGuilB{ 
    ... код
    public void go(){
    ...
    button.addActionListener(new ButLister()); 
    }
    }
    
    public class ButLister implements ActionListener{
    public void actionPerformed(ActionEvent event){
            System.out.println("fjgji");
        }
    }
    Ответ написан
    1 комментарий
  • Как переобразовать hashCode обратно в строку?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Технически можно обратить но практически, в зависимости от алгоритма, вероятнее всего это будет брутфорс. Почитайте о "Теореме о бесконечных обезьянах". Т.е. условно говоря хэш 1\2\3\4\5 значного числа вы найдете довольно быстро, а вот что то сложнее ...
    На эту тему, точнее схожую, на хабре был забавный, а главное практический прикол с файловой системой которая все хранит в числе pi, а как известно абсолютно все известное и нет существует в числе pi.
    Ответ написан
    1 комментарий
  • Какую версию Java(JDK) лучше всего выбрать для обучения?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Java 8. Еще до 2025 года будет поддерживаться.
    7 версия проживет еще до 2022 года.
    Плюсы 8ки, кровавый энтерпрайз едва только на нее переползает. Нет сложностей для новичка в виде модулей, из коробки присутствует javafx.
    В общем на данный момент лучше именно 8ки учить, на данный момент самая ходовая везде, даже в том же андроиде скрипя зубами.
    Ответ написан
    Комментировать
  • Как купить и прикрутить SSL сертификат для самописного REST сервиса?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    nginx в роли прокси и в него сертификат от letsencrypt.
    Ответ написан
    Комментировать
  • Есть ли возможность использовать Android JNI в обычном Java приложении?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    С чего вы решили что вот так просто можно взять нативные библиотеки и перетащить их с одной платформы на другую без пересборки.
    1) Необходимо чтобы совпадали архитектуры.
    2) Необходимо чтобы совпадало окружение, т.е. ядро системы(если задействованы оттуда вызовы), библиотеки вокруг(опять же их версии и то что они не изменены в угоду конкретной ОС).
    3) Соблюдены внешние API системы.

    Условно вы можете подсунуть часть библиотек которые обычные(если это так и они не изменены):
    liblog.so - могу ошибаться но это чисто андроидная либа и под обычным линуксом используется частично для какразтаки сборки нативных приложух под андроид но не как зависимость библиотек на линуксе.
    libz.so - это zlib
    libm.so - это часть libc. Снова лотерея, библиотека монструозная и можно сказать это второе ядро системы.
    libc.so - см. libm.so
    libdl.so - см. libm.so
    libstdc++.so - даже думать не надо, легко найдете но опять же подойдет ли?
    Места где они ищутся и под какими именами можете просимлинкать.

    Можете представить что пытаетесь пересадить карбюратор ВАЗ на какой нибудь FIAT.
    Ответ написан
    Комментировать
  • Как сделать чтобы заработал opengl через jni в android?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Комментировать
  • Как сделать защищённую базу данных SQLite в Java приложении?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Если в условиях стоит что кто то именно украдет\получит бд.
    Шифруйте базу, пароль привязывайте к уникальному чемуто этого железа. К примеру некий хэш из mac+цп пк+sn hdd. Если сопрут то надо будет как минимум еще и узнать все необходимые данные из чего собирается пароль.
    Ответ написан
    Комментировать