このリンクの以前の投稿に続いて、別の問題があります。
次のコードを考えると:
public class GuiHandler extends javax.swing.JFrame {
// GuiHandler is the class that runs the entire project
// here are two private fields that I use in the code , I have more but they
// irrelevant for the moment
final JFileChooser openFiles = new JFileChooser();
private DataParser xmlParser = new DataParser();
// later on I have this method - XMLfilesBrowserActionPerformed
private void XMLfilesBrowserActionPerformed(java.awt.event.ActionEvent evt) {
//setting the file chooser
openFiles.setFileSelectionMode(JFileChooser.FILES_ONLY);
openFiles.setAcceptAllFileFilterUsed(false);
if (openFiles.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
//getting the selected file
File selected = openFiles.getSelectedFile();
// from here I parse the XML file that I opened with JFileChooser
// with the help of one of my methods getNodeListFromFile
xmlParser.getNodeListFromFile(selected);
問題は、上記のリンクで以前に提案された宣言を使用できないことですmain
(そして、それはかなり良いものだったことを追加する必要があります:))、投稿されたコードは次のとおりです。
public class NativeFileChooser {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
JFileChooser jfc = new JFileChooser();
jfc.showOpenDialog(null);
}
});
}
}
を使用すると、後でファイルmain
を操作するのが非常に難しくなります。XML
getNodeListFromFile
私が必要とするのは、の「シンプルな」ブラウザをJFileChooser
使用してから、選択したファイルを使用するmain
ことです。
私のコードで上記のコード(またはその他のもの)を使用する方法を誰かが説明していただければ幸いです。
よろしくお願いします
編集:
このようなコードを使用すると;
public void launchFileChooser() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
jfc.setAcceptAllFileFilterUsed(false);
if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
newFile = jfc.getSelectedFile();
}
});
}
ここnewFile
にデータメンバーがあります。
ファイルを開いた後、コードがクラッシュします。
データ メンバを作成jfc
すると、コードは通常のブラウザを開きます。それを修正する方法はありますか?
ありがとう