• ベストアンサー
  • すぐに回答を!

配列で指定した文字の表示の仕方。

  • 質問No.7183096
  • 閲覧数113
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (13/13)

JAVAアプレットで
配列にて

private String[][]
A =
{"☆A", "☆B", null};
{"☆あ", "☆い", "☆う"};
{"☆1", null, null};

と指定したあとに

各配列をアプレット上に

☆A
☆B



☆あ
☆い
☆う



☆1

といった順番で表示させたいです。

そこでinitメソッドにて、パネルをGridLayout(3,1)と各パネルを作り
各パネルをaddで加えていきます。
ここて各パネルをP1,P2,P3とします。

表示の仕方は

P1.setText(A[page][0]);
if(A[page][1] == null){page++;}
else{
P2.setText(A[page][1]);
if(A[page][2] == null){page++;}
else{
P3.setText(A[page][2]);
page++;
}
}

としました。
pageとは各配列Aを順に表示させる為の変数です。

しかしこの方法だと

☆A
☆B



☆あ
☆い
☆う



☆1
☆い
☆う

と表示されてしまいます。
目標としてる表示の仕方にしたいのですが、一体どこがいけないのでしょうか。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 49% (157/315)

原因は、表示する行数が減ったときに、減った分の行をクリアしていないためです。

☆あ → ☆1 に変更
☆い → 何もしない
☆う → 何もしない


修正案として、次のようなものがあります。

1.P1,P2,P3を配列に格納します。(P[0]~P[2]とします)
 
2.表示変更のコードを次のようにします。

for(int i = 0 ; i < P.length ; i++){
 if(A[page].length <= i){
   P[i].setText("");
 }else{
  if(A[page][i] != null){
   P[i].setText(A[page][i]);
  }else{
   P[i].setText("");
  }
 }
}
page++;
お礼コメント
tale23kaga10wa

お礼率 100% (13/13)

ご回答ありがとうございます。
無事に解決しました!
投稿日時:2011/12/11 06:50
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