Я застрял, пытаясь выяснить этот вопрос.Речь идет о контроле JavaFX, который выбирает название дня для месяца, число дня и год при нажатии клавиши ввода. Я даже пытался использовать объектно-ориентированное решение для решения проблемы.Вопрос в картинке по ссылке. Вот вопрос по этой ссылке.
Новые РЕДАКТИРОВАТЬ и Код: я один день, чтобы получить день недели, например, 1 января 2012 года должен быть день 1, посколькуответ в консоли: День недели: 1, а не 2.
public class DayOfWeek extends Application {
private String[] months = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER",
"OCTOBER", "NOVEMBER", "DECEMBER" };
private String[] days = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
"17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" };
String s1 = "";
int k = 0;
String s2 = "";
int x = 0;
@Override
public void start(Stage primaryStage) {
// add a gridpane
GridPane grid = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
// add a label for original message top left side
Label label1 = new Label("Month: ");
GridPane.setConstraints(label1, 0, 0);
ListView<String> lv = new ListView<>(FXCollections.observableArrayList(months));
lv.setPrefSize(100, 100);
lv.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
GridPane.setConstraints(lv, 1, 0);
Label label2 = new Label("Day: ");
GridPane.setConstraints(label2, 2, 0);
ListView<String> lvdays = new ListView<>(FXCollections.observableArrayList(days));
lvdays.setPrefWidth(50);
lvdays.setPrefHeight(75);
lv.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
GridPane.setConstraints(lvdays, 3, 0);
Label label3 = new Label("Year: ");
GridPane.setConstraints(label3, 4, 0);
TextField textfield3 = new TextField();
GridPane.setConstraints(textfield3, 5, 0);
lv.setOnMouseClicked(e -> {
s1 = lv.getSelectionModel().getSelectedItem();
k = lv.getSelectionModel().getSelectedIndex();
System.out.println(lv.getSelectionModel().getSelectedItem());
});
lvdays.setOnMouseClicked(e2 -> {
s2 = lvdays.getSelectionModel().getSelectedItem();
x = lvdays.getSelectionModel().getSelectedIndex();
System.out.println(lvdays.getSelectionModel().getSelectedItem());
});
textfield3.setOnKeyPressed(e3 -> {
if (e3.getCode() == KeyCode.ENTER) {
GregorianCalendar cal2 = new GregorianCalendar(textfield3.getLength(), k, x);
System.out.println("Day of Week: " + cal2.get(Calendar.DAY_OF_WEEK));
}
});
// add it to the parent
grid.getChildren().addAll(label1, lv, label2, lvdays, label3, textfield3);
// set a scene and place show it
Scene scene = new Scene(grid, 600, 200);
primaryStage.setTitle("Day of Week");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}