-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAIController.java
More file actions
63 lines (55 loc) · 1.71 KB
/
AIController.java
File metadata and controls
63 lines (55 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import py4j.GatewayServer;
public class AIController {
@FXML
private TextField inputField;
@FXML
private TextArea outputArea;
@FXML
private Button sendButton;
@FXML
private Button clearButton;
@FXML
private Button exitButton;
private GatewayServer gatewayServer;
private AIOperator aiOperator;
@FXML
public void initialize() {
// Iniciar el servidor Py4J
gatewayServer = new GatewayServer();
gatewayServer.start();
// Conectar con el operador de IA en Python
try {
aiOperator = (AIOperator) gatewayServer.getGateway().get("aiOperator");
} catch (Exception e) {
e.printStackTrace();
}
// Configurar los eventos de los botones
sendButton.setOnAction(e -> sendButtonClicked());
clearButton.setOnAction(e -> clearButtonClicked());
exitButton.setOnAction(e -> exitButtonClicked());
}
private void sendButtonClicked() {
String input = inputField.getText().trim();
if (!input.isEmpty()) {
try {
String response = aiOperator.generateResponse(input);
outputArea.appendText("Tú: " + input + "\n");
outputArea.appendText("IA: " + response + "\n");
inputField.clear();
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void clearButtonClicked() {
outputArea.clear();
inputField.clear();
}
private void exitButtonClicked() {
System.exit(0);
}
}