如何从另一个 class 打开 JFrame
How to open a JFrame from another class
我希望程序打开其中有一个对话框的 JFrame,目前当我尝试打开 userFileSelected 时,它会打开主 JFrame,它通常显示文件输入的内容,但我希望程序打开JFrame 带有对话框,因此用户可以先输入文件,然后程序打开已输入的文件。
谁能帮我弄清楚如何才能先用对话框打开 JFrame,然后再打开程序的其余部分。
Class 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;
}
我希望调用 class 的位置:
@Override
public void actionPerformed(ActionEvent ae) {
if ("FileInput".equals(ae.getActionCommand())) {
userFileSelected ufs = new userFileSelected();
}
如果我没有正确理解您的问题,请在您应用的初始化方法中添加 if/else 语句。如果已选择文件,则 frame.setVisible(false)
。
如果将 JFrame 声明为 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);
}
}
我希望程序打开其中有一个对话框的 JFrame,目前当我尝试打开 userFileSelected 时,它会打开主 JFrame,它通常显示文件输入的内容,但我希望程序打开JFrame 带有对话框,因此用户可以先输入文件,然后程序打开已输入的文件。
谁能帮我弄清楚如何才能先用对话框打开 JFrame,然后再打开程序的其余部分。
Class 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;
}
我希望调用 class 的位置:
@Override
public void actionPerformed(ActionEvent ae) {
if ("FileInput".equals(ae.getActionCommand())) {
userFileSelected ufs = new userFileSelected();
}
如果我没有正确理解您的问题,请在您应用的初始化方法中添加 if/else 语句。如果已选择文件,则 frame.setVisible(false)
。
如果将 JFrame 声明为 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);
}
}