Canvasでテキストボックス使いたいけど無理っぽいので、しかたなく新しくクラス作ってPanelを継承することに・・・。
テキストボックスを使いたいときに
Display.setCurrent(Main.p1);
で切り替えることに。
ポイントはCanvas,Panelのどちらともメイン(IApplicationを継承したクラス)でstaticにしておいて、
直接アクセスできるようにしておくところ。
static TestCanvas c1;
static TextPanel p1;
public void start(){
c1=new TestCanvas();
p1=new TextPanel();
Display.setCurrent(c1);
c1.exe();
}
CanvasやPanelでオブジェクトを作成してしまうと、思わぬところでコンストラクタが処理されてしまうみたい。
これでうまくいく!!・・・と思ったら。。。
文字の入力が終わり、Panelからボタンを押してCanvasに戻ったときに、
Canvasでのキーイベントが動かなくなってしまっていた!!!!!!!!
public void processEvent(int type,int parm)
でキーイベントを取得しているわけだけど・・・これがまったく処理されなくなっていた。
考えた結果、Panelでの
public void componentAction(Component c, int type, int
param)
が処理されているののではないか!という点。
しかし一日中悩んだが・・・未だに対処法がわからん
知ってる人いたら、マジでだれか教えてください。