0
ここにJavaFXでの私の現在の出力があります。ラベル枠が一列に並んでいない、フラッシュされていない
私はすべてのラベルと境界線が一杯であることを希望します。
私はすべてのインセットが同じに設定されているので、なぜすべてが整列していないのですか?
もう1つの問題は、境界線の濃いイメージを作成する境界線の重なりが2重になることです。私のラベルのスタイルを設定する際の修正方法はわかりません。この写真の下に関連するコードがあります。ありがとうございました。
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
}
ボーダーのためのもう一つのトリックは、(私はこのフォーラムのポストから学んだこと)、グリッドペインにhgapとVGAPを設定し、それを与えることです背景色(ラベルとは異なる)。次に、ギャップ内のグリッドペインの背景が表示され、各セルにボーダーの効果が与えられます。 –
@fabian おはよう、ありがとう、そんなに。私はしばらくこのことを続けてきましたが、あなたの答えは徹底的で信じられないほど明確でした。私のコードを改善して、より効率的で美しいものにするための例をありがとう。あなたは素敵だ。 James_D 革新的なアイデアをありがとう。私は本当にそれが好きです!いつか試してみる。あなたのご意見ありがとうございます。 –