2013-07-17 203 views
1

我想在表格視圖中顯示從數據庫中的圖像提取。這是我如何設置與圖像列我的表視圖:Java方法不會覆蓋

TableColumn prodImageCol = new TableColumn("IMAGES"); 
    prodImageCol.setCellValueFactory(new PropertyValueFactory<Product, Image>("prodImage")); 
    prodImageCol.setMinWidth(100); 
    // setting cell factory for product image   
    prodImageCol.setCellFactory(new Callback<TableColumn<Product, Image>, TableCell<Product, Image>>() { 
     @Override 
     public TableCell<Product, Image> call(TableColumn<Product, Image> param) { 
      TableCell<Product, Image> cell = new TableCell<Product, Image>() { 
       @Override //Error here 
       public void updateItem(Product item, boolean empty) { 
        if (item != null) { 
         ImageView imageview = new ImageView(); 
         imageview.setFitHeight(50); 
         imageview.setFitWidth(50); 
         imageview.setImage((Image) item.getprodImage()); 
         setGraphic(imageview); 
        } 
       } 
      }; 
      return cell; 
     } 
    }); 

但是,我得到的方法不會覆蓋或實現從超的方法。我不知道爲什麼會這樣,因爲我從網站上關注如何在表格視圖中顯示圖像。有人可以向我解釋爲什麼是這樣嗎?提前致謝。

+0

我複製/粘貼你的代碼在我的IDE,一切都很好我看到這裏沒有問題。 –

回答

1

UPDATE:該方法的updateItem的簽名是:

@Override 
protected void updateItem(Image image, boolean b) { 
    super.updateItem(image, b); 
} 

我貼我原來的答覆太快(之前我給你做了同樣的編譯錯誤)。

你可以有這樣的方法,如果你喜歡:

@Override 

這意味着你將重新定義一個方法完全相同的簽名:

public void updateItem(Product item, boolean empty); 

你不能用它註釋(名稱和參數)來自基類。

或者,反向泛型類型參數:

<Image, Product> vs. <Product, Image> 
+0

我已經檢查過,但沒有任何區別。我在某處丟失了一些半列嗎?更多我的圖像沒有出現。如果我刪除了覆蓋部分,該列顯示writeableImage地址。但是,我添加覆蓋後沒有顯示任何東西 –

+0

但我不能將產品項目更改爲圖像圖像,因爲我從產品類 –

+0

得到的東西然後刪除「@Override」 – Keith