阅读量:0
在Java中,实现对话框与主窗口的数据交互通常需要使用Swing库。以下是一个简单的示例,展示了如何在主窗口和对话框之间传递数据:
- 首先,导入所需的库:
import javax.swing.*; import java.awt.*; import java.awt.event.*;
- 创建一个主窗口类(MainWindow),继承自JFrame:
public class MainWindow extends JFrame { private JTextField textField; private JButton openDialogButton; public MainWindow() { initUI(); } private void initUI() { setLayout(new FlowLayout()); setSize(300, 200); setTitle("主窗口"); textField = new JTextField(20); add(textField); openDialogButton = new JButton("打开对话框"); openDialogButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { openDialog(); } }); add(openDialogButton); } private void openDialog() { DialogWindow dialog = new DialogWindow(this); dialog.setVisible(true); } public void setTextFieldText(String text) { textField.setText(text); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { MainWindow mainWindow = new MainWindow(); mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainWindow.setVisible(true); } }); } }
- 创建一个对话框类(DialogWindow),继承自JDialog:
public class DialogWindow extends JDialog { private JTextField textField; private JButton setTextButton; private MainWindow mainWindow; public DialogWindow(MainWindow mainWindow) { super(mainWindow, "对话框", true); this.mainWindow = mainWindow; initUI(); } private void initUI() { setLayout(new FlowLayout()); setSize(200, 150); textField = new JTextField(20); add(textField); setTextButton = new JButton("设置文本"); setTextButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { setTextFieldInMainWindow(); } }); add(setTextButton); } private void setTextFieldInMainWindow() { String text = textField.getText(); mainWindow.setTextFieldText(text); dispose(); } }
在这个示例中,我们创建了一个主窗口(MainWindow)和一个对话框(DialogWindow)。主窗口包含一个文本字段和一个按钮,用于打开对话框。对话框包含一个文本字段和一个按钮,用于将文本字段的内容设置到主窗口的文本字段中。
当用户点击主窗口中的“打开对话框”按钮时,会创建并显示一个对话框实例。在对话框中输入文本并点击“设置文本”按钮后,对话框会将输入的文本设置到主窗口的文本字段中。