Я хочу обновить изображение в моем окне (в javafx) всякий раз, когда я нажимаю на строку таблицы.
Таблица имеет тип <PopulateTable>
; Вот код этого класса:Выбор Tablerow в JavaFX
public class PopulateTable {
private final SimpleIntegerProperty count;
private final SimpleStringProperty name;
private final SimpleStringProperty date;
public PopulateTable(int count, String name, String date) {
super();
this.count = new SimpleIntegerProperty(count);
this.name = new SimpleStringProperty(name);
this.date = new SimpleStringProperty(date);
}
Проблема заключается в том, что когда я выбираю одну строку следует начинать метод, который требует тип файла в качестве параметра (который я правильно хранится в массиве: final List <file> files = new ArrayList <>();
). Я нашел этот совет здесь, на SO, но не fuziona me ... где, по-вашему, я ошибаюсь?
Вот метод, который я нашел:
public void printWaveForm(){
Table1.setRowFactory(tv -> {
TableRow<PopulateTable> row = new TableRow<>();
row.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(event.getClickCount()>=1) {
try {
plot();
} catch (java.lang.Exception e) {
e.printStackTrace();
}
}
}
});
return row;
});
}
И здесь, метод, который строка таблицы должна начинаться сразу выбранный:
public void plot(){
lineChart.getData().clear();
xAxis = new NumberAxis();
yAxis = new NumberAxis();;
File file = files.get(Table1.getSelectionModel().getSelectedIndex());
try {
AudioWaveformCreator.start(file);
extractedData = Waveform.points();
XYChart.Series<Number,Number> series = new XYChart.Series<Number,Number>();
for(int i =0; i<extractedData.size(); i++){
series.getData().add(new XYChart.Data<Number, Number>(i,extractedData.get(i)));
}
lineChart.getData().add(series);
} catch (java.lang.Exception e) {
e.printStackTrace();
}
}
Заранее спасибо всем, кто поможет мне ,
Не используйте '<>' разметку внешнего кода. Stackoverflow рассматривает их как элементы html и удаляет их, если только они не являются допустимыми элементами, например ' \ ''), если вы хотите отобразить что-то вроде этого. –
fabian
'. Используйте встроенную разметку кода ('\'
спасибо и извините. –