基本上,您需要的是某种模式对话框,通过该对话框,您可以有效地在显示对话框的那一点上暂停程序的执行,直到关闭(关闭)该对话框为止,然后继续执行…
import java.awt.EventQueue;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JDialog;import javax.swing.Jframe;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingUtilities;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;public class Test { public static void main(String[] args) { new Test(); } public Test() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } JDialog dialog = new JDialog(); dialog.setTitle("Testing"); dialog.setDefaultCloseOperation(Jframe.DISPOSE_ON_CLOSE); dialog.add(new TestPane()); dialog.pack(); dialog.setLocationRelativeTo(null); dialog.setVisible(true); System.out.println("Now back in the main..."); } }); } public class TestPane extends JPanel { private JTextField field; public TestPane() { setLayout(new GridBagLayout()); field = new JTextField(10); field.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if ("exitsys".equals(field.getText())) { SwingUtilities.getWindowAncestor(field).dispose(); } } }); add(field); } }}有关更多详细信息,请参见如何制作对话框



