Метки JavaFX, добавленные в GridPane, перекрываются? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть 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>

изображение перекрывающейся этикетки:

enter image description here

...