我創建的程序的功能是讀取「n」.txt或.java文件,並且這些文件創建一個UML圖。我有閱讀的方法,但我來加載更多相同的文件的問題。我想否認加載相同的文件,因爲它會造成創建UML圖的問題。如何拒絕使用JFileChooser選擇相同的文件
我試圖解決它,以便將上傳的文件存儲到ArrayList中,並檢查每個加載文件與保存在ArrayList中的文件,以前加載的文件在哪裏。
接下來的問題是,當我選擇相同的文件時,我點擊按鈕是或否,文件被同樣加載。
而當我創建這個答案時,我發現下一個問題。當用戶選擇多個文件時,ArrayList不知道如何一次添加兩個文件。
有沒有人選擇我如何更容易地解決這個問題?
ArrayList<String> filenames = new ArrayList<String>();
JTabbedPane tabbedPaneUML_Files = new JTabbedPane();
private void readFiles() {
JFileChooser fc = new JFileChooser();
fc.setMultiSelectionEnabled(true);
FileNameExtensionFilter fileFilter =
new FileNameExtensionFilter("Only .txt a .java files",
"txt", "java");
fc.setFileFilter(fileFilter);
int returnValue = fc.showOpenDialog(this);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File[] files = fc.getSelectedFiles();
File file;
tabbedPaneUML_Files.addTab("UML diagram", panelUML);
for (int i = 0; i < files.length; i++) {
file = files[i];
for (int j = 0; j < filenames.size(); j++) {
if (filenames.get(i).equals(fc.getSelectedFile().getName())) {
Object[] options = {"Yes", "No"};
int answer = JOptionPane.showOptionDialog(this,
"Unable to load the same files! To retrieve the other files?",
"Load new file", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE, null, options, options[0]);
if(answer == 0) {
readFiles();
}
}
}
filenames.add(file.getName());
JTextArea loadCode = new JTextArea();
JScrollPane scrollingFile = new JScrollPane();
scrollingFile.setViewportView(loadCode);
tabbedPaneUML_Files.addTab("" + file.getName(), scrollingFile);
int ch;
try {
Reader charsReader =
new InputStreamReader(new FileInputStream(file),
"UTF-8");
while ((ch = charsReader.read()) != -1) {
loadCode.append(Character.toString((char) ch));
}
loadCode.setSelectionStart(0);
loadCode.setSelectionEnd(0);
loadCode.setEditable(false);
} catch (FileNotFoundException ex) {
Logger.getLogger(HlavniOkno.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(HlavniOkno.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
感謝您的任何建議。我已經失去了想法。 對不起,我的英文。
*「我有閱讀方法,但我遇到了加載更多相同文件的問題。」*您應該爲已打開的文件「翻轉到該選項卡」(或適用於GUI的任何內容)。同時考慮讓用戶一次打開一組文件 - 然後他們可以爲特定的UML圖選擇所有文件。當然,如果失敗了,你可能會使用自定義的[FileSystemView](http://docs.oracle.com/javase/7/docs/api/javax/swing/filechooser/FileSystemView.html)。 – 2012-04-07 14:09:45
的確如此。我最大的問題是,我不知道用戶如何創建這種讀出方法是最好的。如果你允許一次選擇多個文件(=問題,但用戶友好),如果你允許相同的文件(我認爲這是好的,我不允許相同的文件)等 你可以有一個問題,可以在創建UML圖時發生?或者相反,添加到這種方法會有什麼好處? 謝謝你的想法。 – avalagne 2012-04-07 14:23:28