Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 03.12.2018, 00:41   #1
almaskazymuratuly
Новичок
 
Регистрация: 03.12.2018
Сообщений: 1
Репутация: 10
По умолчанию Нужна анимация

Доброго времени суток! Столкнулся с такой проблемой в Java как анимация фигур. В общем сразу к делу : нарисовал я значит в java рисунок
Код:
package com.company;
 
import java.awt.*;
 
import javax.swing.JFrame;
import javafx.animation.TranslateTransition;
import javafx.scene.Node;
import javafx.util.Duration;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.util.Random;
 
 
public class Main{
 
 
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setTitle("Panda");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().add(new drawingprocess());
            frame.pack();
            frame.setSize(new Dimension(800, 600));
            frame.setVisible(true);
 
 
    }
}
а вот код для класса (создайте класс и вставьте туда)
Код:

package com.company;
 
import javax.swing.*;
import java.awt.*;
 
import static javafx.scene.transform.Transform.rotate;
 
public class drawingprocess extends JPanel {
 
    final int width = 700, height = 700;
 
    public drawingprocess(){
        setPreferredSize(new Dimension(width, height));
        setBackground(Color.white);
 
    }
    public void paintComponent(Graphics g){
        super.paintComponent(g);
 
        g.setColor(Color.GRAY);
        g.fillOval(150,450,350,80);
        g.fillOval(80,470,200,80);
        g.fillOval(80,525,50,30);
        g.fillOval(220,525,50,30);
        g.fillOval(190,450,60,100);
        g.fillOval(370,445,60,60);
        g.fillOval(270,445,60,80);
 
 
        g.setColor(Color.BLACK);
        g.fillOval(90,200,250,220);
        g.fillOval(160,185,250,230);
 
        g.fillOval(100, 290,80, 200);
        g.fillOval(330, 280,80, 200);
 
 
        g.setColor(Color.WHITE);
        g.fillOval(150,195,200,200);
 
        g.setColor(Color.BLACK);
        g.fillOval(220, 300,80, 200);
        g.setColor(Color.BLACK);
        g.fillOval(100,200,200,200);
 
        g.setColor(Color.BLACK);
        g.fillOval(180,145,80,80);
        g.fillOval(30,145,80,80);
 
        g.setColor(Color.WHITE);
        g.fillOval(50,170,200,200);
        g.setColor(Color.BLACK);
        g.drawOval(50,170,200,200);
 
 
        g.setColor(Color.BLACK);
        g.fillOval(70, 220, 60, 80);
        g.fillOval(170, 220, 60, 80);
 
        g.setColor(Color.CYAN);
        g.fillOval(180,242,30,30);
        g.fillOval(90,242,30,30);
 
        g.setColor(Color.BLACK);
        g.fillOval(182,247,20,20);
        g.fillOval(98,247,20,20);
 
        g.setColor(Color.WHITE);
        g.fillOval(195,247,10,10);
        g.fillOval(95,247,10,10);
 
        g.setColor(Color.BLACK);
        g.drawOval(195,247,10,10);
        g.drawOval(95,247,10,10);
 
 
        g.drawOval(145,290,40,50);
        g.drawOval(120,290,40,50);
        g.drawOval(145,291,40,50);
        g.drawOval(120,291,40,50);
        g.drawOval(145,292,40,50);
        g.drawOval(120,292,40,50);
 
 
 
 
        g.setColor(Color.WHITE);
        g.fillOval(110,285,80,50);
 
        g.setColor(Color.BLACK);
        int [] a = {133, 153, 173};
        int [] b = {310, 337, 310};
        g.fillPolygon(a,b,3);
 
 
 
    }
 
 
}
и теперь нужно его как-то анимировать. Ну там что бы он ушками подергал, глазами поморгал или делал что-нибудь во время клика по голове. Заранее спасибо!
almaskazymuratuly вне форума   Ответить с цитированием
Старый 04.12.2018, 02:57   #2
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,438
Репутация: 1021
По умолчанию

В простейшем виде как-то так:
Код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
 
import static javafx.scene.transform.Transform.rotate;
 
public class drawingprocess extends JPanel implements MouseListener {
 
    final int width = 700, height = 700;
    boolean pressed;
 
    public drawingprocess(){
        setPreferredSize(new Dimension(width, height));
        setBackground(Color.white);
        pressed = false;
        addMouseListener(this);    
    }

    public void paintComponent(Graphics g){
        super.paintComponent(g);
 
        g.setColor(Color.GRAY);
        g.fillOval(150,450,350,80);
        g.fillOval(80,470,200,80);
        g.fillOval(80,525,50,30);
        g.fillOval(220,525,50,30);
        g.fillOval(190,450,60,100);
        g.fillOval(370,445,60,60);
        g.fillOval(270,445,60,80);
 
        g.setColor(Color.BLACK);
        g.fillOval(90,200,250,220);
        g.fillOval(160,185,250,230);
 
        g.fillOval(100, 290,80, 200);
        g.fillOval(330, 280,80, 200);
 
        g.setColor(Color.WHITE);
        g.fillOval(150,195,200,200);
 
        g.setColor(Color.BLACK);
        g.fillOval(220, 300,80, 200);
        g.setColor(Color.BLACK);
        g.fillOval(100,200,200,200);
 
        g.setColor(Color.BLACK);
        g.fillOval(180,145,80,80);
        g.fillOval(30,145,80,80);
 
        g.setColor(Color.WHITE);
        g.fillOval(50,170,200,200);
        g.setColor(Color.BLACK);
        g.drawOval(50,170,200,200);
 
        g.setColor(Color.BLACK);
        g.fillOval(70, 220, 60, 80);
        g.fillOval(170, 220, 60, 80);
 
        g.setColor(Color.CYAN);
        g.fillOval(180,242,30,30);
        g.fillOval(90,242,30,30);
 
        g.setColor(Color.BLACK);
        g.fillOval(182,pressed ? 240 : 247,20,20);
        g.fillOval(98,pressed ? 240 : 247,20,20);
 
        g.setColor(Color.WHITE);
        g.fillOval(195,247,10,10);
        g.fillOval(95,247,10,10);
 
        g.setColor(Color.BLACK);
        g.drawOval(195,247,10,10);
        g.drawOval(95,247,10,10);
 
        g.drawOval(145,290,40,50);
        g.drawOval(120,290,40,50);
        g.drawOval(145,291,40,50);
        g.drawOval(120,291,40,50);
        g.drawOval(145,292,40,50);
        g.drawOval(120,292,40,50);
 
        g.setColor(Color.WHITE);
        g.fillOval(110,285,80,50);
 
        g.setColor(Color.BLACK);
        int [] a = {133, 153, 173};
        int [] b = {310, 337, 310};
        g.fillPolygon(a,b,3);
 
    } 

    public void mousePressed(MouseEvent e) {
        pressed = true;
        repaint();
    }

    public void mouseReleased(MouseEvent e) {
        pressed = false;
        repaint();
    }

    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }

    public void mouseClicked(MouseEvent e) {
    }
}
Дальше по вкусу допиливайте
Black Fregat вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация в Pascal ABC - закат солнца. (Очень нужна помощь, доделать программу) Господин Никто Паскаль 5 28.05.2015 14:11
анимация serj-07 Общие вопросы Delphi 17 10.01.2010 11:39
Анимация нужна помощь selestenka Паскаль 3 13.04.2009 15:31
анимация в с++ True_girl Помощь студентам 7 01.03.2009 19:57


11:46.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.