2016-11-24 47 views
0

我有第一个HyperlinkTableCell之上对齐的问题。
我已经尝试了几乎所有的东西,但无法使其正常工作。TableCell超链接在TableView上未正确对齐 - JavaFX

IMAGE

colData.setCellFactory(e -> { 
     return new TableCell<TabelaShitjet, Hyperlink>(){ 
      @Override 
      protected void updateItem(Hyperlink item, boolean empty) { 
       super.updateItem(item, empty); 
       if (!empty){ 
        item.setOnAction(e -> { 
         TeDhenatBlerjes(Integer.parseInt(getTableView().getColumns().get(0).getCellData(getTableRow().getIndex())+""), item.getText()); 
        }); 
        setGraphic(item); 
       } 
      } 
     }; 
    }); 

CONSTRUCTOR

public class TabelaShitjet { 
    private Hyperlink data; 

    public TabelaShitjet(String data){ 
     this.data = new Hyperlink(data); 
    } 

    public Hyperlink getData() { 
     return data; 
    } 

    public void setData(Hyperlink data) { 
     this.data = data; 
    } 
} 

回答

0

我还是不知道到底为什么发生这种情况,但如果你删除图形时,电池将其设置为null变空,这个问题似乎等待修复。

您应该撤销做时,项目上的updateItem其中细胞变空反正调用添加,因为无法证明,否则空单元格,如果他们非空单元格的任何修改:

@Override 
protected void updateItem(Hyperlink item, boolean empty) { 
    super.updateItem(item, empty); 
    if (!empty){ 
     item.setOnAction(e -> { 
      TeDhenatBlerjes(Integer.parseInt(getTableView().getColumns().get(0).getCellData(getTableRow().getIndex())+""), item.getText()); 
     }); 
    } 

    // set graphic every time i.e. set it to null for empty cells 
    setGraphic(item); 
} 

一般来说,updateItem方法应该是这样实现:

@Override 
protected void updateItem(ItemType item, boolean empty) { 
    super.updateItem(item, empty); 
    if (empty) { 
     // undo any updates that could have been made 
     // to make the cell look different from the empty cell 
    } else { 
     // update cell to display item 
    } 
} 
+0

太感谢你了,它的工作:) – uran