如何从另一个类打开JFrame

时间:2019-03-24 17:29:01

标签: java string jframe joptionpane

我希望程序打开其中包含对话框的JFrame,当前当我尝试打开userFileSelected时,它将打开主JFrame,该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 :(得分:0)

如果我正确理解了您的问题,请在应用程序的初始化方法中添加一条if / else语句。如果已选择文件,则frame.setVisible(false)。 如果将其声明为public,则可以单独初始化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);
   }
}