左のリストs1に表示された 都市名を選択してダブルクリックすると、
選択されている都市名を右のリストu1に移動して、配列citiesに格納された順に都市名をu1で表示するアップレットを作りたいのですが、移動した都市名が配列citiesに格納された順になりません。
選択した都市名が配列citiesで何番目かを調べて、それを変数jに格納して、jの値をもとに上から順に都市名を表示するようにしました。
改善点が分からないので、教えてください。
プログラムは以下の通り
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class CityList extends Applet implements ActionListener{
List s1 = new List(12, true); //左側のリスト
List u1 = new List(12, true); //右側のリスト
String[] cities = {"札幌","仙台","千葉","横浜","川崎", "名古屋", "京都", "大阪",
"神戸", "広島", "北九州", "福岡"};
public void init(){
for(int i = 0; i < cities.length; i++)
s1.add(cities[i]);
s1.addActionListener(this);
add(s1);
add(u1);
}
public void actionPerformed(ActionEvent e){
//配列citiesの添え字
int j;
//左側のリストs1を,上から順に調べる
for(int i = s1.getItemCount() - 1; i >= 0; i--){
//左側のリストs1で項目が選択されているかどうか
if(s1.isIndexSelected(i)){
//配列citiesの添え字を0に初期化
j = 0;
while(true){
//左側のリストs1で選択されている項目が,
//配列citiesでは何番目かを調べる
if(s1.getItem(i) == cities[j])
break;
else
j++;
}
//選択されている項目を,右側のリストu1に移動させる
u1.add(s1.getItem(i), j);
s1.remove(i);
}
repaint();
}
}
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
そういったことではありません。
>配列citiesに格納された順に都市名をu1で表示する
をしたいならば、u1の要素を、cities順に並び替える仕組みが必要です。
それを作ってください。
私だったら、s1をループの基準にするのではなく、citiesをループの基準にします。
No.1
- 回答日時:
>u1.add(s1.getItem(i), j);
ここ。j番目に追加する際、u1の要素数がjより少ない場合、末尾に追加されてしまう。
参考URL:http://e-class.center.yuge.ac.jp/jdk_docs/ja/api … int)
この回答への補足
u1.add(s1.getItem(i), j);
の直前に
if(u1.getItemCount() - 1 < j)
j = u1.getItemCount() - 1;
を入れたのですが、ダメでした。
後は何を入れればいいですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) EXCELの複数条件検索 1 2022/05/09 22:46
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
この警告はどうすれば?
-
Javaで文字を漢字であるか否か...
-
hit&blow
-
同じ配列またはクラスを、2回...
-
C言語でunsigned char配列を連...
-
ページング
-
main(String[] args) の args...
-
[Ljava.lang.Stringってなんですか
-
乱数を発生させて、それを配列...
-
配列で、値の入っている要素数...
-
String[] とVectorの使い分け
-
『args[]』とは?
-
0から99の数字をランダムに...
-
csvファイルを2次元配列に格納
-
配列の中に複数存在する数がい...
-
動的配列確保
-
javamailで複数人にメールを送...
-
数字が重ならないようにするには
-
sqlparamaterでIN句を使いたい。
-
ファイルの読み込み、配列に格納
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
[Ljava.lang.Stringってなんですか
-
この警告はどうすれば?
-
Java配列の問題を教えてくださ...
-
配列の中に複数存在する数がい...
-
配列で、値の入っている要素数...
-
java
-
『args[]』とは?
-
javaで大容量テキストファイル...
-
C#で動的配列Listの中身をListB...
-
csvファイルを2次元配列に格納
-
Javaで文字を漢字であるか否か...
-
フローチャート
-
javaについて
-
【C#】ハッシュテーブル(連想...
-
セッションを使ったint型の値の...
-
C言語でunsigned char配列を連...
-
配列について
-
n番目に大きな値を探索する
-
cloneメソッドについて (java)
おすすめ情報