メソッドに内部クラスを作成しています。その後、私はBitmapFieldを作成中にInnerクラスにアクセスし、HorizontalFieldManagerで追加します。
public class Test extends MainScreen
{
HorizontalFieldManager hfm;
Bitmap bitmap[] = new Bitmap[100];
BitmapField[] bitmapField = new BitmapField[100];
int countBitmap = 0;
Test()
{
VerticalFieldManager vfm_Main = new VerticalFieldManager();
hfm = new HorizontalFieldManager(HorizontalFieldManager.USE_ALL_WIDTH);
vfm_Main.add(hfm);
add(vfm_Main);
}
void drawBitmap()
{
bitmap[countBitmap] = new Bitmap(100, 100);
bitmapField[countBitmap] = new BitmapField(bitmap[countBitmap]){
public void paint(Graphics g)
{
................
................
g.drawLine(x1,y1,x2,y2);
}
}
synchronized(UiApplication.getEventLock())
{
for(int i = 0 ; i < bitmapField.length; i++)
{
if(bitmapField[i] != null)
{
bitmapField[i].setBitmap(bitmap[i]);
}
}
hfm.add(bitmapField[countBitmap]);
countBitmap++;
、のようないくつかのステートメントにアクセスしています。しかし、ここで問題がbitmapFieldを作成する前に、ビットマップ&を作成した後で、制御が
synchronized(UiApplication.getEventLock()){hfm.add(bitmapField[countBitmap]); }
に行くのでbitmapFieldを作成する前に、それを追加しますhfmで
出力が「新しいBitmapFieldがhfmに追加されるたびに(前のものを置き換えることによって同じ位置にあることを意味します)」のように出力されます。しかし、私はBitmapFieldsがhfmの隣に来ることを望みます。
どうすればよいですか?
なぜ、コントロールが新しいbitmapField()内部クラスの前に最初にhfm.add()になるのか?
の延長として新しいクラスを作成する方が良いでしょうあなたのコーディングスタイルがここに不均一なようで、いくつかの密接があるように見えますカッコがありません。ここでやろうとしていることを理解するのが少し難しくなります。たとえば、2番目のコードはどこに収まるのですか? drawBitmap()の終わりですか? – Richard
交換の問題(以前のものと置き換えて同じ位置に置き換える)が今解決されました。しかし、新しい問題は、最近の図面が前のものに置き換えられて追加されていることです。 初めて描画する場合は、bitmapFieldで正しく描画されます。 uを2回目に描画し、次に2回目の描画をbitmapFieldに追加すると、前のパターンが置き換えられます。 paint()を2回呼び出して2つの図面を描画します。 この問題を解決するにはどうすればよいですか? – Shreyas