从没有任何按钮的TableView中删除特定数据?

时间:2016-01-31 10:35:54

标签: java arraylist javafx tableview observablelist

我为我的主要项目做了一段时间的插座编程。所以在从这里和其他博客阅读了很多内容后,我设法制作了一个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_handler作为参数调用sock。现在我想将这个袜子添加到我的TableView作为IP地址。但我不知道怎么做。?
此外,如果连接从this语句中的另一侧丢失,我怎么能删除catch(Exception e)对象,就像我试图做但没有运气一样。!
后来我想通过流将整个列表发送给其他客户端。那么我如何遍历我的TableView的每一行,显然只有一列。

我希望这次没有发布。 :P

我知道ObservableList&lt;&gt;与ArrayList不同,但是这个项目,我试图从Swings中移植它,所以jTable在ArrayList中工作得很好。

0 个答案:

没有答案