Как сделать прокрутку в холсте j2me? - PullRequest
2 голосов
/ 09 февраля 2012

Я создал пример приложения, в котором я хочу выполнить прокрутку, но я не могу достичь желаемого результата.

Я попробовал следующий код внутри метода рисования >>>>>

g.translate(x,y);

и передача значения переменной 'y' в событиях keydown и keyup.

Может кто-нибудь помочь мне сделать это?

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Самый простой способ (хотя и требует много памяти) - использовать MutableImage и рисовать его с отрицательными координатами y.

Изменяемое изображение - это просто новое изображение (ш, ч).
Затем вы получаете его графический контекст, используя myImage.getGraphics(), и рисуете с этим графическим объектом. Он служит закадровым буфером.

Чем в краске (Графика г) звоните:

g.drawImage(0,y,...);

, где вы зацикливаете значение y на каждом системном вызове для рисования.
(не блокируйте рисование! - каждый вызов - один кадр, и вы делаете покадровую анимацию
сделать цикл анимации из другого потока, где вы уменьшаете y, чем вызываете repaint () и sleep).

1 голос
/ 24 февраля 2012

Вы пытались уменьшить значение Y в keyUP и вызвать метод repaint(), чтобы сделать то же самое с keyDown, но теперь значение Y будет уменьшаться и вызывать repaint() метод.

Используйте g.translate(x, changingYvalue);

попробуйте это.

0 голосов
/ 24 февраля 2012

Я думаю, что полоса прокрутки должна быть нарисована внутри метода paint.И вы реализуете метод keyReleased при нажатии на стрелку полосы прокрутки.Для реализации scrolling я бы предпочел вызвать repaint();, и я буду управлять paint методом с логическим или каким-либо другим типом private variable.

...