MGDC    

Вернуться   MGDC > Development > Programming > J2ME
Справка Пользователи Календарь Все разделы прочитаны

J2ME Java 2 Platform, Micro Edition

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 05.10.2005, 01:31
trajor trajor вне форума
Junior Member
 
Регистрация: 05.10.2005
Сообщений: 5
Question вопрос новичка

День добрый.
Не могу понять одну вещь.
Я использую Sun One Studio 4 ME, вот часть кода

Код:
//MIDlet
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MIDlet extends javax.microedition.midlet.MIDlet implements CommandListener{
    private Command exit = new Command("exit", Command.EXIT, 0);
    public void startApp() {        
        Draw dw = new Draw();
        dw.start();
        dw.addCommand(exit);
        dw.setCommandListener(this);
        Display.getDisplay(this).setCurrent(dw);
     }
    
    public void pauseApp() {
    }
     
    public void destroyApp(boolean unconditional) {
    }
    
    public void commandAction(Command c, Displayable d) {
       if (c == exit) {
            destroyApp(false);
            notifyDestroyed();
       }
    }
}

//Draw.java
import javax.microedition.lcdui.*;

public class Draw extends Canvas implements Runnable{
  
    public Draw() {
        super();
    }
    public void start() {
        Thread t = new Thread(this);
        t.start();
    }
    
    public void run() {
        while(true) {
            repaint();
            try {Thread.sleep(20);}
            catch (java.lang.InterruptedException zxz) {}
        }
    }
            
    public void paint(Graphics g) {
        g.setColor(0xffffff);
        g.fillRect(0, 0, w, h);
        g.setColor(0, 0, 0);
        g.fillRect(7, 7, 10, 10);                  //!   first
        g.fillRect(4, 4, 7, 7);                     //!   second 

    }    
}
Почему на базовом встроенном эмуляторе (Default Color Phone) первый квадрат(first) получается нормальным(3x3), а второй раза в два больше, чем должен быть (менются координаты x2,y2)?

Спасибо.
Ответить с цитированием

Реклама
  #2  
Старый 05.10.2005, 01:33
trajor trajor вне форума
Junior Member
 
Регистрация: 05.10.2005
Сообщений: 5
По умолчанию

Да,
int w = g.getClientWidth();
int h = g.getClientHeight();
Ответить с цитированием
  #3  
Старый 05.10.2005, 14:38
Yurbar Yurbar вне форума
Junior Member
 
Регистрация: 05.10.2005
Сообщений: 4
По умолчанию

Уважаемы новичок, а вы читали вообще что за параметры передаються в метод fillRect??? Если мне не изменяет память то последние два параметра это длина и ширина прямоугольника. Т.е. в первом случае у вас длина 7 и ширина 7 а во втором длина 10 и ширина соответственно тоже десять. ;)
Одинак. прямоугольники получаться так:
g.fillRect(7, 7, 10, 10); //! first
g.fillRect(4, 4, 10, 10); //! second
Удачи
Ответить с цитированием
  #4  
Старый 21.06.2006, 13:58
незарегистрированный
Guest
 
Сообщений: n/a
По умолчанию

Если не секрет - исходный пример кода взят из книжки г-на Горнакова С. Г. ?
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по работе Pank2 Поиск работы 5 20.10.2005 08:06
Вопрос новичка chameleon Programming 5 26.09.2005 19:52
вопрос о картинках уровня новичка pixel Programming 2 11.02.2005 15:14
Вопрос. Kapris Industry HASH 5 01.10.2004 11:18
вопрос по балансу игр Яна Industry HASH 4 23.06.2004 20:36


Часовой пояс GMT +4, время: 02:23.


vBulletin® Version 3.6.10.
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Перевод: zCarot