【问题标题】:Add prefix to tableview javafx为 tableview javafx 添加前缀
【发布时间】:2018-08-19 13:30:34
【问题描述】:

我想在我的表格视图中添加前缀,我阅读了文档,没有这样的功能。这怎么做?下面是我的 java 代码,请不要讨厌我。在下面的代码中,我创建了一个 tableview,它连接到一个名为“citizen”的 pojo 类,请注意,该表运行良好,我只需要在 中添加一些前缀,例如在废物列中应该有前缀“kg”

       private AnchorPane root;
    @FXML
    public TableView<citizen> scheduledCitizenTable;
    @FXML
    private Button approveBtn;
    @FXML
    private TableColumn<citizen, Integer> idColumn;
    @FXML
    private TableColumn<citizen, String> nameColumn;
    @FXML
    private TableColumn<citizen, String> addressColumn;
    @FXML
    private TableColumn<citizen, String> arrivalColumn;
    @FXML
    private TableColumn<citizen, String> departureColumn;
    @FXML
    private TableColumn<citizen, String> vehicleId;
    @FXML
    private TableColumn<citizen, Integer> waste;
    @FXML
    private TableColumn<citizen, String> remarks;
VehicleRoutingProblem vpr = new VehicleRoutingProblem();


  public static ObservableList<citizen> List = FXCollections.observableArrayList(

           // new citizen(1,"testing","testing","testing","testing")

);


    public ObservableList<citizen> getList() {
        return List;
    }

    public void setList(ObservableList<citizen> List) {
        this.List = List;
    }
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        //System.out.println("List contains"+List.size());
try{
        vehicleId.setCellValueFactory(new PropertyValueFactory<citizen,String>("vehicleid"));
        idColumn.setCellValueFactory(new PropertyValueFactory<citizen, Integer>("citizenId"));
        nameColumn.setCellValueFactory(new PropertyValueFactory<citizen, String>("citizenName"));
        addressColumn.setCellValueFactory(new PropertyValueFactory<citizen, String>("citizenAdress"));
        arrivalColumn.setCellValueFactory(new PropertyValueFactory<citizen, String>("arrivalTime"));
        departureColumn.setCellValueFactory(new PropertyValueFactory<citizen, String>("Departure"));
        waste.setCellValueFactory(new PropertyValueFactory<citizen,Integer>("waste"));
        remarks.setCellValueFactory(new PropertyValueFactory<citizen, String>("remarks"));
        //actionColumn.setCellValueFactory(new PropertyValueFactory<>("citizenId"));;
        vehicleId.setCellFactory(column -> {
    return new TableCell<citizen, String>() {
        @Override
        protected void updateItem(String item, boolean empty) {
            super.updateItem(item, empty);

            if (item == null || empty) {
                setText(getText());
                setStyle("");
            } else {
                if (item.equals("vehicle1")) {
                    setText(getText());
                    setStyle("-fx-background-color: yellow");
                    System.out.println("getting the text for vehicle 1"+getText());

                } else {
                    setText(getText());
                    setStyle("-fx-background-color: tomato");
                }
            }
        }
    };
});
        scheduledCitizenTable.setItems(List);}catch(NullPointerException e){};



    }





}

【问题讨论】:

  • 删除 setText(getText());try { ... } catch (NullPointerException e) {} 前者不会改变任何东西,后者只是隐藏异常,该异常会提供有关您的应用程序为何处于不应处于的状态的信息...但是,为什么不将有关根据内容修改单元格的知识(如vehicleId 列所示)应用于waste 列并将text 属性设置为""item + " kg"

标签: java user-interface javafx tableview


【解决方案1】:

正如fabian在他的评论中所说! 你可以做和你对vehicleId做的完全一样的事情,并在每一行添加“kg”列废物!

waste.setCellFactory(new Callback<TableColumn<citizen,Integer>,TableCell<citizen,Integer>>() {
            public TableCell<citizen,Integer> call(TableColumn<citizen,Integer> param) {
                return new TableCell<citizen, Integer>() {

                    @Override
                    public void updateItem(Integer item, boolean empty) {
                        super.updateItem(item, empty);
                        if(!empty)
                        setText(item.toString()+" kg");
                        else
                        setText("");
                    }
                };
            }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 2018-12-12
    • 2018-10-03
    • 2013-01-30
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多