Я использую swing jFrame для создания графического интерфейса для моей системы бронирования клиент-сервер. Я столкнулся с проблемой на клиенте, где я хотел бы использовать DatagramSocket заявил в этом:Доступ к объекту DatagramSocket из кнопки Swing ActionPerformed
public BookingClientUI() throws SocketException {
DatagramSocket clientSocket = new DatagramSocket(9876);
initComponents();
RecvPacket recvProcess = new RecvPacket(clientSocket);
Thread recvThread = new Thread(recvProcess);
recvThread.start();
}
позже в этой кнопке ActionPerformed:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String passwordString = new String(passwordfield.getPassword());
byte[] passwordBytes = passwordString.getBytes();
byte[] packetData = new byte[1500];
packetData = SendPacketHandler.packetConstructor(SendOpcodes.REGISTER_USER,usernamefield.getText(),EncryptionHandler.hashPassword(passwordBytes));
DatagramPacket packet = new DatagramPacket(packetData,packetData.length,InetAddress.getByName("127.0.0.1"),9876);
clientSocket.send(packet);
} catch (NoSuchAlgorithmException | UnknownHostException | IOException ex) {
Logger.getLogger(BookingClientUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
Очевидно, что линия:
clientSocket.send(packet);
имеет ошибку «не удается найти символ», поскольку объявленная DatagramSocket не входит в область видимости. Однако я не знаю, как это исправить, поскольку я только программировал на Java пару дней.
Любая помощь будет оценена по достоинству.