Четверг, 14 Ноября 2024, 21:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Java2ME. Подкласс для класса Layer.
DarkWizardДата: Среда, 23 Июня 2010, 06:34 | Сообщение # 1
был не раз
Сейчас нет на сайте
Доброго времени суток!
Подскажите, пожалуйста, как самому создать подкласс класса Layer?
Трудность в том, что Layer - абстрактный и не имеет конструктра (или он защищен).
Описываю свой класс вот так:
public class MyLayer extends Layer{
public MyLayer(){
super();
}
public void paint(Graphics g){
}
}
Выдается ошибка:"Layer(int, int) in javax.microedition.lcdui.game.Layer cannot be applied to ()".
Без super() то же самое.
Если пишу super(int x, int y), то ошибка имеет вид:"Layer(int, int) is not public in javax.microedition.lcdui.game.Layer; cannot be accessed from outside package".
Как это правильно сделать? Может есть другой способ?


Мое сердце у тебя на ладонях.
Волшебство для тебя лишь одной.
AnotherNoobДата: Среда, 23 Июня 2010, 09:13 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Врядли вы найдете решение на этом форуме... Я, конечно, с явой плохо знаком, но в коде разобрался. Привидите, пожалуйста, весь текст программы, мне так проще буддет.
DarkWizardДата: Понедельник, 20 Декабря 2010, 18:38 | Сообщение # 3
был не раз
Сейчас нет на сайте
Почему написал сюда - потому что именно с этого форума я начал изучение Java2ME.
Пример кода привожу ниже.
Без класса MyLayer все работает. Как его построить правильно - ума не приложу.

Файл MyMIDlet.java:
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class MyMIDlet extends MIDlet implements CommandListener
{
private Command exitMidlet = new Command("Выход", Command.EXIT, 0);
private MyGameCanvas MyGameCanvasObject;

public void startApp()
{
try{
MyGameCanvasObject = new MyGameCanvas();
MyGameCanvasObject.addCommand(exitMidlet);
MyGameCanvasObject.setCommandListener(this);
Display.getDisplay(this).setCurrent(MyGameCanvasObject);
}catch (java.io.IOException zxz) {};
}
public void pauseApp(){}
public void destroyApp(boolean unconditional)
{
}

public void commandAction(Command c, Displayable d)
{
if(c == exitMidlet)
{
destroyApp(false);
notifyDestroyed();
}
}
}

Файл MyGameCanvas.java:
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;

public class MyGameCanvas extends GameCanvas
{
private LayerManager LayerManagerObject;
private Sprite SpriteObject;
private MyLayer MyLayerObject;
public MyGameCanvas() throws IOException
{
super(true);

LayerManagerObject = new LayerManager();

SpriteObject = new Sprite(Image.createImage("/Image.png"), 64, 64);
SpriteObject.setPosition(64,64);
LayerManagerObject.append(SpriteObject);

MyLayerObject = new MyLayer();
LayerManagerObject.append(MyLayerObject);

Graphics g = getGraphics();
LayerManagerObject.paint(g, 0, 0);
flushGraphics();
}
}

Файл MyLayer.java:
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class MyLayer extends Layer
{
protected MyLayer()
{
super();
}
public void paint(Graphics g)
{
try{
g.drawImage(Image.createImage("/Image.png"), 0, 0, 0);
}
catch(java.io.IOException zxz) {};
}
}

Добавлено (20.12.2010, 18:38)
---------------------------------------------
По прошествию времени вопрос отпал. Многие вещи проще сделать самому, чем пользоваться готовыми методами.
Спасибо.


Мое сердце у тебя на ладонях.
Волшебство для тебя лишь одной.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг