我有一个JavaFX TableView,它有两列。此表使用观察列表gas RatioRES
作为其模型。
public class GasRatioMeasureBean {
private String number;
private String measure;
public String getNumber() {
return number;
}
public void setNumber(int number) {
this.number = "Measure" + (number + 1) + "(%)";
}
public String getMeasure() {
return measure;
}
public void setMeasure(String measure) {
this.measure = measure;
}
}
我想将其中一个设置为可编辑,另一个设置为不可编辑。
首先,我尝试了FXML方法:
<TableView layoutX="24.0" layoutY="122.0" prefHeight="200.0" prefWidth="215.0" fx:id="measureTableView">
<columns>
<TableColumn editable="false" prefWidth="100.0" sortable="false" text="No" fx:id="measureNumbersColumn" />
<TableColumn editable="true" prefWidth="110.0" sortable="false" text="Measures" fx:id="measuresColumn" />
</columns>
</TableView>
但这不管用。表格始终不可编辑。
我还尝试了java方式:
private void initMeasuresTableView() {
measureNumbersColumn.setCellValueFactory(new PropertyValueFactory<GasRatioMeasureBean, String>("number"));
measureNumbersColumn.setEditable(false);
measuresColumn.setCellValueFactory(new PropertyValueFactory<GasRatioMeasureBean, String>("measure"));
measuresColumn.setOnEditCommit(
new EventHandler<CellEditEvent<GasRatioMeasureBean, String>>() {
public void handle(CellEditEvent<GasRatioMeasureBean, String> measure) {
((GasRatioMeasureBean) measure.getTableView().getItems().get(
measure.getTablePosition().getRow())
).setMeasure(measure.getNewValue());
}
}
);
measureTableView.setItems(gasRatioMeasures);
measureTableView.setEditable(true);
}
但这也不管用。所有的桌子都不能修改。
如果TableColumn有一个可编辑的属性,那么它应该可以单独设置。
如果你知道我哪里做错了,请帮帮我。谢谢。
PS:measureNumbersColumn列已经可以正常显示(当我还没有初始化MeasureColumn时)。
PPS:我也尝试过,而不是setOnEditCommit
setOnEditStart
setOnEditCommit
不被调用,但是可以仅在可编辑列中调用setOnEditStart
。
这是您可以在TableView中创建可编辑列的方法。
tblViewPerson.set可编辑(true);
// Making editable columns
// For ID
tblColID.setCellFactory(TextFieldTableCell.forTableColumn());
tblColID.setOnEditCommit(
new EventHandler<CellEditEvent<Person, String>>() {
public void handle(CellEditEvent<Person, String> t) {
((Person) t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setId(t.getNewValue());
}
}
);
您没有使用支持编辑的单元格工厂。你需要做:
measureNumbersColumn.setCellFactory(TextFieldTableCell.forTableColumn())
这将使您的列使用TextFieldTableCell
而不是默认的TableCell
。TextFieldTableCell支持编辑(查看源代码并查找startEdit
method)。
或者,如果您对TextFieldTableCell的行为不满意,可以编写自己的TableCell实现,并重写startEdit、cancelEdit和updateItem方法。
measureNumbersColumn.setCellFactory(new Callback<TableColumn<GasRatioMeasureBean,String>, TableCell<GasRatioMeasureBean,String>>() {
@Override
public TableCell<GasRatioMeasureBean, String> call(
TableColumn<GasRatioMeasureBean, String> arg0) {
return MyOwnTableCell();
}
});
在中可以实现这样的功能吗 注意这里A是部分着色的。 我知道光凭类是不可能的。(文本显示在) 要实现这一点,有什么解决方案可以单独使用Swing或必须使用CSS? 编辑: 如果这是不可能的摆动,任何解决方案与以下标签?
问题内容: 我只需要解码和更新json对象的特定值。问题是我不知道对象的完整结构。encoding / json包“忽略” /截断了结构中未提供的字段,因此对这些字段进行编码会丢失。我想知道是否有可能仅解组我知道的结构,对其进行更新,然后再进行组封而不截断/删除未知的结构/信息。 问题答案: 似乎有可能。
鉴于这些实体和存储库可以访问DDBB中的数据: 我想为方法getTotalPurchaseAmounts(长customerId)添加缓存,这样,当为客户添加一些购买时,只有该客户的purchasesd被逐出。 相关的依赖项是: 相关配置: 由于spring缓存(和ehcache)逐出的次数受元素或所有条目的限制,我开发的解决方案是通过友好方式创建缓存(每个客户一个),这样我就可以逐出这些缓存。
问题内容: 我正在使用React.js作为前端框架来构建一个项目。在一个特定页面上,我正在向用户显示完整的数据集。我有一个包含完整数据集的数组。它是JSON对象的数组。在向用户呈现此数据方面,我目前通过使用Array.map()返回每一项数据来显示整个数据集。 这是朝着正确方向迈出的一步,但是现在我只需要显示数据集的一部分,而不是全部,我还需要一些控件来了解已显示的总数据集的数量,并且有多少数据集
问题内容: 说我有两个JavaBeans 和。 如果创建一个Person对象的列表,我想编组成这样的东西: 可以使用这里描述的技术: 使用JAXB解组/编组List 通过使用和注释JaxbList,可以将其编组为上述XML。 但是,能够重用相同的类来封送对象列表也很好。实际上,我将有许多其他类型的bean。我可以这样: 但是,理想情况下,最好用类名的复数形式替换“列表”,用类名替换“ item”。
问题内容: 我想知道是否可以在Swift中编写内联汇编。 我知道在Objective-C中,您可以使用如下代码: 但是在Swift中似乎无法使用 。 有谁知道如何使用,如果可能的话。我没有找到任何关于它的信息,所以我认为这是一个很好的问题。 问题答案: 要扩展Robert Levy所说的内容,您可以只使用Swift / Obj-C互操作功能,并编写一个可以处理ASM内容的Obj- C类,然后可以从