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();
}
解决方案
如果我正确理解了您的问题,请在您的应用程序的初始化方法中添加 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);
}
}
推荐阅读
- r - 拆分数据集并创建两个组
- javascript - 如何使用javascript从某个字符中提取字符串?
- azure - 无法设置 AppID URI:“属性 identifierUris 无效”
- swift - 如何从扩展的 collectionview 到达 tableview 的 indexpath.row?
- opencv - Mat assignment 的 Eclipse CDT 语法错误解析器错误错误:它编译并运行正常
- jquery - .slideToggle 不是一个函数 - jquery
- java - 为什么 JSON 响应是 200
- sql - SQL server 根据键合并行
- android - 使用 GreenDao 时启用 proguard 的发布版本中的应用程序崩溃
- javascript - D3 Zoom 的 translateExtent 未按预期工作