繁体   English   中英

从一个类创建一个JFrame并从中获取输入

[英]Create a JFrame from a class and take input from it

我对如何实现要实现的目标感到有些困惑。 在我的主要Java类中,我希望能够为诸如设置之类的事情调用多个JFrame。 我在主类中设置了GUI; 我希望我的按钮调用单独的JFrame,然后捕获用户输入,然后将其返回给主类进行处理。 像这样:

public class Main extends JFrame{
     public Main(){}

     button.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
               new Settings();
          }
     });
}

public class Settings extends JFrame{
     submit.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
               //Capture data and return it to main
          }
     });
}

我不确定是否要正确解决这个问题。 我希望所有的小弹出窗口都位于不同的Java文件中,以便于使用。

我认为您不需要JFrame进行设置。
在Java中,有一个像JOptionPane的对象,这就是您所需要的。

这里有我的例子:

String[] levels = {"Easy", "Medium", "Gomoku"};
int result = JOptionPane.showOptionDialog(null,
                    "Choose level:", "OX Level",
                    JOptionPane.OK_CANCEL_OPTION,
                    JOptionPane.QUESTION_MESSAGE,
                    null, levels, levels[0]);

在这里,您获得了不错的教程: 如何制作对话框

通常,动态应用程序设置由应用程序中的某种“管理员”用户提供(至少基于我在公司应用程序开发5年后所看到的内容)。 我不确定您的应用程序有多复杂,但是对于一个简单的应用程序,带有用于输入应用程序设置的键/值对的屏幕将是“标准”的选择。

正如Maniek所说,JOptionPane是在单独的框中捕获来自用户的输入的最简单方法。 http://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html

但是,如果您尝试创建一个用于设置的新窗口,则必须初始化JFrame。 我会像这样设置我的按钮:

       Settings test = new Settings();                   // creates a new window
       test.setSize(400, 300 );                  // sets the size
       test.setVisible( true );                  // makes it visible

因为当您仅调用“ new Settings()”时,我认为它不会那样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM