Moin, ich war vor kurzen bei, mein Kalender-Project auf die volle Spaltenzahl zu erweitern. Dargestellt wird das Ganze mit eine FX TableView. Das Problem an dieser Stelle ist, dass alle erweiterten Spalten (also alle ab Spalte 6, bzw. nach user3) mit null gezeigt werden.
Zur TableView an sich, werden alle Spalten gezeigt, nur deren Inhalt wird wie gesagt ab Spalte 6 nicht dargestellt.
Die Datensätze werden in der getDate Methode erzeugt und enthalten jeweis 2 Strings und 15 ListViews.
Anschließend soll es dann durch die cellFactory, wo aber keine Daten ankommen (die "Daten" nehmen ab Spalte 6 den weg über if.
Die Date Klasse müsste an sich auch korrekt aufgebaut sein. Die getter und setter sind alle identisch aufgebaut.
Erstellt sind die Columns auch alle identisch.
Meine Frage nun, wo könnte es da denn noch hängen, setItems müsste ja Funktionieren und dann wären ja auch die Items in der setCellFactory verfügbar oder wo kjönnen die geblieben sein?
Wenn weiterer Code gewünscht ist, gerne Bescheid geben.
PS: Ich weiß, die Frage ist nicht wirklich konkret, stellt dennoch ein langwieriges Problem dar.
=)
Zur TableView an sich, werden alle Spalten gezeigt, nur deren Inhalt wird wie gesagt ab Spalte 6 nicht dargestellt.
Die Datensätze werden in der getDate Methode erzeugt und enthalten jeweis 2 Strings und 15 ListViews.
Java:
public static ObservableList<Date> getDate(User user1, User user2, User user3, User user4, User user5, User user6, User user7,
User user8, User user9, User user10, User user11, User user12, User user13, User user14, User user15) {
ObservableList <Date> dateList = FXCollections.observableArrayList();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyy");
int i = 0;
for (LocalDate date : Date.dateList()) {
dateList.add(new Date(date.format(formatter), date.getDayOfWeek().toString(),((User) user1).getEntry()[i],
((User) user2).getEntry()[i], ((User) user3).getEntry()[i], ((User) user4).getEntry()[i], ((User) user5).getEntry()[i],
((User) user6).getEntry()[i], ((User) user7).getEntry()[i], ((User) user8).getEntry()[i], ((User) user9).getEntry()[i],
((User) user10).getEntry()[i], ((User) user11).getEntry()[i], ((User) user12).getEntry()[i], ((User) user13).getEntry()[i],
((User) user13).getEntry()[i], ((User) user15).getEntry()[i]));
i ++;
}
return dateList;
}
public void setItems (User user1, User user2, User user3, User user4, User user5, User user6, User user7, User user8, User user9, User user10,
User user11, User user12, User user13, User user14, User user15) {
this.name.setItems(getDate(user1, user2, user3, user4, user5, user6, user7, user8, user9, user10, user11, user12, user13, user14, user15));
}
Anschließend soll es dann durch die cellFactory, wo aber keine Daten ankommen (die "Daten" nehmen ab Spalte 6 den weg über if.
Java:
public void setCellFactory (TableColumn<Date, LinkedList<String>> userColumn) {
userColumn.setCellFactory(new Callback <TableColumn <Date, LinkedList<String>>, TableCell <Date, LinkedList<String>>>() {
@Override
public TableCell<Date, LinkedList<String>> call(TableColumn<Date, LinkedList<String>> column) {
return new TableCell<Date, LinkedList<String>>() {
protected void updateItem(LinkedList<String> item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText("null");
// setText(null);
setStyle("");
} else {
setItem(item);
setGraphic(CalendarColumn.tableCellList(item));
} } }; } }); }
Die Date Klasse müsste an sich auch korrekt aufgebaut sein. Die getter und setter sind alle identisch aufgebaut.
Java:
public class Date {
private static ArrayList<String> times = new ArrayList<>();
private static LocalDate startDate = LocalDate.of(2021, 01, 01);
private static LocalDate endDate = LocalDate.of(2022, 01, 01);
private static ArrayList <String> dates = new ArrayList<>();
private String date;
private String dayOfWeek;
private Object user1;
private Object user2;
private Object user3;
private Object user4;
private Object user5;
private Object user6;
private Object user7;
private Object user8;
private Object user9;
private Object user10;
private Object user11;
private Object user12;
private Object user13;
private Object user14;
private Object user15;
public Date (String date, String dayOfWeek, Object user1, Object user2, Object user3, Object user4, Object user5, Object user6, Object user7,
Object user8, Object user9, Object user10, Object user11, Object user12, Object user13, Object user14, Object user15) {
this.date = date;
this.dayOfWeek = dayOfWeek;
this.user1 = user1;
this.user2 = user2;
this.user3 = user3;
this.user3 = user4;
this.user3 = user5;
this.user3 = user6;
this.user3 = user7;
this.user3 = user8;
this.user3 = user9;
this.user3 = user10;
this.user3 = user11;
this.user3 = user12;
this.user3 = user13;
this.user3 = user14;
this.user3 = user15;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getDayOfWeek() {
return dayOfWeek;
}
public void setDayOfWeek(String dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public static ArrayList<String> getTimes() {
return times;
}
public static void setTimes(ArrayList<String> times) {
Date.times = times;
}
public Object getUser1() {
return user1;
}
public void setUser1(Object user1) {
this.user1 = user1;
}
Erstellt sind die Columns auch alle identisch.
Java:
CalendarColumn dateColumn = new CalendarColumn("DATE");
dateColumn.setCellValueFactoryDate("date");
CalendarColumn dayOfWeekColumn = new CalendarColumn("WEEKDAY");
dayOfWeekColumn.setCellValueFactoryDate("dayOfWeek");
CalendarColumn column1 = new CalendarColumn(user1.getName(), 100, true, false);
column1.setCellValueFactory("user1");
column1.setCellFactory(column1.getUserCol());
CalendarColumn column2 = new CalendarColumn(user2.getName(), 100, true, false);
column2.setCellValueFactory("user2");
column2.setCellFactory(column2.getUserCol());
Meine Frage nun, wo könnte es da denn noch hängen, setItems müsste ja Funktionieren und dann wären ja auch die Items in der setCellFactory verfügbar oder wo kjönnen die geblieben sein?
Wenn weiterer Code gewünscht ist, gerne Bescheid geben.
PS: Ich weiß, die Frage ist nicht wirklich konkret, stellt dennoch ein langwieriges Problem dar.
=)
Zuletzt bearbeitet: