Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2017, 02:35   #11
king-live
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 12
По умолчанию

Спасибо что направляете меня в правильное русло. Но давайте поговорим на чистоту. Вы знаете много из того что сказали, я не знаю ничего. Потому что только подошёл к этому "барьеру", к этому коду. И я его, этот "барьер" не перепрыгну и не обойду. Потому что ни где в инете и в книгах тоже, нету подобной темы на рассмотрение. Но эта тема, именно этот код, мне необходимо разобрать по буквам, что, где и как работает. Если я этот код пойму, то уже точно разберусь во всём остальном. Мне надо в голове уложить всю структуру ООП. Классы, методы, тело методов, переменные..... Так что если можете, разберите пожалуйста этот код, исправьте его по минимуму . Нужен будет таймер на приблизительно на пол секунды и правильная загрузка рисунка и выгрузка из памяти не нужного рисунка в бесконечном цикле. Заранее спасибо!
king-live вне форума Ответить с цитированием
Старый 24.10.2017, 03:52   #12
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Вы все путаете. Помню и я путал...

1. ООП. Это подход к написанию программ, таким образом, что некоторая сущность (объект) "сама делает что-то", например, "рисуется на экране". Есть процедурный подход, когда вы берете сущности-блоки данных и над ними выполняете действие, например, "рисуете картинку на экране". Вобщем это взаимно-вывернутая логика дробления задачи на подзадачи. Лучше их не смешивать.

2. Программирование графических интерфейсов. Может быть сделано как с помощью ООП, так и процедурно. Не важно. Главное следовать парадигме целевой ОС. Т.к. ява кроссплатформена, то в ней принята самая распространненая парадигма - есть события, приходящие от ОС. Есть цикл, читающий события. Т.к. ява ООП по дизайну, то эта парадигма раскладывается в следующее - в ф. main вы создаете корневой объект программы и запускаете цикл сообщений вызовом его метода. Дальше этот уже объект рассылает сообщения (делае вызовы калбеков или перегруженых методов) объектам-детям.

Т.о. ГУИ в яве вы конструируете, как некую иерархию объектов, которые и (или) визуально принадлежат друг-другу (т.е. получают сообщения ОС), и (или) принадлежат друг-другу с точки зрения управления памятью (а вот тут нельзя делать перекрестно - А имеет ссылку на Б и Б имеет ссылку на А).

Вобщем, если вам поучится ООП, то учитесь, скажем, в консоли - без заморочек с ГУИ пока. В консоли и циклы бесконечные можно.

Последний раз редактировалось alexzk; 24.10.2017 в 04:20.
alexzk вне форума Ответить с цитированием
Старый 25.10.2017, 02:14   #13
king-live
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
Вобщем, если вам поучится ООП, то учитесь, скажем, в консоли - без заморочек с ГУИ пока. В консоли и циклы бесконечные можно.
Доброго времени суток. В консоли я хорошо ориентируюсь, но сейчас у меня есть нагрузка, конкретно заказы, на прикладные программы связанные с графикой. А это хороший стимул для изучения материала по программированию, чем просто сидеть и изучать для себя, в консоли программирование. Мне нужна помощь именно в этой программе, и я объясню почему. Сейчас у меня очень много информации, скажем так фрагменты всей "мозаики". Но собрать я не могу эту "мозаику". Нету конкретно готовой картинки этой "мозаики". Вот нужна помощь в готовой картинке. А дальше, я уже сам семимильными шагами проследую в мир JAVA.
king-live вне форума Ответить с цитированием
Старый 25.10.2017, 03:37   #14
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от king-live Посмотреть сообщение
Доброго времени суток. В консоли я хорошо ориентируюсь, но сейчас у меня есть нагрузка, конкретно заказы, на прикладные программы связанные с графикой. А это хороший стимул для изучения материала по программированию, чем просто сидеть и изучать для себя, в консоли программирование. Мне нужна помощь именно в этой программе, и я объясню почему. Сейчас у меня очень много информации, скажем так фрагменты всей "мозаики". Но собрать я не могу эту "мозаику". Нету конкретно готовой картинки этой "мозаики". Вот нужна помощь в готовой картинке. А дальше, я уже сам семимильными шагами проследую в мир JAVA.

Но запарка-то у вас в построении графического интерфейса, а не в яве - У вас там, с точки зрения явы все норм (может вы специально хотите создавать 2-3 миллиона окон? Ну создавайте, пока память есть.), а вот с точки зрения ОС - полноценные 100% бреда.

