[英]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.