Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 码头关闭计划_User Interface_Jetty - Fatal编程技术网

User interface 码头关闭计划

User interface 码头关闭计划,user-interface,jetty,User Interface,Jetty,我试图创建一个GUI界面,用不同的返回字符串启动和停止Jetty服务器。目前,我有一个启动和停止按钮编程,它返回“你好世界”到本地主机:8080。我的代码贴在下面,是的,我有导入,删除以简化它 public class JettyGUI extends AbstractHandler{ private static Server server = new Server(8080); private static boolean running = false; private static

我试图创建一个GUI界面,用不同的返回字符串启动和停止Jetty服务器。目前,我有一个启动和停止按钮编程,它返回“你好世界”到本地主机:8080。我的代码贴在下面,是的,我有导入,删除以简化它

public class JettyGUI extends AbstractHandler{

private static Server server = new Server(8080);
private static boolean running = false;

private static void gui() {

    JFrame frame = new JFrame("Jetty");
    JButton start_button = new JButton("Start");
    JButton stop_button = new JButton("Stop");
    JPanel panel = new JPanel();

    panel.setBackground(Color.BLACK);

    panel.add(start_button);
    panel.add(stop_button);

    frame.add(panel);

    frame.setSize(300, 150);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

    start_button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            System.out.println("Start pressed.");
            startServer();
        }
    });
    stop_button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            System.out.println("Stop pressed.");
            JettyGUI.stopServer();
        }
    });

}


private static void stopServer() {
    if(running == false){
        System.err.println("Server is already running!");
    }
    else{
        try {
            server.stop();
        } 
        catch (Exception ex) {
            System.out.println(ex);
        }
    }
    System.out.println("Server stopped!");
}

private static void startServer() {
    if(running == true){
        System.err.println("Server is already running!");
    }
    else{
        try{
            server.setHandler(new JettyGUI());
            server.start();
            server.join();
        }
        catch(Exception ex){
            System.out.println(ex);
        }
      System.out.println("Server started!");  
    }
}

    public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

    response.setContentType("text;charset=utf-8");
    response.setStatus(HttpServletResponse.SC_OK);
    baseRequest.setHandled(true);
    response.getWriter().println("Hello World!"); //print this text

}

public static void main(String[] args) {

    gui();

}

}
当我按下“开始”按钮时,Jetty API似乎接管了我的应用程序,我不能再按下“停止”按钮。有谁能告诉我一种方法来解决这个问题,或者以不同的方式编程

谢谢!:) -亨利·哈里斯(Henry Harris)服务器.join()将使当前线程等待服务器停止


注释出来,作为GUI程序,您不需要它。

谢谢,伙计。简单但有效的修复方法。谢谢。我只是个编程高手。