У меня есть GridPane, к которому я пытаюсь добавить метки. Однако всякий раз, когда добавляется более одной метки, они перекрывают друг друга. Есть ли способ избежать этой проблемы? Я попытался реализовать область прокрутки и поместить метку внутри области прокрутки, однако из-за природы моего For l oop это невозможно, поскольку он будет перезаписан, если в один день будет две встречи.
Метод контроллера
for (Appointment appointment : Database.getAllAppointments()) {
String title = appointment.getAppointmentTitle();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("h:mm a");
LocalDateTime startTime = appointment.getAppointmentStart();
LocalDateTime endTime = appointment.getAppointmentEnd();
String formattedStartTime = startTime.format(formatter);
String formattedEndTime = endTime.format(formatter);
LocalDateTime lt1 = appointment.getAppointmentStart();
if (lt1.getMonth().name() == calendarLabel.getText()) {
String alertData = title + " from " + formattedStartTime + "-" + formattedEndTime + "\n";
LocalDateTime startOfMonth = lt1.with(firstDayOfMonth());
int firstDayNameIndex = VALUE_MAPPER[startOfMonth.getDayOfWeek().getValue()];
int currentDayNameIndex = VALUE_MAPPER[lt1.getDayOfWeek().getValue()];
int row = (lt1.getDayOfMonth() + firstDayNameIndex - 1) / 7;
int column = VALUE_MAPPER[lt1.getDayOfWeek().getValue()];
Label label = new Label(alertData);
label.setWrapText(true);
CalendarPane.add(label, column, row);
}
}
}
F XML:
<GridPane fx:id="CalendarPane" layoutX="72.0" layoutY="185.0" prefHeight="442.0" prefWidth="824.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="14.28571428571429" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="14.28571428571429" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" percentHeight="20.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" percentHeight="20.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
</GridPane>
изображение перекрывающейся этикетки: