有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从另一个类打开JFrame

我想让程序打开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) 个答案

  1. # 1 楼答案

    如果我正确理解了您的问题,请在应用程序的初始化方法中添加If/else语句。如果已选择文件,则frame.setVisible(false)。 如果将JFrame声明为public,则可以单独初始化它。 所以你的代码看起来像:

    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);
       }
    }