如何检索swing表单值

时间:2014-10-31 06:20:13

标签: java swing

我有两个摆动框架。第一帧将包含一个按钮。当我们点击按钮时,我们将获得另一个框架,其中包含五个标签(这是一个类的变量。),旁边有文本字段,还有一个提交按钮。用户将输入值并点击提交按钮。 我的问题是当用户点击提交按钮时,如何从第二帧中检索值。我有像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) {

            }
        });

    }

}

1 个答案:

答案 0 :(得分:2)

首先看一下The Use of Multiple JFrames, Good/Bad Practice?

除了使用第二帧之外,你应该使用一个模态对话框,当它变得可见时,将暂停你的程序执行,直到它被处理掉,此时它将返回,你可以从中提取你想要的值。它

有关详细信息,请参阅How to Make Dialogs