javafx中listview中的文本框重构,并得到文本框中的值

来源:互联网 发布:软件质量保证计划示例 编辑:程序博客网 时间:2024/06/06 16:37
colfactnum.setEditable(true);//可编辑 colfactnum属性
colfactnum.setCellFactory(new Callback<TableColumn<UqcpCitemRecordBOVO, String>, TableCell<UqcpCitemRecordBOVO, String>>()
{

@Override
public TableCell<UqcpCitemRecordBOVO, String> call(TableColumn<UqcpCitemRecordBOVO, String> arg0)
{
final TextField txtRemark = new TextField();
return new TableCell<UqcpCitemRecordBOVO, String>()
{
@Override
protected void updateItem(String value, boolean empty)
{
super.updateItem(value, empty);
if (empty)
{
setGraphic(null);
} else
{

final UqcpCitemRecordBOVO uqcpCitemRecordBOVO = tvwUqcpCitemRecordBOVOList.get(getIndex());

HBox hbox = new HBox();
txtRemark.setText(value);
hbox.getChildren().add(txtRemark);
if (uqcpCitemRecordBOVO.getRemark().equals("-1")) //开始给remark赋初始值
{
uqcpCitemRecordBOVO.setRemark("");
}else{
uqcpCitemRecordBOVO.setRemark(value);
}
txtRemark.textProperty().bindBidirectional(uqcpCitemRecordBOVO.remarkProperty());


setGraphic(hbox);

//重构的textbox增加一个时区焦点事件

txtRemark.focusedProperty().addListener(new ChangeListener<Boolean>()
{


@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean arg1, Boolean arg2)
{
if(!arg2)
uqcpCitemRecordBOVO.setUda3(txtRemark.getText());

}

});
}


}
};



}


});
0 0
原创粉丝点击