2013-07-17 4 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); 
} 

Я отправил свой оригинальный ответ слишком быстро (прежде чем я получил ту же ошибку компиляции вы сделали).

Вы можете иметь метод, как это, если вам нравится:

public void updateItem(Product item, boolean empty); 

Вы просто не можете аннотировать его с:

@Override 

Что означает, что вы пересматривают метод с точно такой же сигнатурой (имя и аргументы) из базового класса.

В качестве альтернативы, реверс аргументов универсального типа:

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

Я проверил уже, но нет никакой разницы. Я где-то пропустил какой-то полуколонок? Некоторые мои изображения не появляются. Если я удалю часть переопределения, столбец покажет writeableImage адреса. Однако после того, как я добавил переопределение, ничего не отображается –

+0

Но я не могу изменить элемент продукта на изображение изображения, потому что я получаю что-то из класса Product –

+0

. Затем удалите «@Override» – Keith