у меня этот 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 {
.......
}
Как вы можете изображения, когда моя программа начинается I используйте JFileChooser для выбора файла; после этого я нажимаю кнопку, которая открывает другой jFrame; в этом jFrame (Frame2)
Что мне понадобится, так это использовать файл, который я выбрал в предыдущем jFrame (Frame1). Поэтому мне нужно использовать переменную «file» из «Frame1» в «Frame2».
Я попытался сделать это в frame2:
Frame1 obj1 = new Frame1();
File file2 = obj1.file;
System.out.println(file2 );
Так что, когда я запустить программу и выбрать файл, а затем я нажимаю «Button1» запустить «frame2», он первым печатает имя файла (» name ") из« Frame1 » , после чего он печатает« null », поэтому я не могу получить правильное значение« file »из« Frame1 »и использовать его в« Frame2 ».
Как я могу это сделать? Благодаря
1) Для лучшей помощи рано, опубликовать [SSCCE] (http://sscce.org/). 2) См. [Использование нескольких JFrames, Хорошая/Плохая Практика?] (Http://stackoverflow.com/a/9554657/418556) –
............... привет? –