Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вращение фигуры 
V
    Опции темы
susanin
Дата 16.5.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



всем добрый вечер. столкнулся со следующей проблемой. необходимо написать прогу, в которой при запуске на панели будет вращаться фигура, при клике мышкой на панели она должна остановится, а при клике правой поменять цвет.  столкнулся с той проблемой что объект графического контекста Graphics2D g2 постоянно создается новый, а мне нужно изменять тот, который был создан при запуске (для функций g2.setPaint() и для g2.rotate())..и поэтому никаких изменений не происходит..как мне правильно осуществить это?
вот код который я написал для вращения...этот способ работает, но если двигать мышкой постоянно...
Код

public void paintComponent(Graphics g){
        super.paintComponent(g);
        //rotateRect();
        g2 = (Graphics2D)g;
        g2.rotate(Math.toRadians(grad),200,200);
        g2.fill(rect);
        if(grad>=0&&grad<360)
        grad+=5;
        else if(grad==360)
            grad=0;
    }
public void mouseMoved(MouseEvent e) {
        repaint();
    }
    private Rectangle2D rect;
    private static Graphics2D g2;
    private static int grad=0;

я так понимаю что для автоматического вращения надо задействовать объект Timer(), но вот как его применить я чего то не допендрю...никак не получается.
PM MAIL   Вверх
aleksandy
Дата 17.5.2009, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 1
Всего: 5



Я делал приблизительно так:
Код

public class MyPanel extends JPanel implements Runnable {
    private boolean flag = true;   
    ...
    public void run() {
        while (flag) {
            ...
            repaint();
            Thread.sleep(100);
            ...
        }
    }

    public static void main(String[] args) {
        MyPanel p = new MyPanel();
        ...
        Thread t = new Thread(p);
        t.start();
    }
}

PM   Вверх
susanin
Дата 17.5.2009, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



aleksandy, да.спасибо! для вращения это наверно подойдет вполне...но главный вопрос так и остается...мне же еще надо как то изменять графический контекст для рисования другим цветом, а он в методе paintComponent()  всегда заново инициализируется...как с этим быть?

Это сообщение отредактировал(а) susanin - 17.5.2009, 09:14
PM MAIL   Вверх
Vitaly333
Дата 22.5.2009, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 6.11.2006
Где: Volgograd

Репутация: нет
Всего: 2



Цитата

.мне же еще надо как то изменять графический контекст для рисования другим цветом, а он в методе paintComponent()  всегда заново инициализируется...как с этим быть?

заведите переменную типа Color color и в методе paintComponent добавте g2.setPaint(color).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.