修改菜单 2023年3月16日16:33:48
parent
e11828a01f
commit
a5930180d0
|
|
@ -542,4 +542,8 @@ public class CodecToolsController {
|
||||||
public void mail_menu_item(ActionEvent event) {
|
public void mail_menu_item(ActionEvent event) {
|
||||||
load_small_tools(7);
|
load_small_tools(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -467,4 +467,8 @@ public class HomeController implements Serializable {
|
||||||
public void ssh_client_menu_item(ActionEvent event) {
|
public void ssh_client_menu_item(ActionEvent event) {
|
||||||
load_server_tools(2);
|
load_server_tools(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -478,4 +478,8 @@ public class HttpToolsController {
|
||||||
public void mail_menu_item(ActionEvent event) {
|
public void mail_menu_item(ActionEvent event) {
|
||||||
load_small_tools(7);
|
load_small_tools(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -414,4 +414,8 @@ public class NetWorkToolsController {
|
||||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||||
listView.getSelectionModel().select(index);
|
listView.getSelectionModel().select(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -500,4 +500,8 @@ public class PlayerController {
|
||||||
public void mail_menu_item(ActionEvent event) {
|
public void mail_menu_item(ActionEvent event) {
|
||||||
load_small_tools(7);
|
load_small_tools(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ public class ServerToolsController {
|
||||||
private AnchorPane httpServer;
|
private AnchorPane httpServer;
|
||||||
private AnchorPane ftpServer;
|
private AnchorPane ftpServer;
|
||||||
private AnchorPane sshClient;
|
private AnchorPane sshClient;
|
||||||
|
private AnchorPane socketServer;
|
||||||
|
|
||||||
public static final String color_cell = "#f4f4f4";
|
public static final String color_cell = "#f4f4f4";
|
||||||
|
|
||||||
|
|
@ -268,10 +269,32 @@ public class ServerToolsController {
|
||||||
}
|
}
|
||||||
sshClient(flag);
|
sshClient(flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newValue.getIndex() == 3){
|
||||||
|
if (socketServer != null){
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
socketServer(flag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void socketServer(boolean flag){
|
||||||
|
listView.getSelectionModel().select(3);
|
||||||
|
if (!flag){
|
||||||
|
try {
|
||||||
|
root = FXMLLoader.load(ResourcesUtils.getResource("socket-server"));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
ftpServer = root;
|
||||||
|
}else {
|
||||||
|
root = ftpServer;
|
||||||
|
}
|
||||||
|
common_method();
|
||||||
|
}
|
||||||
|
|
||||||
private void sshClient(boolean flag) {
|
private void sshClient(boolean flag) {
|
||||||
listView.getSelectionModel().select(2);
|
listView.getSelectionModel().select(2);
|
||||||
if (!flag){
|
if (!flag){
|
||||||
|
|
@ -328,6 +351,7 @@ public class ServerToolsController {
|
||||||
case Http_Server -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5));
|
case Http_Server -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5));
|
||||||
case Ftp_Server -> new Image(ImagePath.path(ImagePath.ImagePathType.SPRING_SECURITY));
|
case Ftp_Server -> new Image(ImagePath.path(ImagePath.ImagePathType.SPRING_SECURITY));
|
||||||
case SSH_Client -> new Image(ImagePath.path(ImagePath.ImagePathType.SPRING_SECURITY));
|
case SSH_Client -> new Image(ImagePath.path(ImagePath.ImagePathType.SPRING_SECURITY));
|
||||||
|
case Socket_Server -> new Image(ImagePath.path(ImagePath.ImagePathType.SPRING_SECURITY));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -474,4 +498,13 @@ public class ServerToolsController {
|
||||||
}
|
}
|
||||||
sshClient(flag);
|
sshClient(flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
boolean flag = false;
|
||||||
|
if (sshClient != null){
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
socketServer(flag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -660,4 +660,8 @@ public class SmallToolsController {
|
||||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||||
listView.getSelectionModel().select(index);
|
listView.getSelectionModel().select(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,166 @@
|
||||||
|
package com.zhangmeng.tools.controller;
|
||||||
|
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.collections.ListChangeListener;
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.TextArea;
|
||||||
|
import javafx.scene.control.TextField;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.java_websocket.WebSocket;
|
||||||
|
import org.java_websocket.handshake.ClientHandshake;
|
||||||
|
import org.java_websocket.server.WebSocketServer;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 芊芊墨客
|
||||||
|
* @version : 1.0
|
||||||
|
* @date : 2023-03-16 11:22
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class SocketServerController {
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public TextField server_status;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public Button stop;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public Button start;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public TextField port;
|
||||||
|
|
||||||
|
public static ObservableList<String> message_list = FXCollections.observableArrayList();
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public TextArea message_show;
|
||||||
|
|
||||||
|
private WebSocketServer webSocketServer;
|
||||||
|
|
||||||
|
private boolean isStart;
|
||||||
|
|
||||||
|
public static Map<String,WebSocket> map = new HashMap<>();
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void initialize() {
|
||||||
|
if (server_status.getText().length() == 0 ){
|
||||||
|
server_status.setText("服务未启动!");
|
||||||
|
}
|
||||||
|
|
||||||
|
port.setText(String.valueOf(9999));
|
||||||
|
start.setOnAction(event -> {
|
||||||
|
if (isStart){
|
||||||
|
try {
|
||||||
|
webSocketServer.stop();
|
||||||
|
} catch (IOException | InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sshServer_init();
|
||||||
|
});
|
||||||
|
|
||||||
|
stop.setOnAction(event -> {
|
||||||
|
if (isStart){
|
||||||
|
try {
|
||||||
|
webSocketServer.stop();
|
||||||
|
isStart = false;
|
||||||
|
server_status.setText("服务已经停止!端口:" + port.getText());
|
||||||
|
} catch (IOException | InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
message_list.addListener((ListChangeListener<String>) c -> {
|
||||||
|
while (c.next()) {
|
||||||
|
if (c.wasAdded()) {
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
for (String s : message_list) {
|
||||||
|
stringBuilder.append(s);
|
||||||
|
}
|
||||||
|
receive(stringBuilder.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sshServer_init(){
|
||||||
|
//启动socket server
|
||||||
|
webSocketServer = new WebSocketServer(new InetSocketAddress(Integer.parseInt(port.getText()))) {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOpen(WebSocket webSocket, ClientHandshake clientHandshake) {
|
||||||
|
add_message("WebSocketServer:open----------------------------------------------");
|
||||||
|
put(webSocket);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClose(WebSocket webSocket, int i, String s, boolean b) {
|
||||||
|
add_message("WebSocketServer:onClose--------------------------------------------");
|
||||||
|
remove(webSocket);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMessage(WebSocket webSocket, String s) {
|
||||||
|
add_message("WebSocketServer:onMessage--------------------------------------------");
|
||||||
|
add_message(s);
|
||||||
|
webSocket.send(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(WebSocket webSocket, Exception e) {
|
||||||
|
add_message("WebSocketServer:onError--------------------------------------------");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
add_message("WebSocketServer:onStart--------------------------------------------");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
webSocketServer.start();
|
||||||
|
isStart = true;
|
||||||
|
server_status.setText("服务已启动!端口:" + port.getText());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void put(WebSocket webSocket){
|
||||||
|
String resourceDescriptor = webSocket.getResourceDescriptor();
|
||||||
|
String[] split = resourceDescriptor.split("\\?");
|
||||||
|
if (split.length > 0){
|
||||||
|
String params = split[1];
|
||||||
|
String userId = params.split("&")[0].split("=")[1];
|
||||||
|
map.put(userId,webSocket);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebSocket get(String userId){
|
||||||
|
return map.get(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void remove(WebSocket webSocket){
|
||||||
|
String resourceDescriptor = webSocket.getResourceDescriptor();
|
||||||
|
String[] split = resourceDescriptor.split("\\?");
|
||||||
|
if (split.length > 0){
|
||||||
|
String params = split[1];
|
||||||
|
String userId = params.split("&")[0].split("=")[1];
|
||||||
|
map.remove(userId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void receive(String msg) {
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
this.message_show.setText(msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void add_message(String msg){
|
||||||
|
message_list.add(msg);
|
||||||
|
message_list.add(System.lineSeparator());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -423,4 +423,8 @@ public class SqlToolsController {
|
||||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||||
listView.getSelectionModel().select(index);
|
listView.getSelectionModel().select(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void socket_server_menu_item(ActionEvent event) {
|
||||||
|
load_server_tools(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -275,6 +275,7 @@ public class ResourcesUtils {
|
||||||
Http_Server("Http Server工具",0),
|
Http_Server("Http Server工具",0),
|
||||||
Ftp_Server("Ftp Server工具",1),
|
Ftp_Server("Ftp Server工具",1),
|
||||||
SSH_Client("ssh 连接工具",2),
|
SSH_Client("ssh 连接工具",2),
|
||||||
|
Socket_Server("socket Server",3);
|
||||||
;
|
;
|
||||||
|
|
||||||
ServerTools(String title, int index) {
|
ServerTools(String title, int index) {
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 连接工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 连接工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 连接工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 连接工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 连接工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 连接工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.TextArea?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
|
||||||
|
|
||||||
|
<AnchorPane fx:controller="com.zhangmeng.tools.controller.SocketServerController" prefHeight="649.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" >
|
||||||
|
<children>
|
||||||
|
<Label layoutX="105.0" layoutY="34.0" text="端口:" />
|
||||||
|
<TextField fx:id="port" layoutX="157.0" layoutY="30.0" />
|
||||||
|
<Label layoutX="80.0" layoutY="86.0" text="日志展示:" />
|
||||||
|
<Button fx:id="start" layoutX="345.0" layoutY="30.0" mnemonicParsing="false" text="启动" />
|
||||||
|
<Button fx:id="stop" layoutX="408.0" layoutY="30.0" mnemonicParsing="false" text="停止" />
|
||||||
|
<Label layoutX="506.0" layoutY="34.0" text="服务状态:" />
|
||||||
|
<TextField fx:id="server_status" layoutX="574.0" layoutY="30.0" />
|
||||||
|
<TextArea fx:id="message_show" layoutX="157.0" layoutY="95.0" prefHeight="523.0" prefWidth="1009.0" AnchorPane.bottomAnchor="31.0" AnchorPane.leftAnchor="157.0" AnchorPane.rightAnchor="34.0" AnchorPane.topAnchor="95.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
|
@ -69,6 +69,7 @@
|
||||||
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="http-server 请求工具" onAction="#http_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ftp-server 请求工具" onAction="#ftp_server_menu_item"/>
|
||||||
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
<MenuItem mnemonicParsing="false" text="ssh-client 请求工具" onAction="#ssh_client_menu_item"/>
|
||||||
|
<MenuItem mnemonicParsing="false" text="socket-server 服务工具" onAction="#socket_server_menu_item"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
</menus>
|
</menus>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue