Как открыть JFrame из другого класса - PullRequest
0 голосов
/ 24 марта 2019

Я хочу, чтобы программа открыла JFrame, в котором есть диалоговое окно, в настоящее время, когда я пытаюсь открыть userFileSelected, она открывает основной JFrame, который обычно показывает содержимое файла ввода, но я хочу, чтобы программа открывала JFrame с диалоговое окно, чтобы пользователь мог сначала ввести файл, а затем программа откроет файл, который был введен.

Может кто-нибудь помочь мне выяснить, как я мог бы сначала открыть JFrame с помощью диалогового окна, а затем открыть остальную часть программы.

Класс с JFrame, принимающим пользовательский ввод:

public class userFileSelected extends JFrame implements ActionListener, KeyListener {

    public static void main(String[] args) {


    JFrame parent = new JFrame();
    String selectedFile;
    selectedFile = JOptionPane.showInputDialog(parent, "Input file name");
    String selectedFile1 = selectedFile;
    selectedRequirement = selectedFile1;
    }

Где я хочу, чтобы класс назывался:

    @Override
    public void actionPerformed(ActionEvent ae) {
        if ("FileInput".equals(ae.getActionCommand())) {
            userFileSelected ufs = new userFileSelected();
        }

1 Ответ

0 голосов
/ 24 марта 2019

Если я правильно понял ваш вопрос, добавьте оператор if / else в метод инициализации вашего приложения.Если файл был выбран, то frame.setVisible(false).И вы можете инициализировать JFrame отдельно, если объявите его как публичный.так ваш код будет выглядеть так:

public class userFileSelected extends JFrame implements ActionListener, KeyListener {
//populate this field however you see fit
private boolean fileSelected;
//public JFrame so other classes can make modifications.
public JFrame parent = new JFrame();
public static void main(String[] args) {
String selectedFile;
selectedFile = JOptionPane.showInputDialog(parent, "Input file name");
String selectedFile1 = selectedFile;
selectedRequirement = selectedFile1;

if (fileSelected) {
   parent.setVisible(false);
}
else {
  parent.setVisible(true);
   }
}
...