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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2015, 06:21   #1
Okarin
Новичок
Джуниор
 
Регистрация: 01.10.2015
Сообщений: 1
По умолчанию Мигает анимация во фрейме

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

Есть JFrame на котором я рисую, но рисуют другие классы ( хотя может это и не важно и я что-то в корне не понимаю ), функции которых вызываются в паинте. Как исправить проблему так и не увидел в течении 4 часов.

В самом начале решил не обращать на это внимания, но видать был совсем не прав.

Исходники прикрепил.

Часть исходника:

Код:
    public void paint(Graphics graphics) {
         for (int i = 0; i < allStreets.length; ++i) {
            if (i == 0 || i == 3 || i == 6) {
                ((StreetVertical)allStreets[i]).build(graphics);
                continue;
            }
            ((StreetHorizontal)allStreets[i]).build(graphics);
        }
        crossPointTop.build(graphics);
        crossPointBottom.build(graphics); 
        trafficLightSystemTop.work(graphics);
        trafficLightSystemBottom.work(graphics);  
       Enumeration enumeration = vehicle.elements();
        while (enumeration.hasMoreElements()) {
            try {
                Car car = (Car)enumeration.nextElement();
                if (car == null) continue;
                car.drawCar(graphics);
                continue;
            }
            catch (NoSuchElementException v0) {}         
        }        
    }
 
    public void run() {
        do {
            try {
                Thread.sleep(50);
            }
            catch (InterruptedException v0) {}
            if (Thread.currentThread() != runner) continue;
            repaint();          
        } while (true);
    }
/*не помогло*/
      public void update(Graphics graphics) {
     /*
          if (this.dbImage == null) {
            this.dbImage = this.createImage(this.getSize().width, this.getSize().height);
            this.dbGraphics = this.dbImage.getGraphics();
        }
        this.dbGraphics.setColor(this.getBackground());
        this.dbGraphics.fillRect(0, 0, this.getSize().width, this.getSize().height);
        this.dbGraphics.setColor(this.getForeground());
        this.paint(this.dbGraphics);
        graphics.drawImage(this.dbImage, 0, 0, (ImageObserver)this);
     */    
    }
build-ы и work-и рисуют обьекты для формы.

Пример build-а crosspoint-a

Код:
public void build(Graphics graphics) {
        graphics.setColor(Color.black);
        graphics.fillRect(entryX, entryY, length, length);//квадрат
        graphics.setColor(Color.white);
        graphics.drawLine(entryX, entryY, entryX + length / 2, entryY);
        graphics.drawLine(entryX, entryY + length / 2, entryX, entryY +length);
        graphics.drawLine(entryX + length / 2, entryY + length, entryX + length, entryY + length);//границы
        graphics.drawLine(entryX + length, entryY, entryX + length, entryY + length / 2);
    }
Вложения
Тип файла: rar crossroad.rar (120.0 Кб, 7 просмотров)
Okarin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависание намертво мигает memok Axeltron Компьютерное железо 12 20.04.2015 22:47
мигает PaintBox Fireblade-fan Общие вопросы Delphi 11 21.12.2012 17:47
Мигает монитор Jantar Операционные системы общие вопросы 24 05.01.2012 14:43
Скриншот выделеной области экрана. Мигает при выделениии. Casper-SC Общие вопросы .NET 2 27.03.2010 11:49