0

JFileChooser から JList にいくつかのファイルを追加しました。「CHECK」という名前の新しいボタンを追加しています。これをクリックすると、特定のファイルが JList に存在するかどうかがわかります (既に追加されているファイルの中に)。このステップを実行するための正しい手順を教えていただければ幸いです。

よろしくお願いします..

これは現在私のコードです。

            final JFileChooser fileChooser = new JFileChooser();
    fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    fileChooser.setMultiSelectionEnabled(true);
    getContentPane().add(fileChooser, "cell 0 0 3 9");

    JScrollPane scrollPane = new JScrollPane();
    getContentPane().add(scrollPane, "cell 10 1 3 8,grow");

    vector = new Vector<File>();
    final JList list = new JList(vector);
    scrollPane.setViewportView(list);

    JPanel panel = new JPanel();
    getContentPane().add(panel, "cell 3 4 7 1,grow");

    JButton btnNewButton = new JButton("Add Files");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            for (File file : fileChooser.getSelectedFiles()) {
                        vector.add(file);
                        System.out.println("Added..!!");
                }
                list.updateUI();

            }
    });
    panel.add(btnNewButton);

    JButton btnNewButton_1 = new JButton("Remove Files");
    btnNewButton_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if(list.getSelectedIndices().length > 0) {
                  int[] selectedIndices = list.getSelectedIndices();
                  for (int i = selectedIndices.length-1; i >=0; i--) {
                        vector.removeElementAt(i);
                        System.out.println("Removed..!!");
                  } 
                   }
                    list.updateUI();

        }   
        });
    panel.add(btnNewButton_1);

    JButton btnNewButton_2 = new JButton("Check For Files");
    btnNewButton_2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String name = "";
            if(list.getSelectedIndices().length > 0 ) {
                       //// to check if a file exists /////
            }
            }
             });

    panel.add(btnNewButton_2);
4

2 に答える 2

1

Vector には、使用できる contains メソッドがあります。

if(vector.contains(file)){
   //Vector has the file
}
于 2012-04-19T11:38:46.787 に答える
1
  1. Listvar 型とArrayList具体的なクラスをインスタンス化するには、Collections Framework を使用してください。VectorJava 1.2 以来、過去のものとなっています。
  2. 両端で正規パスをチェックして、選択したファイルを反復処理します。

final File toCheck = fileToCheckInList.getCanonicalFile();
for (File file : fileChooser.getSelectedFiles())
  if (file.getCanonicalFile().equals(toCheck)) return true;
于 2012-04-19T11:50:38.467 に答える