Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458

Как поместить анимацию на JPanel?

03.06.2017, 11:50. Показов 1947. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет как можно поместить анимацию на JPanel? Т.е. анимация по умолчанию помещается во JFrame так? И вот, как мне поместить анимацию из JFrame на JPanel?
Вот обычный код с простенькой программой анимации по середине(В центральной части фрейма шарик перемещается из одного угла в другой) и кнопками по бокам.
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
97
98
99
100
101
102
103
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
public class JavaApplication12 {
    JButton button,button2;
    JFrame frame;
    int x = 70;
    int y = 70;
    
    
    public static void main(String[] args) {
        JavaApplication12 gui = new JavaApplication12();
        gui.go();
    }
    
    
    
    class MyDrawPanel extends JPanel implements ActionListener { 
        @Override                                   
public void actionPerformed(ActionEvent e) {
    new Thread(() -> {                      
        for (int i = 0; i < 130; i++) {     
            if((x&y)<200){
                x++;                            
                y++;
            }
            
            this.repaint();                 
            try {                           
                Thread.sleep(50);           
            } catch (Exception ex) {        
            }                               
        }
        
    }).start();                             
}
 
     
    @Override
    public void paintComponent(Graphics g){
        g.setColor(Color.white); 
        g.fillRect(0,0, this.getWidth(), this.getHeight());
        
        g.setColor(Color.green); 
        g.fillOval(x,y,40,40); 
 
    }
 
 
    }
    
    
    class Second extends JPanel implements ActionListener {
        void restart(){
            x = 70;
            y = 70;
            drawPanel.repaint();
        }
 
        @Override
        public void actionPerformed(ActionEvent e) {
            sec.restart();
        }
    }
    Second sec = new Second();
    MyDrawPanel drawPanel = new MyDrawPanel();
    
    public void go(){
        frame = new JFrame();
        JPanel panel,panel2; 
        panel = new JPanel();
        panel2 = new JPanel();
        panel.setBackground(Color.darkGray);
        panel2.setBackground(Color.gray);
        
        button = new JButton("Click me");
        button2 = new JButton("Restart");
        Font bigFont = new Font ("serif" , Font.BOLD, 20); 
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); 
        button.setFont(bigFont);
        button2.setFont(bigFont);
        panel.add(button);
        //panel.add(button2);
        panel2.add(button2);
        
        frame.getContentPane().add(drawPanel);
        frame.getContentPane().add(panel2, BorderLayout.WEST);
        
        button.addActionListener(drawPanel);
        button2.addActionListener((ActionListener) sec);
        
 
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(panel, BorderLayout.EAST);
 
        frame.setSize(580,320);
        frame.setVisible(true);
        
    }
 
}
Так вот как можно добавить анимацию из центральной части JFrame на левую панель?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2017, 11:50
Ответы с готовыми решениями:

Как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel
Подскажите как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel, задание размеров при помощи setSize...

Можно ли поместить gif-анимацию в проект?
можно ли поместить анимацию в проект? если да, то как? или все-таки нужно зацикливать несколько картинок?

Добавление JPanel на JPanel, не отображаются те, которые добавлены сверху
Здравствуйте. У меня есть панель fon на которой у меня картинка с фоном и 15 панелей на которых нарисованы шарики,пытаюсь добавить панели с...

2
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
03.06.2017, 16:36
Кликните здесь для просмотра всего текста
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
97
98
99
100
101
102
103
104
105
106
107
108
package swing;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
public class JavaApplication12 {
    JButton button,button2;
    JFrame frame;
    int x = 70;
    int y = 70;
 
 
    public static void main(String[] args) {
        JavaApplication12 gui = new JavaApplication12();
        gui.go();
    }
 
 
 
    class MyDrawPanel extends JPanel implements ActionListener {
        @Override
public void actionPerformed(ActionEvent e) {
    new Thread(() -> {
        for (int i = 0; i < 130; i++) {
            if((x&y)<200){
                x++;
                y++;
            }
 
            this.repaint();
            try {
                Thread.sleep(50);
            } catch (Exception ex) {
            }
        }
 
    }).start();
}
 
 
    @Override
    public void paintComponent(Graphics g){
        g.setColor(Color.white);
        g.fillRect(0,0, this.getWidth(), this.getHeight());
 
        g.setColor(Color.green);
        g.fillOval(x,y,40,40);
 
    }
 
 
    }
 
 
    class Second extends JPanel implements ActionListener {
        void restart(){
            x = 70;
            y = 70;
            drawPanel.repaint();
        }
 
        @Override
        public void actionPerformed(ActionEvent e) {
            sec.restart();
        }
    }
    Second sec = new Second();
    MyDrawPanel drawPanel = new MyDrawPanel();
 
    public void go(){
        frame = new JFrame();
        JPanel panel,panel2;
        panel = new JPanel();
        panel2 = new JPanel();
        panel.setBackground(Color.darkGray);
        panel2.setBackground(Color.gray);
 
        button = new JButton("Click me");
        button2 = new JButton("Restart");
        Font bigFont = new Font ("serif" , Font.BOLD, 20);
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        button.setFont(bigFont);
        button2.setFont(bigFont);
        panel.add(button);
        //panel.add(button2);
        panel2.add(button2);
 
 
        button.addActionListener(drawPanel);
        button2.addActionListener((ActionListener) sec);
 
        frame.setLayout(new GridLayout(2,2));
 
        frame.add(panel2);
        frame.add(panel);
        frame.add(drawPanel);
 
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 
        frame.setSize(580,720);
        frame.setVisible(true);
 
    }
 
}

Посмотрите код. У Вас уже анимация выделена в отдельную панель.
Я просто разделил JFrame на 4 окошка и в каждое засунул свою панель.
1
 Аватар для Maxim09
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
03.06.2017, 16:52  [ТС]
А почему когда я добавляю анимацию круга на левую часть фрейма то "по моему" размер этой анимации сужается?
Java
1
2
panel2.add(drawPanel);
frame.getContentPane().add(panel2, BorderLayout.WEST);
Т.е. я понимаю что анимация уже на панели НО почему анимация отображается корректно только в центральной части JFrame'а?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2017, 16:52
Помогаю со студенческими работами здесь

Удаление JPanel кнопкой на этом же JPanel
Есть JPanel объекты, которые представляют собой панельки с какой - то информацией, на них есть кнопка. Как сделать так, чтобы при нажатии...

Замена JPanel на JPanel в JFrame
У меня есть 3 класса. Первый класс Main наследуется от JFrame и в конструкторе установка размера и добавление JPanel второго класса....

JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Где ошибка?
JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Label label=new JLabel(' '); ...

Как закрыть jpanel
Как закрыть jPanel? Специальная клавиша, закрывающая панель. Пропишите пожалуйста код, закрывающий панель!!! Панель скрыта. В пункте...

Как нарисовать градиент на JPanel
Доброго времени суток!!! Хочется сделать все красиво, но опыта пока еще не много, а сделать хочется. Помогите. Как на JPanel...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru