0
基本的には、Javaで文字列のコレクションを返そうとしています。 しかし...Java:LinkedHashSetを返す
- 彼らは現在のフォルダ内の「.DB」ファイルのすべての名前だから、各文字列は一意でなければなりませんので、私は、このコレクションはLinkedHashSetのあるべきと思いました。
- 要素(ファイル名)は正確に同じ順序を維持する必要があります。そのため、コレクションの順序番号でその1つを選択できます。
私のメインルーチンは、このコレクションをGUIコンポーネント(おそらくJList)に表示して、ユーザーが(拡張子なしで)その1つを選択できるようにします。 私はまったく初心者です(あなたが見るように)、LinkedHashSetよりも良いオプションがあると思うなら教えてください。
また、メインクラスでこのコレクションを取得するにはどうすればよいですか?私がこれまで持っているもの
:
public Set GetDBFilesList() {
//returns ORDERED collection of UNIQUE strings with db filenames
LinkedHashSet a = new LinkedHashSet();
FilenameFilter dbFilter = (File file, String name) -> {
return name.toLowerCase().endsWith(".db");
};
String dirPath = "";
File dir = new File(dirPath);
File[] files = dir.listFiles(dbFilter);
if (files.length > 0) {
for (File aFile : files) {
a.add(aFile.getName());
}
}
return a;
}
感謝を。 1つの質問:Fileオブジェクトのコレクションがある場合、JListなどのGUIコンポーネントに名前をStringとして解析するにはどうすればよいですか? –
文字列を含むコレクションを使用することもできますし、ファイルオブジェクトを必要とする場合は、JListのコンストラクタに渡してください。これによりDefaultLitsModelが作成されます。項目はFile.ToString()の可視値を持ちます。これはパスまたはfileNameでなければなりません。異なる文字列、アイコン、スタイルなどを表示したい場合は、独自のListCellRendererを記述することができます。 – HectorLector