0
다음은 JavaFX에서의 현재 출력입니다.레이블 테두리가 일렬로 정렬되지 않고 플러시되지 않음
나는 모든 레이블과 테두리를 비 춥니 다.
모든 인 세트가 동일하게 설정되었으므로 왜 모든 것이 정렬되지 않습니까?
국경에 더 어두운 이미지를 만드는 테두리가 두 번 겹쳐서 나타나는 문제가 있습니다. 내 라벨의 스타일을 설정할 때 문제를 해결하는 방법을 잘 모르겠습니다. 이 그림 아래에 관련 코드가 있습니다. 고맙습니다.
public void buildUI() {
HBox hbox = new HBox(); // create Hbox
hbox.setPadding(new Insets(20,20,40,215)); // centers month name over Grid
Label month = new Label ("October"); // create october label
//hbox.setVgap(50.0);
this.setTop(hbox); // set hbox to top of borderPane
hbox.getChildren().addAll(month); // add month to hbox
this.setCenter(grid); // add gridPane to center of BorderPane
grid.setPadding(new Insets(20,20,20,20)); // add insets to gridPane for aesthetic
// below makes S-M-T-W-T-F and green fill
for (int i = 0; i <= weekDays.length - 1; i++) {
Label daysOfWeek = new Label(weekDays[i]);
grid.add(daysOfWeek, i + 1, 1);
daysOfWeek.setPadding(new Insets(25,30,25,30));
daysOfWeek.setStyle("-fx-text-fill: white;" +
"-fx-background-color: green;" + "-fx-border-color: black;");
}// end for loop to cycle through days of week
//below are the days of the month
for (int i = 1; i <= FRAMES; i++) {
int yPos = ((i - 1)/7) + 2;
int xPos = i - (7 * (yPos -2));
if (i < 32) {
Label monthDays = new Label(String.valueOf(i));
grid.add(monthDays, xPos, yPos);
monthDays.setPadding(new Insets(25,30,25,30));
monthDays.setStyle("-fx-border-color: black;");
} else if (i > 32) {
// below creating november labels days 1 -- 4
Label nov1 = new Label("1");
grid.add(nov1, 4, 6);
Label nov2 = new Label("2");
grid.add(nov2, 5, 6);
Label nov3 = new Label("3");
grid.add(nov3, 6, 6);
Label nov4 = new Label("4");
grid.add(nov4, 7, 6);
// below padding and making borders for labels
nov1.setPadding(new Insets(25,30,25,30));
nov1.setStyle("-fx-text-fill: white;" + "-fx-border-color: black;" + "-fx-background-color: grey;");
nov2.setPadding(new Insets(25,30,25,30));
nov2.setStyle("-fx-text-fill: white;" + "-fx-border-color: black;" + "-fx-background-color: grey;");
nov3.setPadding(new Insets(25,30,25,30));
nov3.setStyle("-fx-text-fill: white;" + "-fx-border-color: black;" + "-fx-background-color: grey;");
nov4.setPadding(new Insets(25,30,25,30));
nov4.setStyle("-fx-text-fill: white;" + "-fx-border-color: black;" + "-fx-background-color: grey;");
}
}// end for loop to cycle through days of month
}
또 다른 트릭 (I는이 포럼의 게시물에서 배운) 격자 창에 hgap에와 vgap에를 설정하고 그것을 제공하는 것입니다 배경색 (레이블과 다름) 그런 다음 간격의 격자 창의 배경을보고 각 셀에 테두리 효과를줍니다. –
@ fabian 선생님, 정말 고마워요. 나는 잠시 동안이 일을 해왔고 당신의 대답은 철저하고 믿을 수 없을 정도로 분명했습니다. 더 효율적이고 아름답게 만들기 위해 코드를 개선 한 예제를 제공해 주셔서 감사합니다. 당신은 훌륭합니다. James_D 혁신적인 아이디어에 감사드립니다. 나는 그것을 정말로 좋아한다! 언젠가 그것을 시도 할 것입니다. 귀하의 의견을 보내 주셔서 감사합니다. –