Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 2
Регистрация: 17.10.2013
Сообщений: 131

не могу сделать перерисовку(только начинаю)

18.12.2013, 10:16. Показов 502. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.Сделал апплет.Работает.Показавает поочередно три гифки в окне,смена при клике мышкой.
Но перерисоваваю все окно.Видно мерцание.Пробовал-
Bash
1
2
3
4
5
6
public void update(Graphics g){
    // Задаем прямоугольник для перерисовки.
    g.clipRect(, , , );
    // Вызываем перерисовку.
    paint(g);
  }
Что-то не получается.Подскажите,пожалуйста,как это сделать.Весь код(небольшой) ниже.Заранее спасибо.





Bash
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
import java.awt.*;
import java.applet.*;
import java.awt.event.*;// Подключаем события мыши.
//-----------------------------------------------------
 
public class game// Основной класс апплета.
   extends Applet
  implements Runnable, MouseListener {
  Thread t;  // Поток.
  int x, y; // Координаты 
  Image pt1, pt2,pt3;// Два изображения 
  int period = 1000;// Частота перемещения
  int points = 1;//Число просмотров.
  int imgNumber = 1; // Номер показываемой картинки.
 
//-----------------------------------------------------
 
  public void run() {
    while (true) {
      try {
 
        x = (int) (Math.random() * 400); // Меняем случайным образом координаты 
        y = (int) (Math.random() * 300);
 
        repaint(); //Вызываем перерисовку.
        t.sleep(period);
      }
      catch (InterruptedException e) {
      }
    }
  }
 
//-----------------------------------------------------
 
  public void init() {
    addMouseListener(this);
    pt1 = getImage(getDocumentBase(), "pt1.gif");
    pt2 = getImage(getDocumentBase(), "pt2.gif");
    pt3 = getImage(getDocumentBase(), "pt3.gif");
 
    t = new Thread(this);
    t.start();
  }
 
//-----------------------------------------------------
 
  public void paint(Graphics g) {
    // Выбираем картинку.
    if (imgNumber == 1) {g.drawImage(pt1, x - 100, y - 100, this);}
    if (imgNumber == 2) {g.drawImage(pt2, x - 100, y - 100, this);}
    if (imgNumber == 3) {g.drawImage(pt3, x - 100, y - 100, this);}
 
    // Выводим очки.
    g.drawString("Число просмотров :" + points, 20, 20);
  }
 
//-----------------------------------------------------
 
  public void mousePressed(MouseEvent me) {
    // Если попали.
    if (x - 100 < me.getX() & me.getX() < x + 100 &  y - 100 < me.getY() & me.getY() < y + 100)
    {
      // Начисляем очки.
      points++;
      // Изменяем номер текущей картинки.
      imgNumber = imgNumber + 1;
      if(imgNumber>3)imgNumber=1;
      // Перерисовываем.
      repaint();
    }
  }
 
//-----------------------------------------------------
 
  public void mouseReleased(MouseEvent me) {
 
  }
 
//-----------------------------------------------------
 
  public void mouseClicked(MouseEvent me) {
  }
 
//-----------------------------------------------------
 
  public void mouseEntered(MouseEvent me) {
  }
 
//-----------------------------------------------------
 
  public void mouseExited(MouseEvent me) {
  }
 
//-----------------------------------------------------
               //  public void update(Graphics g){
               // Задаем прямоугольник для перерисовки.
               // g.clipRect(x, y, 250, 250);
               // Вызываем перерисовку.
               //    paint(g);
               // }
 
 
}
//-----------------------------------------------------
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2013, 10:16
Ответы с готовыми решениями:

Не могу писать русскими буквами! (Только начинаю изучать HTML)
Пробую освоить HTML4.0 по книжке. Тут приводятся примеры и объяснения разных букав тегов и дескрипторов (я пока еще первые страницы читаю)...

Нужно упорядочить главную диагональ матрицы. Не могу найти ошибку в коде. P.S. я только начинаю потому, еслиш
#include &lt;iostream&gt;; #include &lt;math.h&gt;; using namespace std; int main() { int const n = 25, a = 25; double matrix; ...

Сделать перерисовку на панели
Здравствуйте! Помогите, пожалуйста, сделать так, чтобы фигура перерисовывалась на панели, когда я изменяю какое-то из значений...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2013, 10:16
Помогаю со студенческими работами здесь

Как в Image сделать перерисовку?
Использовал Image1.Repaint , но чего-то не работает !Помогите!

только начинаю
не сочтите за трудность написать решение

Я только начинаю!
Недавно начал всем этим заниматься, вошёл в пару рейтингов, зарегился на toodoo и blogdir ... чтобы обмениваться ссылками, и получить потом...

Работаю с QPainter. Не могу запретить полную перерисовку при update();
Добрый вечер. Qt5. Пишу свое первое приложение, подключил QPainter, по таймеру перерисовываю часть виджета с помощью update();, но...

Только начинаю на С/С++ .Требуется подсказка
Добрый вечер.Начинаю программировать на C/C++.Есть общие вопросы. Подскажите ,пожалуйста.Может мои вопросы надо решать другими...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
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 существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru