單擊“添加約會”按鈕時,會彈出新表單,但 DatePicker 為空(應填充 LocalDate.now()),并且周六/周日日期均未禁用。嘗試在 Initialize 和啟動新場景的方法中調用設置方法。無論我將它放在一個或另一個或兩個中,它都不起作用。請告知我做錯了什么。謝謝。顯示 DatePicker 值空白且日歷中沒有禁用日期的圖像。package gci.controllers.dialogs;import gci.App;import gci.models.Appointment;import gci.utilities.CustomerDAO;import java.io.IOException;import java.net.URL;import java.sql.SQLException;import java.time.*;import java.util.*;import java.util.logging.*;import java.util.stream.*;import javafx.collections.*;import javafx.event.ActionEvent;import javafx.fxml.*;import javafx.scene.*;import javafx.scene.control.*;import javafx.scene.layout.*;import javafx.stage.*;import javafx.util.*;public class AddAppointmentController implements Initializable { @FXML private ChoiceBox<String> nameChoiceBox; @FXML private ChoiceBox<String> typeChoiceBox; @FXML private ChoiceBox<String> timeChoiceBox; @FXML private Label titleLabel; @FXML private Label copyrightLabel; @FXML private Button saveButton; @FXML private Button cancelButton; @FXML private DatePicker datePicker; private final CustomerDAO dao = new CustomerDAO(); private Stage stage; private static final Region modal = new Region(); @Override public void initialize(URL url, ResourceBundle rb) { initApptChoiceBoxes(); setDatePicker(); setCopyright(); modal.setStyle("-fx-background-color: #00000099;"); } private void initApptChoiceBoxes() { try { nameChoiceBox.setItems(dao.retrieveAll().stream().map(m -> m.getName()) .collect(Collectors.toCollection(FXCollections::observableArrayList))); } catch (SQLException ex) { Logger.getLogger(AddAppointmentController.class.getName()).log(Level.SEVERE, null, ex); } typeChoiceBox.setItems(FXCollections.observableArrayList("In-Person", "Phone", "WebMeeting")); } }
1 回答

holdtom
TA貢獻1805條經驗 獲得超10個贊
DatePicker
您在其中創(chuàng)建的實例永遠setDatePicker()
不會添加到場景中。它會覆蓋加載 fxml 時DatePicker
注入的對象(除非您沒有正確添加)。在此方法中完成的所有其他修改也在此實例上完成。FXMLLoader
fx:id
你需要更換線
datePicker = new DatePicker(LocalDate.now());
和
datePicker.setValue(LocalDate.now());
通常,您不應該為@FXML
帶注釋的字段賦值。如果這需要“修復”aNullPointerException
或類似的東西,您只需修復癥狀而不是修復實際問題。此規(guī)則可能有例外,但您需要了解一個事實,即您需要確保自己將節(jié)點添加到場景中。
添加回答
舉報
0/150
提交
取消