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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2017, 12:04   #1
GUI
 
Регистрация: 13.02.2017
Сообщений: 8
По умолчанию глюки при перемещение компонента

доброго времени суток.

Доброго времени суток.

Проблема следующая: при перемещении изображения оно оставляет след из своих многочисленных копий наложенных друг на друга. Ниже привожу код:

перемещается объект вот этого класса:
Код:
package viewPG;

import java.awt.image.*;
import java.awt.*;
import javax.swing.*;
import java.io.File;
import javax.imageio.ImageIO;
import modelPG.IMove;
import modelPG.Model;

class Person extends JPanel implements IMove{

    private Image image; 

    Person(Model model) {
        try {
            image = ImageIO.read(new File(View.path + "wizard.png"));
        } catch(Exception e) {
        }

        setSize(model.getWidthPerson(), model.getHeightPerson());
        model.addMoveListener(this);
    }

    public void paintComponent(Graphics g) {
        g.drawImage(image, 0, 0, null);
    } 

    //метод newPoz вызывается из другого потока
    public void newPoz(int x, int y) {
        setLocation(x, y);
    }

}
Задний фон:
Код:
package viewPG;

import java.awt.image.*;
import java.awt.*;
import javax.swing.*;
import java.io.File;
import javax.imageio.ImageIO;
import modelPG.mapPG.MapObject;
import modelPG.Model;

class Map extends JPanel{

    private int width;
    private int height;
    private int countCellInRow;
    private int countCellInColumn;
    private Image[][] images;
    private Model model;

    Map(Model model) {
        this.model = model;
        this.width = model.getWidthMap();
        this.height = model.getHeightMap();
        this.countCellInRow = model.getCountCellInRow();
        this.countCellInColumn = model.getCountCellInColumn();

        setSize(width, height);

        images = new Image[countCellInColumn][countCellInRow];

       assembleMap();
    }

    //часть кода пропущена  

    public void paintComponent(Graphics g) {
        for(int y = 0; y < countCellInColumn; y++) {
            for(int x = 0; x < countCellInRow; x++) {
                if(images[y][x] != null) {
                    int pozX = model.getCellInRowAndColumn(x, y).CENTER_X 
                             - images[y][x].getWidth(null) / 2;
                    int pozY = model.getCellInRowAndColumn(x, y).CENTER_Y
                             - images[y][x].getHeight(null);
                    g.drawImage(images[y][x], pozX, pozY, null);
                }
            }
        }
    }

}
Объекты обоих классов создаются здесь:
Код:
package viewPG;

import java.awt.image.*;
import java.awt.*;
import javax.swing.*;
import java.io.File;
import javax.imageio.ImageIO;
import modelPG.Model;

public class View extends JPanel{

    private Model model;
    private Container container;
    private Map map;
    private Person person;
    static String path =  "D:/graphicsPG/mapPG/src/graphicsPG/";

    public View(Model model, Container container) {
        this.model = model;
        this.container = container;

        map = new Map(model);
        person = new Person(model);

        container.add(map);
        container.add(person);
    }

}

Последний раз редактировалось GUI; 14.02.2017 в 10:57.
GUI вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение компонента по форме Janger Общие вопросы Delphi 3 06.10.2016 06:56
Перемещение компонента влево-вправо JDel Общие вопросы Delphi 3 20.12.2011 00:05
[Delphi]Перемещение компонента к щелчку мыши. Fiery Fox Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 07.03.2010 10:01
перемещение компонента по форме blackstersl Общие вопросы Delphi 4 15.08.2009 22:16
RichView | sRichViewEdit.InsertControl - глюки со вставкой компонента NiceGrid chandrasecar Компоненты Delphi 0 23.07.2009 15:57