我对如何实现我想要实现的东西感到有些困惑。在我的主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文件中使用我的所有小弹出窗口以便于使用。
答案 0 :(得分:3)
我认为您不需要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]);
这里有一个很好的教程:How to Make Dialogs
答案 1 :(得分:0)
通常,动态应用程序设置由应用程序中的某种“管理员”用户提供(至少基于我在公司应用程序开发5年后看到的内容)。我不确定您的应用程序有多复杂,但对于一个简单的应用程序,带有键/值对的屏幕用于输入应用程序设置将是一条“标准”路线。
答案 2 :(得分:0)
正如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()”时我不认为它会这样做。