我有这个 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”,这样我就可以了t 从“Frame1”获取正确的“file”值并在“Frame2”中使用它。
我怎样才能做到这一点?谢谢