2016-11-24 62 views
0

TableCellの先頭にある最初のHyperlinkの整列でこの問題が発生します。
私はほとんどすべてを試しましたが、動作させることができませんでした。私はまさにこれがなぜ起こるか全くわから得なかっましたが、セルがnullにそれを設定することにより、空になったときに、グラフィックを削除した場合、問題はそうTableViewのTableCellハイパーリンクが正しく整列していない - JavaFX

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

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固定する。

項目は、それらが非空であるかのようにそうでなければ空のセルを示すことができたので、細胞は、とにかく空になっ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

関連する問題