Я работаю над простым клиент-серверным проектом. Его функция не имеет особого значения, потому что у меня проблема со списком клиентов в пользовательском интерфейсе моего сервера. Он использует FXML и имеет listView для отображения IP-адресов клиентов, но не обновляется при запуске нового клиента. Я попробовал несколько методов, чтобы приблизиться к этому, но мне бы хотелось получить помощь. Коды я дал ниже. Если того, что я предоставил, недостаточно, дайте мне знать, и я обновлю этот пост.
enter code herepackage chattingnetwork;
import javafx.application.Platform;
import javafx.scene.control.ListView;
import java.io.*;
import java.net.*;
import java.util.Date;
public class Server {
private static ListView clientListView;
public static void startServer() {
try {
ServerSocket serverSocket = new ServerSocket(8000);
System.out.println("Server started at " + new Date() + '\n');
while (true) {
Socket socket = serverSocket.accept();
String clientIP = socket.getInetAddress().getHostAddress();
System.out.println("Client connected: " + clientIP);
Platform.runLater(() -> {
if (clientListView != null) {
clientListView.getItems().add(clientIP);
System.out.println("Added client to ListView: " + clientIP);
} else {
System.out.println("clientListView is not initialized");
}
});
new Thread(new ClientHandler(socket)).start();
}
} catch (IOException e) {
System.err.println("Error starting server: " + e.getMessage());
}
}
public static void setClientListView(ListView listView) {
clientListView = listView;
}
}
Это мой код на стороне сервера, и когда подключается новый клиент, он выводит на консоль сообщение о подключении нового клиента, но, как я уже упоминал, ListView в пользовательском интерфейсе не обновляется. Вот мой контроллер и коды FXML:
package chattingnetwork;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
public class serverFXMLController {
@FXML
private ListView clientListView;
@FXML
public void initialize() {
System.out.println("Server UI initialized.");
if (clientListView != null) {
System.out.println("clientListView is initialized.");
Server.setClientListView(clientListView);
} else {
System.out.println("clientListView is null.");
}
}
}
При подключении нового клиента «clientListView инициализируется». печатается в консоли. Вот FXML-файл пользовательского интерфейса сервера:
Подробнее здесь: https://stackoverflow.com/questions/792 ... er-ui-fxml
Ошибка при обновлении списка клиентов в пользовательском интерфейсе сервера FXML ⇐ JAVA
Программисты JAVA общаются здесь
1733072985
Anonymous
Я работаю над простым клиент-серверным проектом. Его функция не имеет особого значения, потому что у меня проблема со списком клиентов в пользовательском интерфейсе моего сервера. Он использует FXML и имеет listView для отображения IP-адресов клиентов, но не обновляется при запуске нового клиента. Я попробовал несколько методов, чтобы приблизиться к этому, но мне бы хотелось получить помощь. Коды я дал ниже. Если того, что я предоставил, недостаточно, дайте мне знать, и я обновлю этот пост.
enter code herepackage chattingnetwork;
import javafx.application.Platform;
import javafx.scene.control.ListView;
import java.io.*;
import java.net.*;
import java.util.Date;
public class Server {
private static ListView clientListView;
public static void startServer() {
try {
ServerSocket serverSocket = new ServerSocket(8000);
System.out.println("Server started at " + new Date() + '\n');
while (true) {
Socket socket = serverSocket.accept();
String clientIP = socket.getInetAddress().getHostAddress();
System.out.println("Client connected: " + clientIP);
Platform.runLater(() -> {
if (clientListView != null) {
clientListView.getItems().add(clientIP);
System.out.println("Added client to ListView: " + clientIP);
} else {
System.out.println("clientListView is not initialized");
}
});
new Thread(new ClientHandler(socket)).start();
}
} catch (IOException e) {
System.err.println("Error starting server: " + e.getMessage());
}
}
public static void setClientListView(ListView listView) {
clientListView = listView;
}
}
Это мой код на стороне сервера, и когда подключается новый клиент, он выводит на консоль сообщение о подключении нового клиента, но, как я уже упоминал, ListView в пользовательском интерфейсе не обновляется. Вот мой контроллер и коды FXML:
package chattingnetwork;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
public class serverFXMLController {
@FXML
private ListView clientListView;
@FXML
public void initialize() {
System.out.println("Server UI initialized.");
if (clientListView != null) {
System.out.println("clientListView is initialized.");
Server.setClientListView(clientListView);
} else {
System.out.println("clientListView is null.");
}
}
}
При подключении нового клиента «clientListView инициализируется». печатается в консоли. Вот FXML-файл пользовательского интерфейса сервера:
Подробнее здесь: [url]https://stackoverflow.com/questions/79242026/error-in-updating-client-list-in-server-ui-fxml[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия