1

私はこの問題を抱えています:

1) JTextField を介して TreeMap に配置されたオブジェクトがあります。(電話帳のようなプログラム)。

2) TreeMap で利用可能なレコードのビューを実装するボタンがあります。これらのボタンをクリックすると、JTextField に表示される TreeMap の次/前の利用可能なオブジェクト。(利用可能なレコードをスクロールします)。

このコードを試しましたが、うまくいきませんでした:/

btn[4].addActionListener(new ActionListener(){
     Iterator iter = tree.keySet().iterator();
      public void actionPerformed(ActionEvent e) {
         if (iter.hasNext()){
         String str = iter.next().toString();
         fldFio.setText(str);
         fldNumber.setText(tree.get(str));
         }
      }
}); 

最初の行として、メソッド actionPerformed に次の行を追加しました。

System.out.println(iter1.hasNext());

とにかく役立つ場合、結果は「false」です。

4

3 に答える 3

1

アプリケーションで別のものを使用Iterator iter1しているようです。をナビゲートするTreeMapには、で定義されたイテレータを使用する必要がありますActionListener:

 if (iter.hasNext()){
    String str = iter.next().toString();
    ...
于 2012-10-28T14:05:34.567 に答える
1

「actionPerformed()」メソッド内でイテレータを移動しようとしましたか:

btn[4].addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e) {
     Iterator iter = tree.keySet().iterator();
     if (iter.hasNext()){
     String str = iter1.next().toString();
     fldFio.setText(str);
     fldNumber.setText(tree.get(str));
     }
  }
}); 
于 2012-10-28T14:08:17.803 に答える
0

NavigableMapのメソッドを使用してこれをリリースしました。助けを求めるすべての人:

btn[4].addActionListener(new ActionListener(){
       String str;
       public void actionPerformed(ActionEvent e) {
           if (tree.size() != 0){
               if ((str)==null){
                   str = tree.firstKey();
                   } else {
                   fldFio.setText(str);
                   fldNumber.setText(tree.get(str));
                   str = tree.higherKey(str);   
                   }
          }
       }
   }); 
于 2012-10-29T10:02:25.593 に答える