将图像添加到Tableview Javafx

时间:2014-03-30 14:38:38

标签: java image javafx tableview

我想将一个Image添加到Table View Cell中。我有照片的路径,但不知道如何使图像显示在表格中。 表:

ArrayList<Box> list1 = (ArrayList<Box>)service.listBox();

 ObservableList<Box> l = FXCollections.observableList(list1);

 tableViewBox.getItems().setAll(l);

 tableColumnBoxNr
   .setCellValueFactory(new PropertyValueFactory<Box, Integer>(
  "boxNr"));
  tableColumnPreis
    .setCellValueFactory(new PropertyValueFactory<Box, Float>(
  "preis"));
  tableColumnGroesse
    .setCellValueFactory(new PropertyValueFactory<Box, Integer>(
  "groesse"));
  tableColumnInnen
    .setCellValueFactory(new PropertyValueFactory<Box, Boolean>(
  "innen"));
  tableColumnFenster
.setCellValueFactory(new PropertyValueFactory<Box, Boolean>(
  "fenster"));
  tableColumnMaterial
.setCellValueFactory(new PropertyValueFactory<Box, String>(
  "material"));
  tableColumnEinstreu
    .setCellValueFactory(new PropertyValueFactory<Box, String>(
  "einstreu"));
  tableColumnPhoto
.setCellValueFactory(new PropertyValueFactory<Box, String>(
  "photo"));

以下是&#34; Box&#34;看起来像:

private int boxNr;
private float preis;
private int groesse;
private boolean innen;
private boolean fenster;
private String einstreu;
private String material;
private String photo;

图像的路径存储在private String photo中,我希望该图像显示在表格中。目前它只是显示路径。

尝试了评论中的链接,代码如下所示:

public void eineMethode() {
 try {

   ArrayList<Box> list1 = (ArrayList<Box>)service.listBox();

   ImageView imageview = new ImageView();


     imageview.setFitHeight(50);
     imageview.setFitWidth(50);
     imageview.setImage(new Image("sepm.ss14.e1103974.gui/Pferdebox.jpg"));


     tableColumnPhoto.setCellFactory(new Callback<TableColumn<Box,ImageView>,TableCell<Box,ImageView>>()
       {

 @Override
 public TableCell<Box, ImageView> call(
   TableColumn<Box, ImageView> arg0) {
  TableCell<Box,ImageView> cell = new TableCell<Box,ImageView>(){

   public void updateItem(Box box, boolean empty) {
    if(box!=null) {
     VBox vb=new VBox();
     //vb.setAlignment(Pos.CENTER);
      ImageView imageview = new ImageView(new Image("/SEPM2014/src/sepm/ss14/e1103974/gui/Pferdebox.jpg"));


            imageview.setFitHeight(50);
            imageview.setFitWidth(50);
            vb.getChildren().addAll(imageview);
            setGraphic(vb);
    }
   }
  };
  // TODO Auto-generated method stub
  return cell;
 }

       });


   ObservableList<Box> l = FXCollections.observableList(list1);

   tableViewBox.getItems().setAll(l);

  tableColumnBoxNr
.setCellValueFactory(new PropertyValueFactory<Box, Integer>(
  "boxNr"));
  tableColumnPreis
.setCellValueFactory(new PropertyValueFactory<Box, Float>(
  "preis"));
  tableColumnGroesse
.setCellValueFactory(new PropertyValueFactory<Box, Integer>(
  "groesse"));
  tableColumnInnen
.setCellValueFactory(new PropertyValueFactory<Box, Boolean>(
  "innen"));
  tableColumnFenster
.setCellValueFactory(new PropertyValueFactory<Box, Boolean>(
  "fenster"));
  tableColumnMaterial
.setCellValueFactory(new PropertyValueFactory<Box, String>(
  "material"));
  tableColumnEinstreu
.setCellValueFactory(new PropertyValueFactory<Box, String>(
  "einstreu"));
  tableColumnPhoto
.setCellValueFactory(new PropertyValueFactory<Box, ImageView>(
  "photo"));
  tableViewBox.getColumns().setAll(tableColumnBoxNr,
   tableColumnPreis, tableColumnGroesse, tableColumnInnen,
tableColumnFenster, tableColumnMaterial,
tableColumnEinstreu, tableColumnPhoto);

  //tableViewBox.getItems().setAll(list1);
 } catch (Exception e) {
  e.printStackTrace();
 }
}

仍然没有工作并且获得无效的URL错误,而且我不确定如何将Image本身添加到表中,就像在我的实际代码中一样,我添加了ObservableList&#34; l&#34;到桌子。 非常感谢帮助。提前谢谢。

0 个答案:

没有答案