当前位置: 首页 > 面试题库 >

如何在ActionListener中退出方法

袁英豪
2023-03-14
问题内容

我已ActionListener连接到,JTextField并且想要输入一些内容,以便它退出其中的方法ActionListener

码:

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()"

fileWrite方法使用a 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);

        }

    }

}

有关更多详细信息,请参见如何制作对话框



 类似资料:
  • 我开发了一款android应用程序,它有一个启动屏幕和一个登录页面。问题是,当用户提供凭证并按下登录按钮时,它会打开controlActivity。但当我按下后退按钮时,我会再次导航到登录页面。如果我再次按下后退按钮,我会导航到启动屏幕。当用户按下后退按钮,应用程序应该退出时,我如何停止导航到上一页?

  • 问题内容: 用于退出的命令是什么?(即终止Node.js进程) 问题答案: 调用全局对象的方法: 从文档: process.exit([code]) 以指定的结束进程。如果省略,则退出使用“成功”代码。 要以“失败”代码退出: 执行节点的外壳程序应将退出代码视为。

  • 问题内容: Java中的关键字可用于中断循环或switch语句。有什么可以用来打破方法的吗? 问题答案: 使用关键字退出方法。 从上面链接到的Java教程: 任何声明为void的方法都不会返回值。它不需要包含return语句,但是可以这样做。在这种情况下,可以使用return语句从控制流块中分支出来并退出该方法,其用法如下:

  • 问题内容: 在Java中退出/终止while循环的最佳方法是什么? 例如,我的代码当前如下: 问题答案: 用途: 但是,如果您的代码看起来 完全 像您指定的那样,则可以使用普通循环并将条件更改为:

  • 问题内容: 我有一个非常简单的问题,但是我没有使用Mysql从SP退出任何简单的代码。谁能和我分享该怎么做? 问题答案:

  • 我被卡住了,无法逃脱。它说: 但当我键入时,它只会出现在对象体中。