調べてみた結果
>>画面には、同時に1つのパネルしか表示できません。また、低レベルAPIを混在して使用することはでません。
>>ただし、複数の画面から構成されるアプリケーションが、
高レベルAPI(Panel)と低レベルAPI(Canvas)を切替えて表示することは可能です。
とのこと。表示することは可能!? たしかに、表示は出来たけど・・・。
Panle→Canvasに移ったときにイベント処理が出来なかった。
低レベルAPI(Canvas)では
processEventメソッドをオーバーライドしてイベント処理を行い、
高レベルAPI(Panel)では
イベントリスナーでイベント処理をやっていたわけだが・・・
今回は、componentAction(Component c, int type, int
param)メソッドでPanelに貼り付けたボタンが押された場合、PanelからCanvasに切り替えるようにしていた。
が、どうやらココが問題だったみたい。
同じイベントリスナーでも、KeyListenerで数字キー(5キー)が押されたときにCanvasに移るようにしてみたら、
戻ったあともきちんとCanvasでイベント処理が出来た。
結論:
よくわからないけど、Panel上のボタンが押された時にCanvasに戻るようにすると、
Canvasに移った後のイベント処理ができないが、
keyPressed()メソッドで、任意の数字キーが押された時にCanvasに戻るようにすれば、
Canvasに戻った時にもきちんとイベント処理が行われるみたい。
まあ、今回やりたかったことはCanvasで文字入力をできるようにしたかったわけだが、どうやらDoJa-3.0プロファイルからは、
Canvasでも、このIMEによる文字列入力が可能になったっぽい。
なので、こっちのCanvas.imeOn()メソッドを使った方法をやってみようと思う。DoJa-3.0以前の携帯(504iとか)
使ってる人とかいないしね。
Canvasで文字入力させるだけなのに、、かなり遠回りした気がするな・・・