私はこのjFrameクラスを持っています:
public class Frame1 extends javax.swing.JFrame {
........
String name;
File file;
JFileChooser FileChooser = new JFileChooser();
if (FileChooser.getSelectedFile().isFile()) {
try {
file = FileChooser.getSelectedFile();
name = FileChooser.getSelectedFile().getName();
System.out.println( name );
} catch (FileNotFoundException ex) {
Logger.getLogger(Frame1.class.getName()).log(Level.SEVERE, null, ex);
}
}
........
private void Button1 (java.awt.event.ActionEvent evt) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Frame2 obj = new Frame2 ();
}
});
}
}
次に、クラス「Frame2」を作成しました。
public class Frame2 extends javax.swing.JFrame {
.......
}
お分かりのように、プログラムの開始時に JFileChooser を使用してファイルを選択します。その後、別の jFrame を開くボタンをクリックします。このjFrame(Frame2)で
必要なのは、前の jFrame (Frame1) で選択したファイルを使用することです。したがって、「Frame2」の「Frame1」から「file」変数を使用する必要があります。
私はFrame2でこれをやろうとしました:
Frame1 obj1 = new Frame1();
File file2 = obj1.file;
System.out.println( file2 );
プログラムを実行してファイルを選択し、「Button1」をクリックして「Frame2」を実行すると、最初に「Frame1」からファイル名(「name」)が出力され、その後「null」が出力されるので、 「Frame1」から正しい「file」値を取得し、「Frame2」で使用します。
どうやってやるの?ありがとう