当前位置: 首页 > 知识库问答 >
问题:

JavaFX:将TableView列与另一个TableView的行数绑定

戚升
2023-03-14

我有一个带有名称”列和“车道数”列的道路表视图。车道数显示一个整数,即道路的车道数。添加新道路时,我有另一个 TableView,在其中设置车道的属性。我的车道类是:

public class Lane {

    private StringProperty name;

    private FloatProperty width;

    private BooleanProperty normalDirection;

    public Lane(String name, float width, boolean normalDirection) {
        this.name = new SimpleStringProperty(name);
        this.width = new SimpleFloatProperty(width);
        this.normalDirection = new SimpleBooleanProperty(normalDirection);
    }

    public void setName(String value) { 
        nameProperty().set(value); 
    }

    public String getName() { 
        return nameProperty().get();
    }

    public StringProperty nameProperty() { 
        if (name == null) {
            name = new SimpleStringProperty(this, "name");
        }
        return name; 
    }

    public void setWidth(float value) { 
        widthProperty().set(value); 
    }

    public float getWidth() { 
        return widthProperty().get();
    }

    public FloatProperty widthProperty() { 
        if (width == null) {
            width = new SimpleFloatProperty(this, "width");
        }
        return width; 
    }

    public void setNormalDirection(boolean value) { 
        normalDirectionProperty().set(value);
    }

    public boolean getNormalDirection() { 
        return normalDirectionProperty().get();
    }

    public BooleanProperty normalDirectionProperty() { 
        if (normalDirection == null) normalDirection = new SimpleBooleanProperty(this, "normalDirection");
        return normalDirection; 
    } 
}

我正在尝试创建一个类Road,我想在其中绑定一个属性私有整数属性编号的Lanes观察列表的大小

我是JavaFX世界的新手,感谢任何帮助。感谢高级。


共有1个答案

宗安宁
2023-03-14

您是否正在寻找类似以下内容:

public class Road {
   private final ObservableList<Lane> lanes = FXCollections.observableArrayList();
   public final ObservableList<Lane> getLanes() {
      return lanes ;
   }

   private final ReadOnlyIntegerWrapper numberOfLanes = new ReadOnlyIntegerWrapper(this, "numberOfLanes");
   public final int getNumberOfLanes() {
      return numberOfLanes.get();
   }
   public ReadOnlyIntegerProperty numberOfLanesProperty() {
      return numberOfLanes.getReadOnlyProperty();
   }

   public Road() {
      numberOfLanes.bind(Bindings.size(lanes));
   }
}
 类似资料:
  • 我想在JavaFX中显示内容。下面是我用来将内容设置到表列中的代码。我遇到的问题是,它只显示一行。循环只迭代了5次:每次它都会获取的第一个值。 如果忽略行,则循环将迭代中的所有内容。

  • 我最近正在使用javaFx,并希望通过绑定堆栈更新实现观察者模式,使用javaFx中的ListView或TableView。但是,我不知道要对我的ComplexNumberStack类做什么更改。

  • 我有一个用SceneBuilder生成的TableView,所有列都是从其他视图导入的FXML,直到没有问题为止,但列没有填充宽度。 我试图用scene builder和FXML来解决这个问题,但没有运气,所有的大小都是计算出来的。 我尝试用一个change listener对其进行编码,它在每次窗口改变大小以适应列的大小时都会进行检查。 这样可以工作,并且列的大小调整到适当的宽度(基本上我得到了

  • 问题内容: 我希望TableView的高度适应填充的行数,以使其从不显示任何空行。换句话说,TableView的高度不应超过最后填充的行。我该怎么做呢? 问题答案: 如果您希望此操作有效,则必须设置。 然后,您可以将的高度与表格中包含的项目大小乘以固定单元格大小绑定在一起。 演示: 注意:我乘以fixedCellSize *(数据大小+ 1.01)以包含标题行。

  • 假设我有一个地图集: 在fxml控制器初始化期间,我将1条记录放入该映射中,然后将其包装为: 然后为我的 当我运行这个JavaFX应用程序并显示一条记录时,一切都很好。 问题是: 当我稍后向地图中添加更多记录时,我的将不会刷新这些记录。 如何将动态地图集合绑定到TableView中? 谢啦