2016-11-24 48 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