單擊“添加約會(huì)”按鈕時(shí),會(huì)彈出新表單,但 DatePicker 為空(應(yīng)填充 LocalDate.now()),并且周六/周日日期均未禁用。嘗試在 Initialize 和啟動(dòng)新場(chǎng)景的方法中調(diào)用設(shè)置方法。無(wú)論我將它放在一個(gè)或另一個(gè)或兩個(gè)中,它都不起作用。請(qǐng)告知我做錯(cuò)了什么。謝謝。顯示 DatePicker 值空白且日歷中沒(méi)有禁用日期的圖像。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貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
DatePicker
您在其中創(chuàng)建的實(shí)例永遠(yuǎn)setDatePicker()
不會(huì)添加到場(chǎng)景中。它會(huì)覆蓋加載 fxml 時(shí)DatePicker
注入的對(duì)象(除非您沒(méi)有正確添加)。在此方法中完成的所有其他修改也在此實(shí)例上完成。FXMLLoader
fx:id
你需要更換線
datePicker = new DatePicker(LocalDate.now());
和
datePicker.setValue(LocalDate.now());
通常,您不應(yīng)該為@FXML
帶注釋的字段賦值。如果這需要“修復(fù)”aNullPointerException
或類似的東西,您只需修復(fù)癥狀而不是修復(fù)實(shí)際問(wèn)題。此規(guī)則可能有例外,但您需要了解一個(gè)事實(shí),即您需要確保自己將節(jié)點(diǎn)添加到場(chǎng)景中。
添加回答
舉報(bào)
0/150
提交
取消