0

我一直在为我的主要项目做套接字编程。所以在阅读了很多这里和其他博客之后,我设法制作了一个 TableView。但问题是我对 TableView 的 api 不太熟悉,所以这对我来说有点问题。

public class Server implements Runnable {

    ServerSocket sersock;
    Socket sock;

    @Override
    public void run() {

        try {
            sersock = new ServerSocket(9000);
            while (true) {
                sock = sersock.accept();
                new Thread(new client_handler(sock)).start();
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

 public class client_handler implements Runnable { //Inner class.

        Socket sock;
        DataInputStream dis;
        DataOutputStream dos;
        String ip;

        public client_handler(Socket sock) {
            this.sock = sock;
        }

        public client_handler(String ip) {
            this.ip = ip;
        }

        public String getIp() {
            return ip;
        }

        public void setIp(String ip) {
            this.ip = ip;
        }

        @Override
        public void run() {

            try {
                dis = new DataInputStream(sock.getInputStream());
                dos = new DataOutputStream(sock.getOutputStream());

                ip = sock.getInetAddress().getHostAddress();
                System.out.println(ip);

                al.add(this);

                data.add(this);
            } catch (Exception e) {

                data.remove(this);

            }
        }
    }
}

这是初始化的一部分

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
    iptracker.setCellValueFactory(new PropertyValueFactory<>("ip"));
    data = FXCollections.observableArrayList();
    tableView.setItems(data);
}

这是我的宣言

@FXML
private TableView<Server.client_handler> tableView;
@FXML
private TableColumn iptracker;

ObservableList<Server.client_handler> data;

现在我想要的是,如果建立了连接(当然会), client_handlersock作为参数调用。现在我想将此袜子作为 IP 地址添加到我的 TableView 中。但我不知道该怎么做。?此外,当连接从另一端断开时,

我如何删除对象,就像我试图做的那样,但没有运气。! 稍后我想通过流将整个列表发送到其他客户端。那么如何遍历我的 TableView 的每一行显然只有 1 列。我希望它这次不会生病。:p我知道 ObservableList<> 与 ArrayList 不同,但是这个项目,我试图从 Swings 移植它,所以 jTable 与 ArrayList 配合得很好。thiscatch(Exception e)




4

0 回答 0