Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Хочу сохранить обьект класса Graphics  (Прочитано 8307 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« : 16-05-2006 00:49 » 

вот как делаю
Код:
public class Hello_World extends Applet implements MouseListener
{
 private boolean StartThread;
 private Font font;
 private int X, Y;
 private StringBuffer my_comment;
 private StringBuffer EventString;
 private int button, clickCount;
 private NewThread thThread1;
 private Graphics GlobGraph;


  public void init()
  {
    StartThread=false;
    button=0; clickCount=0;
    my_comment=new StringBuffer("");
    EventString=new StringBuffer("");
     X=0; Y=0;
    addMouseListener(this);


  }

  public void paint(Graphics g)
  {

    GlobGraph=g;
   
    //The pink oval
     Color myColor=new Color(10,20,210);
     font = new Font("Arial",Font.ITALIC, 48);
     g.setColor(myColor);
     g.fillOval(10,210,350,100);
     g.setColor(Color.yellow);
     g.setFont(font);
     g.drawString("Hello World!!!",40,275);
   //////////////////////////
                 

                                      ////////////ЭКстра параметра
                                      GlobGraph.drawLine(70, 10, 70, 70);
                                      GlobGraph.drawLine(220, 10, 220, 110);
                                      GlobGraph.setColor(Color.LIGHT_GRAY);
                                      GlobGraph.drawString("button=" + button, 100, 30);
                                      GlobGraph.drawString("clickCount=" + clickCount, 100, 60);



  }


Компилятор  не ругается (а на что ему ругаться? Улыбаюсь ), но все то что вырисовыаю через GlobGraph не вырисовывается. Если вместо GlobGraph там поставить g., то будет все вырисовываться. Как же сохранить объекть класса Graphics?
p.s. Код приведен не весь, а самое главное, имхо.
« Последнее редактирование: 16-05-2006 00:51 от nikedeforest » Записан

ещё один вопрос ...
Asver
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #1 : 16-05-2006 07:05 » 

У меня почемуто всё вырисовывается, даже через GlobGraph  Улыбаюсь.
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 16-05-2006 16:11 » 

Ты уверен? Можешь скинуть  свой код и скомпилированный файл, а то меня начинают мучать смутные сомнения Жаль.
Записан

ещё один вопрос ...
Asver
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #3 : 17-05-2006 06:56 » new

Только я класс немного урезал, что бы он компилировался.
У меня он выглядет так:
Код:
import java.awt.*;
import java.applet.Applet;

public class Hello_World extends Applet
{
 private boolean StartThread;
 private Font font;
 private int X, Y;
 private StringBuffer my_comment;
 private StringBuffer EventString;
 private int button, clickCount;
 private Graphics GlobGraph;


  public void init()
  {
    StartThread=false;
    button=0; clickCount=0;
    my_comment=new StringBuffer("");
    EventString=new StringBuffer("");
     X=0; Y=0;


  }

  public void paint(Graphics g)
  {

    GlobGraph=g;

    //The pink oval
     Color myColor=new Color(10,20,210);
     font = new Font("Arial",Font.ITALIC, 48);
     g.setColor(myColor);
     g.fillOval(10,210,350,100);
     g.setColor(Color.yellow);
     g.setFont(font);
     g.drawString("Hello World!!!",40,275);
   //////////////////////////


                                      ////////////ЭКстра параметра
                                      GlobGraph.drawLine(70, 10, 70, 70);
                                      GlobGraph.drawLine(220, 10, 220, 110);
                                      GlobGraph.setColor(Color.LIGHT_GRAY);
                                      GlobGraph.drawString("button=" + button, 100, 30);
                                      GlobGraph.drawString("clickCount=" + clickCount, 100, 60);



  }
}

Получаю такую картинку:

http://slil.ru/22759366
Вот скомпилированный класс.
http://slil.ru/22759371
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 17-05-2006 12:36 » 

Дома посмотрю. Спасибо.
p.s. ооочень любопытно
Записан

ещё один вопрос ...
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 19-05-2006 07:56 » 

Разобрался в чем дело было. А дело было в том, что операция
Код:
GlobGraph=g;
оказалось весьма длительной по времени и перерисовка задерживалась на определенное время. Стоит отметить, что меня весьма неприятно удивила "тяжесть" Явы. Привыкнув к программированию на Вижуале 6.0.  я не привык к тому, чтобы среда разработки (ЖБилдер или Эклипс), а также сам апплет так тормозили. Пусть у меня компьютер и не по последней моде, однако ж Вижуал на нем летал как реактивный Ага.
Короче терпения мне не хватало, чтобы увидеть перерисовывание.
Но, есть еще одно "но". Также дело было и в другом (скорее даже это в пернвой степени играло, а то что долгшо перерисовывалось это на последующих этапах). Я операцию GlobGraph=g; делал один только раз в функции paint(). В функции update() это действие не производилось, а зря. Не рисовал тот GlobGraph, сохраненный в paint() в функции update(). Все время сохранять в update() дело "дорогостоящее" да и смысла для меня не имело. Короче теперь я юзаю элементы класса AWT. По ним вопрос у меня уже есть, смотрите ветку форума "Java".
Asver, спасибо за содействие.
Записан

ещё один вопрос ...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines