我有我正在開發的這個代碼示例。在這裏我已經在主if-else語句之外聲明瞭兩個變量(initialPath,lastPath)。在主if語句裏面有一個嵌套的if-else語句。我已經初始化了嵌套if語句中的變量(initialPath)。我需要這個值在嵌套的if-else語句之外使用。我附上了我的代碼片段。如果有人可以幫助解決我的問題,我會很高興:)如何訪問/獲取嵌套if語句中的變量的值到主if語句之外
FileWriter writer;
File initialPath=null;
File lastPath=null;
if (clicked == 1) {
int sf = savefile.showSaveDialog(null);
if (sf == JFileChooser.APPROVE_OPTION) {
initialPath=savefile.getSelectedFile(); // in here the Variable values is initialized/assigned
try {
if (savefile.getFileFilter().equals(filter2)) {
String path = savefile.getSelectedFile() + ".java";
File file = new File(path);
writer = new FileWriter(file, false);
System.out.println(savefile.getFileFilter());
writer.write(jTextPane1.getText());
writer.close();
} else if (savefile.getFileFilter().equals(filter)) {
System.out.println("2");
String path = savefile.getSelectedFile() + ".txt";
File file = new File(path);
writer = new FileWriter(file, false);
writer.write(jTextPane1.getText());
writer.close();
} else {
System.out.println("No format");
}
} catch (IOException e) {
e.printStackTrace();
}
} else if (sf == JFileChooser.CANCEL_OPTION) {
clicked = 0;
}
} else {
try {
lastPath=initialPath.getParentFile(); //but in here lastPath become NULL because initialPath is NULL...
//I need to get the value of initialPath to this ELSE statement
if (savefile.getFileFilter().equals(filter2)) {
String path = savefile.getSelectedFile() + ".java";
File file = new File(path);
writer = new FileWriter(file, false);
System.out.println(savefile.getFileFilter());
writer.write(jTextPane1.getText());
writer.close();
} else if (savefile.getFileFilter().equals(filter)) {
String path = savefile.getSelectedFile() + ".txt";
File file = new File(path);
writer = new FileWriter(file, false);
writer.write(jTextPane1.getText());
writer.close();
} else {
System.out.println("No format");
}
} catch (Exception e) {
e.printStackTrace();
}
只是在你需要的地方聲明它,然後只在你的if塊內進行初始化。編輯:我剛纔看到它已經被定義在if-else語句之外,並且可以在它之外被引用。那麼你的問題到底是什麼?你想在另一種方法中使用該值嗎? –
爲什麼不使用返回'File'的函數? – nbokmans
不,我需要在jfilechooser中按批准/保存按鈕時獲取路徑位置。所以如果我已經在外面聲明變量,我無法獲取文件位置。 @OHGODSPIDERS –