User interface 码头关闭计划
我试图创建一个GUI界面,用不同的返回字符串启动和停止Jetty服务器。目前,我有一个启动和停止按钮编程,它返回“你好世界”到本地主机:8080。我的代码贴在下面,是的,我有导入,删除以简化它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
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程序,您不需要它。谢谢,伙计。简单但有效的修复方法。谢谢。我只是个编程高手。