java中jframe中按钮调用另一个窗体并在另一个窗体上添加数据保存到当前窗体
时间: 2024-03-26 10:40:45 浏览: 26
要在Java中的JFrame中的按钮调用另一个窗体并在另一个窗体上添加数据保存到当前窗体,你可以使用以下步骤:
1. 创建一个新的JFrame或JDialog,这将是你要调用的第二个窗体。
2. 在你的第一个JFrame中创建一个按钮。
3. 在按钮的ActionListener中实例化你的第二个窗体,并将第一个窗体作为参数传递给第二个窗体。
4. 在第二个窗体中添加数据,并将数据返回给第一个窗体。
5. 在第一个窗体中的ActionListener中获取第二个窗体返回的数据,并将其添加到第一个窗体中。
下面是一些代码示例:
```
import javax.swing.*;
import java.awt.event.*;
public class MyFrame extends JFrame {
private JTextField textField;
public MyFrame() {
textField = new JTextField(20);
JButton button = new JButton("Open Second Frame");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SecondFrame secondFrame = new SecondFrame(MyFrame.this);
secondFrame.setVisible(true);
}
});
add(textField);
add(button);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public void setData(String data) {
textField.setText(data);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyFrame().setVisible(true);
}
});
}
}
class SecondFrame extends JFrame {
private MyFrame myFrame;
private JTextField textField;
public SecondFrame(MyFrame myFrame) {
this.myFrame = myFrame;
textField = new JTextField(20);
JButton button = new JButton("Save and Close");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = textField.getText();
myFrame.setData(data);
dispose();
}
});
add(textField);
add(button);
pack();
setLocationRelativeTo(null);
}
}
```
这段代码创建了一个JFrame,其中包含一个文本框和一个按钮。当按钮被点击时,它将实例化一个新的JFrame(SecondFrame),并将第一个窗体(MyFrame)作为参数传递给它。在第二个窗体中,它包含一个文本框和一个保存按钮。当保存按钮被点击时,它将获取文本框中的数据,并将其返回给第一个窗体。在第一个窗体中,它将获取第二个窗体返回的数据,并将其添加到文本框中。