| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 11, 2011 22:01 |
|
|
Хочу отобразить это на экране:
Main.java
| Код: |
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.*;
public class Main extends MIDlet{
private Display display;
private KeyCanvas canvas;
private Displayable KeyCanvas;
public Main(){
display = Display.getDisplay(this);
canvas = new KeyCanvas(this);
}
protected void startApp(){
display.setCurrent(canvas);
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional){
}
public void exit(){
destroyApp(true);
notifyDestroyed();
}
}
|
KeyCanvas
| Код: |
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Font;
public class KeyCanvas extends Canvas{
private String message = "Нажмите что-нибудь";
private Font font;
private Main midlet;
public KeyCanvas() {
font = Font.getFont(Font.FACE_PROPORTIONAL,
Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
//this.midlet = midlet;
}
public void paint(Graphics g) {
// получаем ширину и высоту экрана
int width = getWidth();
int height = getHeight();
// рисуем фон
g.setGrayScale(255);
g.fillRect(0, 0, width - 1, height - 1);
g.setGrayScale(0);
g.drawRect(0, 0, width - 1, height - 1);
// Задаем фон и координаты для вывода
g.setFont(font);
int x = width / 2;
int y = height / 2;
// Выводим сообщение
g.drawString(message, x, y, Graphics.BASELINE | Graphics.HCENTER);
}
public void keyPressed(int keyCode) {
int gameAction = getGameAction(keyCode);
switch (gameAction) {
case LEFT:
message = "LEFT"; break;
case RIGHT:
message = "RIGHT"; break;
case UP:
message = "UP"; break;
case DOWN:
message = "DOWN"; break;
case FIRE:
message = "FIRE"; break;
case GAME_A:
message = "GAME_A"; break;
case GAME_B:
message = "GAME_B"; break;
case GAME_C:
message = "GAME_C"; break;
case GAME_D:
message = "GAME_D"; break;
default:
message = "Нажмите что-нибудь"; break;
}
// Перерисовываем
repaint();
}
}
|
Но вылазит ошибка:
symbol : constructor KeyCanvas(Main)
location: class KeyCanvas
canvas = new KeyCanvas(this);
1 error
Что делать?? Помогите Пожалуйста! |
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 10:39 |
|
|
вот конструктор канваса
вот вы инициализируете канвас в мидлете
| Код: |
| canvas = new KeyCanvas(this); |
разницу замечаете? |
|
|
|
 |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 12, 2011 20:12 |
|
|
Что именно в классе Main неправильно? Я новичек в низкоуровневом UI  |
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 20:26 |
|
|
UI тут не при чем, это основы ява. Либо конструктор канваса должен быть таким
| Код: |
| public KeyCanvas(MIDlet midle) |
либо использовать конструктор канваса без аргументов
| Код: |
| canvas = new KeyCanvas(); |
|
|
|
|
 |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 12, 2011 20:35 |
|
|
Вот что получилось:
Main.java
| Код: |
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.*;
public class Main extends MIDlet{
private Display display;
private KeyCanvas canvas;
private Displayable KeyCanvas;
public Main(){
Display.getDisplay(this);
display.setCurrent(KeyCanvas);
}
public void startApp(){
//canvas = new KeyCanvas();
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
}
|
KeyCanvas.java
| Код: |
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Font;
import javax.microedition.midlet.MIDlet;
public class KeyCanvas extends Canvas{
static MIDlet instance;
private String message = "Нажмите что-нибудь";
private Font font;
private Main midlet;
public KeyCanvas(MIDlet Main) {
font = Font.getFont(Font.FACE_PROPORTIONAL,
Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
}
......
|
Не работает!  |
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 20:46 |
|
|
ну хоть компилируется, уже что то.
не работает совсем? или что то есть? кстати что делает setGrayScale а то что то припомнить не могу? а почему вы отдельные цвета для фона и текста не задаете? |
|
|
|
 |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 12, 2011 20:54 |
|
|
| Канвас это пример с какого-то сайта, я хочу запустить на мобиле этот код, для этого добавил Main. Компилируется нормально,но эмулятор пишет: The application has unexpectedly quit. Contact the application provider to resolve the issue. |
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 20:56 |
|
|
| такс, вспомнил что такое setGrayScale. ради интереса запустил ваш код, у меня работает |
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 20:58 |
|
|
| DRaGoN94 писал(а): |
| Канвас это пример с какого-то сайта, я хочу запустить на мобиле этот код, для этого добавил Main. Компилируется нормально,но эмулятор пишет: The application has unexpectedly quit. Contact the application provider to resolve the issue. |
запускаемый класс правильно указали? |
|
|
|
 |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 12, 2011 21:00 |
|
|
|
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 21:01 |
|
|
|
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 21:01 |
|
|
| кстати, классы лучше в пекаджах держать |
|
|
|
 |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 12, 2011 21:02 |
|
|
| Вы какой средой разраб. пользуетесь? У меня SDK 3.0, может в ней проблема? |
|
|
|
 |
demon_zx : 1567 Завсегдатай Откуда: Moscow
|
Окт 12, 2011 21:13 |
|
|
я пульсаром пользуюсь, сделайте jar файл и выложите на rghost.ru, посмотрю что генерируется.
Запускаете на CLDC эмуляторе? |
|
|
|
 |
DRaGoN94 : 33 Новичок Откуда: Izhevsk
|
Окт 12, 2011 21:20 |
|
|
|
|
|
|
 |
|
|