required
フラグや。などのさまざまなプロパティを実装するカスタムスイングコンポーネントのセットを作成していますtabIndex
。さまざまなカスタムコンポーネントにデータを入力しようとして、各コンポーネントList
に基づいてリストを並べ替えると、問題が発生しtabIndex
ます。
これを実行しようとしているのは、コンポーネントにIndexed
、単一のメソッドを実装するというインターフェイスを実装させることgetIndex()
です。次に、myを使用して並べ替えIndexedComparator
ます。
私のクラス:
索引付け:
public interface Indexed {
public int getIndex();
}
IndexedComparator:
public class IndexedComparator implements Comparator<Indexed> {
@Override
public int compare(Indexed o1, Indexed o2) {
return o1.getIndex() - o2.getIndex();
}
}
WWTextField:
public class WWTextField extends JTextField implements Indexed, FocusListener {
private boolean required;
private int tabIndex;
...
@Override
public int getIndex() {
return tabIndex;
}
}
NewJFrame:
public class NewJFrame extends JFrame {
List<? extends Component & Indexed> list = new ArrayList<>();
IndexedFocusTraversalPolicy policy = new IndexedFocusTraversalPolicy();
public NewJFrame() {
initComponents();
list.add(wWTextField1);
list.add(wWTextField2);
list.add(wWTextField3);
list.add(wWTextField4);
list.add(wWTextField5);
list.add(wWFormatedTextField1);
list.add(wWFormatedTextField2);
Collections.sort(list);
policy.populateComponents(list);
this.setFocusTraversalPolicy(policy);
}
}
編集:実際の質問を投稿するのを忘れました。なぜ私の実装はしないのですか
List<? extends Component & Indexed> list = new ArrayList<>();
仕事?コンパイルしようとすると、次のエラーが発生します。
NewJFrame.java:22: error: > expected
NewJFrame.java:22: error: ';' expected
NewJFrame.java:22: error: illegal start of type