我已ActionListener连接到,JTextField并且想要输入一些内容,以便它退出其中的方法ActionListener。
ActionListener
JTextField
码:
main() { Security(x,x,x); } public void Security(JTextArea out, JTextField in) { in.setText(""); in.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { if (in.getText().contains("exitsys")) { out.append("Security:Security System Deactivated\n"); return; } in.setText(""); } }); out.append("Security:Security System Activated\n"); fileWrite(":SYSTEM_INITIATED@" + time(), out); }
我想输入"exitsys"并返回主类方法"main()"。
"exitsys"
"main()"
该fileWrite方法使用a PrintWriter输出数据。
fileWrite
PrintWriter
问题摘要:我尝试调用return;但它不会返回方法main(),我该如何解决?
基本上,您需要的是某种模式对话框,通过该对话框,您可以有效地在显示对话框的那一点上暂停程序的执行,直到关闭(关闭)该对话框为止,然后继续执行…
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); } } }
有关更多详细信息,请参见如何制作对话框