Ну вот вам 1я ссылка из гугла

http://o7planning.org/ru/10623/javaf...-for-beginners

там осмотритесь и поймете, как добавить 2 картинки. Почитаете еще, что я перед этим писал.

Последний раз редактировалось alexzk; 25.10.2017 в 03:43.
alexzk вне форума Ответить с цитированием
Старый 27.10.2017, 21:55   #15
king-live
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 12
По умолчанию

Доброго времени суток товарищи знатоки! Я почитал и просмотрел сайт с примерами http://o7planning.org/ru/10623/javaf...-for-beginners
Но давайте будем откровенными в вопросах помощи новичкам. Новички и я в том числе просят помощи показать какие ошибки в коде и если можно исправить. Я понимаю, что отослать куда либо, чтобы посмотреть что либо это проще! Авось поймёт новичок. Но нет.... Все статьи и сайты практически не выходят за рамки Hello World или ему подобные. Как только нужно решать задачу за рамки выходящее от стандарта, сразу начинается ступор. Давайте подумаем, все ли люди одинаково мыслят и у всех ли одинаковый подход к пониманию и решению тех или иных задач. Нет, вы не найдёте ни одного одинакового решения. Так же и с усваиванием новой информации. До кого то очень трудно доходит, до кого то приходит мгновенно озарение. Но давайте будем снисходительны к тем кому трудно и помогите уже с реальным кодом. Не надо отсылать туда, где никто не поможет. Спасибо заранее! Поможете с кодом!!, и я уже разберу его по строчкам, по буквам, что и для чего нужно. И дальше я уже пойму, что надо делать и как.
king-live вне форума Ответить с цитированием
Старый 27.10.2017, 22:10   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а помочь-то с чем именно?

Вообще насчет десктопного GUI в Java мне некоторое время назад понравилось как я начал ковыряться в чистом JavaFX, а потом взял TornadoFX (это фреймворк на основе JavaFX для Kotlin) и быстро запилил неплохой прототип UI, ну и сам проект потом тоже быстро.
(быстро по сравнению не только с чистым FX, но и с другими платформами: WPF, Delphi)

На Андроиде говорят Kotlin вообще дико популярен потому что там старая Java.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.10.2017, 22:20   #17
king-live
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 12
По умолчанию

У меня код на первой странице в самом начале! Две картинки К25 и К26 расположены на диске. Они должны переключаться между собой через определённый интервал времени. Код работает с картинками, криво, не равномерно по времени, но работает. Картинки меняются между собой. Но быстро заполняет память компьютера, из за того что копируются изображения много раз. А вот как правильно выгружать картинку и загружать новую нигде не описано.
king-live вне форума Ответить с цитированием
Старый 27.10.2017, 22:48   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так тут же сказали уже. Не создавайте каждый раз новый фрейм, а просто меняйте картинки в каком-нибудь Таймере или что там есть в свинге.

Как-то так в JavaFX с Java 1.8+:
Код:
package sample;

import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.*;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class Main extends Application {
    private Image img1 = new Image("https://i.imgur.com/GCmK9TW.jpg");
    private Image img2 = new Image("https://i.imgur.com/PxgMyTS.jpg");
    private boolean isFirstImg = true;

    @Override
    public void start(Stage stage) throws Exception {
        ImageView imageView = new ImageView(img1);

        Pane pane = new Pane();
        pane.getChildren().add(imageView);
        stage.setScene(new Scene(pane));
        stage.show();

        Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(1), event -> {
            imageView.setImage(isFirstImg ? img2 : img1);
            isFirstImg = !isFirstImg;
        }));
        timeline.setCycleCount(Timeline.INDEFINITE);
        timeline.play();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение памяти под матрицу yakimechik Общие вопросы C/C++ 1 22.01.2016 08:33
Переполнение/утечка памяти программы - C# KiPiK C# (си шарп) 12 23.12.2015 12:33
JVM и новые версии Java WizarD.89 Общие вопросы по Java, Java SE, Kotlin 6 06.07.2013 11:51
выделение памяти под массив на C Kingdom_Reborn Помощь студентам 12 12.01.2011 04:40
Высвобождение памяти из под указателей Gypsy Общие вопросы Delphi 4 27.01.2010 13:53