Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JavaFX unost teksta u tabele

[es] :: Java :: JavaFX unost teksta u tabele

[ Pregleda: 979 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan34

Član broj: 326385
Poruke: 9
31.223.129.*



Profil

icon JavaFX unost teksta u tabele29.05.2016. u 19:44 - pre 51 meseci
Pozdrav. Imam problem sa unosom teksta u tabele u javaFX. Treba mi da za odredjenu knjigu u tabeli u jednoj koloni budu slike naslovne strane knjige, a u drugoj, kratak opis djela kao i naziv pisca i slicno. Opise citam iz fajlova. Kod koji koristim za dodavanje opisa:

Code:

TableColumn<File, String> column = TableColumnBuilder.<File, String>create().text("").build();
        pathColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<File, String>, ObservableValue<String>>() {
            @Override
            public ObservableValue<String> call(TableColumn.CellDataFeatures<File, String> p) {
               // File file = p.getValue();
               //novo dodano
              
               String summaryPath = "../Knjiga/Opis/";
               ArrayList<String> list = new ArrayList<>();
               list.add("basara.txt");
               list.add("buka.txt");
               list.add("cuvari.txt");
               list.add("demijan.txt");
               String string="";
               File file = null;
               try{
               for(int i = 0; i < list.size(); i++)
               {    
                    String path1 = summaryPath + list.get(i);
                    file = new File(path1);
                    //File[] files = new File[list.size()];
                    //files[i] = file;
                    string = Knjiga.fromFileToString(file); //koristim custom metodu koja dodaje iz txt fajla sadrzaj u string, ona radi
               }

               } catch(IOException e) { e.printStackTrace();}
                
                return new SimpleStringProperty(string); 
            }
        });


Kao sto vidite iz koda, problem je sto mi vraca samo jedan string, poslednji koji bude kad se izvrsi for petlja, a meni bi trebalo za razlicite knjige, razliciti stringovi. Nemam bas ideju kako bih to drugacije regulisao, ne pada mi nista na pamet.

[Ovu poruku je menjao Milan34 dana 29.05.2016. u 21:20 GMT+1]
 
Odgovor na temu

Milan34

Član broj: 326385
Poruke: 9
31.223.129.*



Profil

icon Re: JavaFX unost teksta u tabele23.06.2016. u 23:13 - pre 50 meseci
Beskrajno pogresno rjesenje je ovo iznad bilo :). Poslije tutorijala, i citanja, ovako sam rijesio problem...Generalno, koristenje liste u cellValueFactory nije pametno...Slika mi je bila problem, dok String, poslije tutorijala, nije. Samo se za observable list veze lista objekata, a kod kreiranja kolone specifikujemo koji atribut iz zeljene klase zelimo prikazati u tabeli...

Code:

    public void handle(ActionEvent event){
        TableView<Knjiga> table = new TableView<Knjiga>();
        AnchorPane root = new AnchorPane();                        
        ObservableList<Knjiga> data = FXCollections.observableArrayList(userCatalogue);
        table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
        TableColumn<Knjiga, String> imageCol = new TableColumn<Knjiga, String>();
        TableColumn<Knjiga, String> descriptionCol = new TableColumn<Knjiga, String>();
        Callback<TableColumn<Knjiga, String>, TableCell<Knjiga, String>> cellFactory;
        table.setItems(data);
         
        back = new Button("Nazad");
        sceneTable = new Scene(root, 500, 500);
 
        imageCol.setCellValueFactory(new PropertyValueFactory("mainPage"));
        descriptionCol.setCellValueFactory(new PropertyValueFactory("summary"));
        cellFactory = new Callback<TableColumn<Knjiga, String>, TableCell<Knjiga, String>>() {
            @Override
            public TableCell<Knjiga, String> call(TableColumn<Knjiga, String> param) {
                 HBox box= new HBox();                         
                 ImageView imageview = new ImageView();                      
                 return new TableCell<Knjiga, String> () {
                    @Override
                    public void updateItem(String item, boolean empty) {
                     //  super.updateItem(item, empty);
                       if (item != null) {
                           box.setSpacing(10) ;
                           box.setPadding(new Insets(10, 10, 10, 10));
                           Image img = null;
                           Knjiga k = getTableView().getItems().get(getIndex());
                           img = new Image(new File(k.getMainPage()).toURI().toString());
 
                           imageview.setImage(img);
                           imageview.setFitHeight(320.0);
                           imageview.setFitWidth(200.0);
 
                       }
                       if(!box.getChildren().contains(imageview)) {
                       box.getChildren().add(imageview);    
                       setGraphic(box);
                       }
                   }
                 };
            }
        };
        imageCol.setCellFactory(cellFactory);
        table.getColumns().addAll(imageCol, descriptionCol);
        AnchorPane.setTopAnchor(table, 30.0);
        AnchorPane.setLeftAnchor(table, 10.0);
        AnchorPane.setRightAnchor(table, 10.0);
        AnchorPane.setBottomAnchor(table, 10.0);
        root.getChildren().addAll(table, back);
        back.setOnAction(e -> ButtonClicked(e));




 
Odgovor na temu

[es] :: Java :: JavaFX unost teksta u tabele

[ Pregleda: 979 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.