Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11819
Последний выпуск: 19.06.2015

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

94K
28 октября 2014 года
Evgeny23
1 / / 28.10.2014
Файл Main.java:

Код:
import javax.swing.*;
public class Main {
   
    public static void main (String[] args) {
 
        JFrame frame = new JFrame();
        Space space = new Space();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(space);
        frame.setSize(600,400);
        Obj first = new Obj(100,200);
        Obj second = new Obj();
        space.addObj(first);
        space.addObj(second);
        frame.setVisible(true);
       
        second.move(300,300);
        while(true){
 
            second.refresh();
            space.repaint();
        }
    }
 
}
Файл Obj.java:

Код:
import java.util.Date;
import java.util.*;
public class Obj{
    enum Command{
        MOVE
    }
   
 
    int x,y,id;
    int r = 20;
    long dt;
    int moveX,moveY;
    double spdX = 10;
    double spdY = 20;
    Date startTime;
 
 
    public Obj(){
        x = 50;
        y = 50;
    }
    public Obj(int x, int y){
        this.x = x;
        this.y = y;
    }      
    public void move(int x, int y){
 
 
        startTime = new Date();
        moveX = x;
        moveY = y;
 
       
    }
    public void refresh(){
       
        Date nowTime = new Date();
        dt = (nowTime.getTime() - startTime.getTime())/1000;
        startTime = nowTime;
       
 
        if (moveX>x){
            x+=spdX*dt;
        } else {
            x-=spdX*dt;
        }
 
        if (moveY>y){
            y+=spdY*dt;
        } else {
            y-=spdY*dt;
        }      
        try{
            Thread.sleep(1000);
            } catch (Exception ex ) { }
        startTime = nowTime;
 
    }
 
 
 
    public void setR(int r){
        this.r = r;
    }
    public int getR(){
        return r;
    }
 
    public void setX(int x){
        this.x = x;
    }
   
    public void setY(int y){
        this.y = y;
    }
   
    public int getX(){
        return x;
    }
   
    public int getY(){
        return y;
    }
     
}
Файл Space.java:

Код:
import java.util.ArrayList;
import javax.swing.*;
import java.awt.*;
public class Space extends JPanel{
    ArrayList<Obj> data = new ArrayList<Obj>();
    int count = 0;
    int addObj(Obj x){
        data.add(x);
        return count;
    }
 
    public void paint(Graphics g){
   
        g.setColor(Color.black);
        g.fillRect(0,0,this.getWidth(),this.getHeight());
        g.setColor(Color.green);
   
        for(int i = 0; i < data.size(); i++){
        int lefttopX = data.get(i).getX() - data.get(i).getR();
        int lefttopY = data.get(i).getY() - data.get(i).getR();
        int width = 2*data.get(i).getR();
        int height = 2*data.get(i).getR();
            g.fillOval(lefttopY,lefttopX,width, height);
        }
 
   
   
    }
   
}
Или подскажите как гуглить, что стоит почитать и прочее. Заранее спасибо!

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог