JFileChooserで1つ以上のファイルを開く方法
JFileChooser は、ファイルやフォルダを開いたり、保存したり、表示したりするためのダイアログを作成するのに非常に優れた方法です。JFileChooser ダイアログ を開くには、次の 2 行のコードを入力するだけです。
//ファイルchooser
JFileChooser fc = new JFileChooser();
//ボタンがクリックされたときの応答
int return = fc.showOpenDialog(component_parent);
showOpenDialog は、開始ダイアログを開きます。このメソッドは、ユーザーがどのオプションを選択するかを示す3つの可能な値のうちの1つを返します:
- JFileChooser.CANCEL_OPTION: the user has unopened;
- JFileChooser.APPROVE_OPTION:ユーザーが開口部を検証しました。
- JFileChooser.ERROR_OPTION: エラーが発生しました。
このコードはダイアログボックスを表示し、選択したファイルを選択してロードします:
import java.awt.BorderLayout;Output:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
インポートjavax.swing.JMenuItem;
public class JFileChooserTest {
public static void main(String[] args) {
final JFrame window = new JFrame();
window.setSize(200,200);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
JMenuBar jmb = new JMenuBar();
JMenu jm = new JMenu("Ficher");
JMenuItem Open = new JMenuItem("Open");
jm.add(開く);
jmb.add(jm);
window.add(jmb,BorderLayout.NORTH);
JFileChooser fc = new JFileChooser();
Open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自動生成メソッド stub
int val_retour = fc.showOpenDialog(window);
if (val_retour == JFileChooser.APPROVE_OPTION) {
ファイル file = fc.getSelectedFile();
//ファイル名の表示
System.out.println("ファイル名: "+file.getName()+"\n");
//ファイルの絶対パスを表示します
System.out.println("Absolute path: "+file.getAbsolutePath()+"\n");
} else {
System.out.println("開くがキャンセルされました\n");
}
}
});
}
}
「開く」をクリックした後の端末画面:
ファイル名: decTo Binaire.cpp選択したファイルを取得するには、メソッド getSelectedFile()を呼び出します。戻り値がJFileChooser.APPROVE_OPTIONの場合、戻り値は class File.
ファイル名: C:\Users\VAIO\Documents\CC++\decTo Binaire.cpp
ファイル名と絶対パスは getName() および getAbsolutePath()を呼び出します。ユーザーが操作を取り消すと、取り消しを示すメッセージが表示されます。
JFileChooser を使用すると、1 つ以上のファイルを選択できます。それらすべてを開くには、コードを変更する必要があります。変更は、インスタンス宣言File は、選択されたファイルの配列になります。また、JFileChooserに、 setMultiSelectionEnabled().
final JFileChooser fc = new JFileChooser();Runtime:
fc.setMultiSelectionEnabled(true)
Open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自動生成メソッド stub
int val_retour = fc.showOpenDialog(window);
if (val_retour == JFileChooser.APPROVE_OPTION) {
File[] file = fc.getSelectedFiles();
//ファイルのセットをループします
for(File f:file){
System.out.println("File name: "+f.getName()+"\n");
System.out.println("絶対パス: "+f.getAbsolutePath()+"\n");
}
} else {
System.out.println("開くがキャンセルされました\n");
}
}
});
ファイル名: decTo Binaire.cppReferences:
絶対パス: C:\Users\VAIO\Documents\CC++\decTo Binaire.cpp
ファイル名: decalage_tableau.cpp
絶対パス: C:\Users\VAIO\Documents\CC++\decalage_tableau.cpp
ファイル名: determinant_matrice.cpp
絶対パス: C:\Users\VAIO\Documents\CC++\determinant_matrice.cpp
ファイル名: equation-1-degre.cpp
絶対パス: C:\Users\VAIO\Documents\CC++\equation-1-degre.cpp
JMenuBar コンポーネントの作成: JMenuBar
Java Doc: showOpenDialog メソッド