JFileChooser
でJList
にファイルを追加しました。vector
を使用しています。私は、特定のファイルがJList
で利用可能かどうかをチェックすることによって体系的にしようとしています。たとえば、 'abc.xml'という名前のファイルを追加すると、すぐにそのファイルがJList
に存在するかどうかをチェックします。Javaでのファイルの複製
また、ファイルが1回だけ繰り返されるかどうか確認したいと思います。複数回繰り返される場合( 'abc.xml'、 'abc.xml'、...)、ファイルが複数回追加されたことを示すエラーメッセージが表示されます。
ここに完全なコードを掲載しています。
public Test()
{
setTitle("EXAMPLE");
getContentPane().setLayout(new MigLayout("", "[][][][][grow][][][][][][][]
[][][grow][grow][][][grow][][][][][][][grow]", "[][][][][][][][grow]
[grow][][][][][][][grow][]"));
final JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.setMultiSelectionEnabled(true);
getContentPane().add(fileChooser, "cell 0 1 3 16");
JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, "cell 23 2 3 15,grow");
vector = new Vector<File>();
final JList list = new JList(vector);
scrollPane.setViewportView(list);
JButton btnNewButton = new JButton(" Add ");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (File file : fileChooser.getSelectedFiles()) {
vector.addElement(file);
}
//System.out.println("Added..!!");
list.updateUI();
}
});
getContentPane().add(btnNewButton, "cell 4 0");
JButton btnNewButton_1 = new JButton(" Remove ");
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();
}
});
getContentPane().add(btnNewButton_1, "cell 4 2");
JButton btnNewButton_2 = new JButton(" Check ");
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
***File file = fileChooser.getSelectedFile();
boolean found = false;
for (File f : vector) {
if (file.getName().equals(f.getName())) {
found = true;
break;
}
}
if (!found) {
vector.add(file);
fireIntervalAdded(this, vector.size()-1, vector.size()-1);
} else {
// Abusive usage of an exception
JOptionPane.showMessageDialog(null, "File " + file.getName() + "
already added");
}***
});
public static void main(String args[]) {
// Create an instance of the test application
Test mainFrame = new Test();
mainFrame.pack();
mainFrame.setVisible(true);
}
私が得るのは、ファイルが1回だけ出現してもファイルがすでに追加されていることを示すmsgボックスです。
ファイルが一度追加されると、何も表示されません。しかし、それが複数回追加された場合にのみ、そのファイルがすでに追加されていることを示すmsgが表示されます。
誰かが助けることができますか?
aaaaah!ホラーの(コードの書式設定)! – andersoj
あなたのやりたいことの近くでコードが見えませんか?読みやすくするためにフォーマットできますか? – maress
コード全体を投稿しますか?もしそうなら、私はそれをすることができます。 – dmurali