Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 24.08.2018
Сообщений: 12

Анимация

18.11.2018, 20:35. Показов 1475. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Color; 
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
 
 
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class Main {
    public static void main(String[] args) {
        new Thread(Start::new).start();
   
    }
}
 
 
class SizedFrame extends JFrame{
    Toolkit kit = Toolkit.getDefaultToolkit();
    Image iconimage = kit.getImage("icon.png");
    SizedFrame() {
        setSize(1000,800);
        setLocation(400,150);
        setTitle("ClikerWars");
        setIconImage(iconimage);
        JButton click = new JButton("Удар!");
        ActionListener dmgclick = new Clickdmg();
        click.addActionListener(dmgclick);
        click.setSize(300,300);
        click.setLocation(0,0);
        CoutClicks coutclick = new CoutClicks();
    
        add(click);
        add(coutclick);
    
        setVisible(true);
        click.repaint();
    }
}
 
 
class Clickdmg implements ActionListener{
    static int x = 0;// пеpеменная для создания лишь 1ого окна
    static SizedFrame frame;
    Mob1 mob1 = new Mob1();
    Mob1dmg mob1dmg = new Mob1dmg();
    Timer timer = new Timer();
    public void actionPerformed(ActionEvent e) {
    if (x == 0) {   
    frame = new SizedFrame();
    frame.add(mob1);
    }
    
    frame.add(mob1dmg);
    mob1dmg.setVisible(true);
    mob1dmg.repaint();
    timer.start();
    frame.remove(mob1dmg);
    mob1.setVisible(true);
    
    
    
    
    CoutClicks.cout++;
    x++;
    frame.repaint();
    }
}
class Start {
    Start(){
        Clickdmg start = new Clickdmg();
        start.actionPerformed(null);
    }
}
class Timer {
   void start () {
        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
}
Создав такой не хитрый код , хотел добиться результата такого :
Жмякаешь на кнопку , происходит замена одной картинки на другую , буквально на мгновение, а потом возвращается
первоначальная , однако такого результата попросту нет!
Плюс ко всему этому ,когда я вписываю в код строку
Java
1
 frame.add(mob1dmg);
Добавляющую картинку для смены первой, первой просто нету!
Вместо изображения ничего!
Однако со стороны кода все написано правильно(наверно).
p.s. Пишу на Яве не давно , если есть какие-то ошибки или не верное оформление , напишите пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2018, 20:35
Ответы с готовыми решениями:

Анимация
Кот у меня чистая панель. Как мне туда добавить картинку, а потом наложить дополнительную анимацию (например круги расходяться)? Скажите...

Анимация
Создал спрайтовую анимацию Класс GameScreen import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; ...

Анимация
Доброго времени суток, как привести это в движение. Проблема в том, что эти 3 фигуры с разными координатами. Graphics2D...

1
 Аватар для Alradalion
132 / 126 / 85
Регистрация: 13.09.2013
Сообщений: 485
19.11.2018, 01:37
Вот такую штуку накидал. Насколько оптимально - не знаю, давно уже не работал с интерфейсом.
Основной упор - на Timer
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package my;
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
 
 
public class ImageExample extends JComponent implements ActionListener {
    private Timer timer;
    private Image npc = null;
    private Image damageNpc = null;
    private String currentImg = "npc";
 
 
    public ImageExample(String npcFile, String damageNpcFile, int delay) {
        timer = new Timer(delay, this);
        setPreferredSize(new Dimension(500, 500));
        npc = new ImageIcon(npcFile).getImage();
        damageNpc = new ImageIcon(damageNpcFile).getImage();
    }
 
    public void start() {
        timer.start();
    }
 
    public void stop() {
        timer.stop();
    }
 
    @Override
    public void actionPerformed(ActionEvent arg0) {
        repaint();
    }
 
    @Override
    protected void paintComponent(Graphics g) {
        if ("npc".equals(currentImg)) {
            g.drawImage(damageNpc, 0, 0, null);
            currentImg = "damageNpc";
            return;
        }
        if ("damageNpc".equals(currentImg)) {
            g.drawImage(npc, 0, 0, null);
            currentImg="npc";
            stop();
        }
    }
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame("Image Example");
                JPanel panel = new JPanel();
                final ImageExample imageExample = new ImageExample("G:\\Документы\\Изображения\\значки\\wolf.png" ,"G:\\Документы\\Изображения\\значки\\wolf1.png", 200);
                panel.add(imageExample);
                frame.getContentPane().add(panel);
                final JButton button = new JButton("Удар");
                button.addActionListener(new ActionListener() {
                    private boolean pulsing = false;
 
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        imageExample.start();
                    }
                });
                panel.add(button);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setSize(600, 550);
                frame.setVisible(true);
            }
        });
    }
}
Ps накидывал на скорую руку. Frame, конечно, можно вынести в отдельный класс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2018, 01:37
Помогаю со студенческими работами здесь

Анимация
Хотелось бы получить что-то вроде: Написал для этого вот такое вот: for (int i=1; i<100; i++) { ...

Анимация
Как сделать анимацию движения куба, вернее даже его полную перерисовку, а то выходит "эффект стекания". import...

Анимация
Цель: перемещение круга из одного угла окна в другой. Анимация начинается на нажатию кнопки Взяла пример, упростила, получилось: ...

Простейшая Анимация
Есть такой код, который нужно модернизировать и сделать так чтоб круг который ползет по окну отталкивался от стен этого окна и полз в...

Анимация barchart
Добрый вечер, у меня такое задание, нужно сделать сортировку массива и на каждой итерации менять график перестановок. У меня готово все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru