我有两个摆动框架。第一帧将包含一个按钮。当我们点击按钮时,我们将获得另一个框架,其中包含五个标签(这是一个类的变量。),旁边有文本字段,还有一个提交按钮。用户将输入值并点击提交按钮。 我的问题是当用户点击提交按钮时,如何从第二帧中检索值。我有像blelow这样的代码。
public class Form extends JFrame implements ActionListener {
JPanel panel = new JPanel();
JFrame frame = new JFrame("New frame");
JPanel panel2 = new JPanel();
JButton button = new JButton("add");
JButton button2 = new JButton("Submit");
JLabel label;
JTextField textfield;
public Form() {
setLayout(new BorderLayout());
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel.setPreferredSize(new Dimension(300, 200));
button.addActionListener(this);
add(panel, BorderLayout.CENTER);
add(button, BorderLayout.SOUTH);
}
public static void main(String[] a) {
Form s = new Form();
s.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
s.pack();
s.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
panel2.setLayout(new FlowLayout());
panel2.setPreferredSize(new Dimension(1000, 1000));
final Field[] fields = Employee.class.getFields();
for (Field temp : fields) {
label = new JLabel(temp.getName());
label.setBounds(20, 50, 100, 20);
textfield = new JTextField(20);
textfield.setBounds(140, 50, 100, 20);
panel2.add(label);
panel2.add(textfield);
}
frame.add(panel2);
frame.setSize(290, 300);
frame.setVisible(true);
button2.setSize(20, 30);
frame.add(button2, BorderLayout.SOUTH);
repaint();
revalidate();
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
}
});
}
}
答案 0 :(得分:2)
首先看一下The Use of Multiple JFrames, Good/Bad Practice?
除了使用第二帧之外,你应该使用一个模态对话框,当它变得可见时,将暂停你的程序执行,直到它被处理掉,此时它将返回,你可以从中提取你想要的值。它
有关详细信息,请参阅How to Make Dialogs