Habe ein Tableview
gefüllt mit einer Klasse, eine Spalte will nicht angezeigt werden.
Ich kapier es nicht, mach das nicht zum ersten mal aber irgendwie gehts nicht.
Schaut doch bitte mal drauf.
Das ist der Controller oder das was relevant ist. Darunter die Klasse.
Die Spalte columnIdVok wird nicht angezeigt.
Wenn ich in [new PropertyValueFactory<>("idvok"))] einen anderen Spaltennamen eingebe werden die Daten angezeigt. Was übersehe ich
Das die Klasse:
gefüllt mit einer Klasse, eine Spalte will nicht angezeigt werden.
Ich kapier es nicht, mach das nicht zum ersten mal aber irgendwie gehts nicht.
Schaut doch bitte mal drauf.
Das ist der Controller oder das was relevant ist. Darunter die Klasse.
Die Spalte columnIdVok wird nicht angezeigt.
Wenn ich in [new PropertyValueFactory<>("idvok"))] einen anderen Spaltennamen eingebe werden die Daten angezeigt. Was übersehe ich
Code:
// Register panes
@FXML private AnchorPane BlocksTVWords; // anchorpane muss heißen wie der Controller nur ohne den Anhang Controller
@FXML private TableView<BlocksWordsTVC> tableview;
@FXML private TableColumn<BlocksWordsTVC,String> columnId;
@FXML private TableColumn<BlocksWordsTVC,String> columnIdVok;
@FXML private TableColumn<BlocksWordsTVC,String> columnBaseLanguage;
@FXML private TableColumn<BlocksWordsTVC,String> columnWord;
@FXML private TableColumn<BlocksWordsTVC,Button> columnHearSpeech;
public ObservableList<BlocksWordsTVC> ctvMainOLst = FXCollections.observableArrayList();
// Variablen zum Tabview
private int range = 18;
private int start = 0;
private int anzds = 0;
private int insertcorrection = 0; // beim Einfügen und Löschen wird in der Scrollmethode korrigiert
// inject wird als init verwendet
public void injectBlocksController (BlocksController blockscontroller) throws MalformedURLException, IOException {
// übergeordneten Controller in diesem Controller registrieren
this.blockscontroller = blockscontroller;
// Tabellenspalten definieren, Bezeichnungen müssen mit denen im Construktor der Klasse übereinstimmen
columnId.setCellValueFactory(new PropertyValueFactory<>("id"));
columnIdVok.setCellValueFactory(new PropertyValueFactory<>("idvok"));
columnBaseLanguage.setCellValueFactory(new PropertyValueFactory<>("baseLanguage"));
columnWord.setCellValueFactory(new PropertyValueFactory<>("word"));
columnHearSpeech.setCellValueFactory(new PropertyValueFactory<>("hearSpeech"));
Das die Klasse:
Code:
public class BlocksWordsTVC {
private StringProperty id;
private StringProperty idblock;
private StringProperty idvok;
private StringProperty baseLanguage;
private StringProperty word;
private Button hearspeech;
// Constructoren
// Reihenfolge der Variablen muss der Reihenfolge in den Feldern des SQL entsprechen
public BlocksWordsTVC (String id, String idblock, String IDvok, String baselanguage, String word) {
this.id = new SimpleStringProperty(id);
this.idblock = new SimpleStringProperty(idblock);
this.idvok = new SimpleStringProperty(IDvok);
this.baseLanguage = new SimpleStringProperty(baselanguage);
this.word = new SimpleStringProperty(word);
this.hearspeech = new Button("♪");
hearspeech.setOnAction((ActionEvent event) -> {
String idvok = getidvok();
String httpServer = System.getProperty("HOSTERURL");
String mediafilevoice = httpServer + "VOICES/" + idvok + ".mp3";
Media hit = new Media(mediafilevoice);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
});
}
public BlocksWordsTVC() {
}
// Getter
public String getId() {
return id.get();
}
public String getBaseLanguage() {
return baseLanguage.get();
}
public String getWord() {
return word.get();
}
public String getidBlock() {
return idblock.get();
}
public String getidvok() {
return idvok.get();
}
public Button getHearSpeech(){
return hearspeech;
}
// Setter
public void setid (String id) {
this.id = new SimpleStringProperty(id);
}
public void setlanguage (String baselanguage) {
this.baseLanguage = new SimpleStringProperty(baselanguage);
}
public void setword (String word) {
this.word = new SimpleStringProperty(word);
}
public void setidblock (String idBlock) {
this.idblock = new SimpleStringProperty(idBlock);
}
public void setidvok (String idVok) {
this.idvok = new SimpleStringProperty(idVok);
}