Question
Can someone assist with the code below? I keep getting an error code that cannot find symbol -class StringProperty. The error is shown below. Thank
Can someone assist with the code below? I keep getting an error code that "cannot find symbol -class StringProperty. The error is shown below. Thank you. I have the complete code below.
Question: Create a GUI for this particular project. You can use the lab 4 solution that youve submitted....
Create a GUI for this particular project. You can use the lab 4 solution that youve submitted.
Your GUI is completely up to you and should display all information that you find useful. It should be intuitive and informative.
Create a program that keeps track of specific information for Students. The information stored should be the following:
First Name, Last Name, Major, GPA, UIN, NetID, Age, Gender,
For this simple program we will only need to store 10 students in an ArrayList. Your students should be stored in an object called Student.
You should be able to add, display, sort (by any column you chose) and remove Students in the ArrayList.
Hint: To make your life easier take your previous lab solution and add a menu bar instead of adding a lot of new items.
Expert Answer
Anonymous answered this
Was this answer helpful?
0
0
114 answers
//Student.java
public class Student {
private StringProperty firstName = new SimpleStringProperty(this, "firstName", ""); public String getFirstName() { return firstName.get(); } public StringProperty firstNameProperty() { return firstName; } public void setFirstName(String firstName) { this.firstName.set(firstName); }
private StringProperty lastName = new SimpleStringProperty(this, "lastName", ""); public String getLastName() {return lastName.get();} public StringProperty lastNameProperty() {return lastName;} public void setLastName(String lastName) { this.lastName.set(lastName); }
private StringProperty major = new SimpleStringProperty(this, "major", ""); public String getMajor() { return major.get(); } public StringProperty majorProperty() { return major; } public void setMajor(String major) { this.major.set(major); }
private DoubleProperty gradepoint = new SimpleDoubleProperty(this, "gradePoint", 0.0); public double getGradepoint() { return gradepoint.get(); } public DoubleProperty gradepointProperty() { return gradepoint; } public void setGradepoint(double gradepoint) { this.gradepoint.set(gradepoint); }
private StringProperty uin = new SimpleStringProperty(this, "uin", ""); public String getUin() { return uin.get(); } public StringProperty uinProperty() { return uin; } public void setUin(String uin) { this.uin.set(uin); }
private StringProperty netID = new SimpleStringProperty(this, "netID", ""); public String getNetID() { return netID.get(); } public StringProperty netIDProperty() { return netID; } public void setNetID(String netID) { this.netID.set(netID); }
private IntegerProperty age = new SimpleIntegerProperty(this, "age", 0); public int getAge() { return age.get(); } public IntegerProperty ageProperty() { return age; } public void setAge(int age) { this.age.set(age); }
private StringProperty gender = new SimpleStringProperty(this, "gender", ""); public String getGender() { return gender.get(); } public StringProperty genderProperty() { return gender; } public void setGender(String gender) { this.gender.set(gender); }
//for console printing purposes public String toString() {
return "First Name: " + getFirstName() + " | Last Name: " + getLastName() + " | UIN: " + getUin() + " | NetID: " + getNetID() + " | Major: " + getMajor() + " | Age: " + getAge() + " | GPA: " + getGradepoint() + " | Gender: " + getGender(); } }
===============================================================================
//StudentDatabase.java
import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage;
public class StudentDatabase extends Application {
@Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("StudentDatabaseFXML.fxml")); primaryStage.setTitle("Student Database"); primaryStage.setScene(new Scene(root, 1200, 800)); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
=============================================================================
// Controller.java
import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.Event; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.Node; import javafx.scene.control.*; import javafx.scene.control.cell.TextFieldTableCell; import javafx.stage.FileChooser; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.Window; import javafx.util.converter.NumberStringConverter; import java.io.*; import java.net.URL; import java.util.ResourceBundle;
public class Controller implements Initializable {
@FXML private ResourceBundle resources;
@FXML private URL location;
@FXML // fx:id="firstNameCol" private TableColumn
@FXML // fx:id="lastNameCol" private TableColumn
@FXML // fx:id="netIDCol" private TableColumn
@FXML // fx:id="ageCol" private TableColumn
@FXML // fx:id="gpaCol" private TableColumn
@FXML // fx:id="majorCol" private TableColumn
@FXML // fx:id="uinCol" private TableColumn
@FXML // fx:id="genderCol" private TableColumn
@FXML // fx:id="firstNameField" private TextField firstNameField;
@FXML // fx:id="lastNameField" private TextField lastNameField;
@FXML // fx:id="netIDField" private TextField netIDField;
@FXML // fx:id="ageField" private TextField ageField;
@FXML // fx:id="gpaField" private TextField gpaField;
@FXML // fx:id="majorField" private TextField majorField;
@FXML // fx:id="uinField" private TextField uinField;
@FXML private TextField filterInput;
@FXML // fx:id="genderBox" private ComboBox
@FXML private TableView
@FXML // fx:id="addBtn" private Button addBtn;
@FXML // fx:id="deleteBtn" private Button deleteBtn;
@FXML private MenuBar fileMenu;
ObservableList
@Override public void initialize(URL url, ResourceBundle rb) { //add Listener to filterField filterInput.textProperty().addListener(new ChangeListener() { public void changed(ObservableValue observable, Object oldValue, Object newValue) { filterStudentList((String) oldValue, (String) newValue);
} }); //initialize editable attributes studentTable.setEditable(true); firstNameCol.setOnEditCommit(e -> firstNameCol_OnEditCommit(e)); lastNameCol.setOnEditCommit(e -> lastNameCol_OnEditCommit(e)); uinCol.setOnEditCommit(e -> uinCol_OnEditCommit(e)); netIDCol.setOnEditCommit(e -> netIDCol_OnEditCommit(e)); majorCol.setOnEditCommit(e -> majorCol_OnEditCommit(e)); ageCol.setOnEditCommit(e -> ageCol_OnEditCommit(e)); gpaCol.setOnEditCommit(e -> genderCol_OnEditCommit(e)); genderCol.setOnEditCommit(e -> genderCol_OnEditCommit(e));
studentTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn()); lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn()); uinCol.setCellFactory(TextFieldTableCell.forTableColumn()); netIDCol.setCellFactory(TextFieldTableCell.forTableColumn()); majorCol.setCellFactory(TextFieldTableCell.forTableColumn()); ageCol.setCellFactory(TextFieldTableCell.forTableColumn(new NumberStringConverter())); gpaCol.setCellFactory(TextFieldTableCell.forTableColumn(new NumberStringConverter())); genderCol.setCellFactory(TextFieldTableCell.forTableColumn());
firstNameCol.setCellValueFactory(cellData -> cellData.getValue().firstNameProperty()); lastNameCol.setCellValueFactory(cellData -> cellData.getValue().lastNameProperty()); majorCol.setCellValueFactory(cellData -> cellData.getValue().majorProperty()); gpaCol.setCellValueFactory(cellData -> cellData.getValue().gradepointProperty()); uinCol.setCellValueFactory(cellData -> cellData.getValue().uinProperty()); netIDCol.setCellValueFactory(cellData -> cellData.getValue().netIDProperty()); ageCol.setCellValueFactory(cellData -> cellData.getValue().ageProperty()); genderCol.setCellValueFactory(cellData -> cellData.getValue().genderProperty());
//initialize gender ComboBox genderBoxData.add(new String("Male")); genderBoxData.add(new String("Female"));
genderBox.setItems(genderBoxData);
addBtn.setDisable(true); deleteBtn.setDisable(true); studentTable.setItems(observableStudentList); studentTable.setEditable(true); studentTable.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); studentTable.setPlaceholder(new Label("Your Table is Empty"));
firstNameField.focusedProperty().addListener(new ChangeListener
/* ----------------------------------------------Control handlers--------------------------------------------- */ public void handleAddButtonClick(ActionEvent event) { /* Get input from user and add to Table */ if (observableStudentList.size()
Boolean validInput = true;
if(firstNameField == null || firstNameField.getText().trim().isEmpty()) { validInput = false; Alert emptyFirstName = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyFirstName.setContentText("First name is EMPTY"); emptyFirstName.initModality(Modality.APPLICATION_MODAL); emptyFirstName.initOwner(owner); emptyFirstName.showAndWait(); if(emptyFirstName.getResult() == ButtonType.OK) { emptyFirstName.close(); firstNameField.requestFocus(); } } if(lastNameField == null || lastNameField.getText().trim().isEmpty()) { validInput = false; Alert emptyLastName = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyLastName.setContentText("Last name is EMPTY"); emptyLastName.initModality(Modality.APPLICATION_MODAL); emptyLastName.initOwner(owner); emptyLastName.showAndWait(); if (emptyLastName.getResult() == ButtonType.OK) { emptyLastName.close(); lastNameField.requestFocus(); } } if(uinField == null || uinField.getText().trim().isEmpty()) { validInput = false; Alert emptyUIN = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyUIN.setContentText("UIN is EMPTY"); emptyUIN.initModality(Modality.APPLICATION_MODAL); emptyUIN.initOwner(owner); emptyUIN.showAndWait(); if (emptyUIN.getResult() == ButtonType.OK) { emptyUIN.close(); uinField.requestFocus(); } } if(netIDField == null || netIDField.getText().trim().isEmpty()) { validInput = false; Alert emptyNetID = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyNetID.setContentText("NetID is EMPTY"); emptyNetID.initModality(Modality.APPLICATION_MODAL); emptyNetID.initOwner(owner); emptyNetID.showAndWait(); if (emptyNetID.getResult() == ButtonType.OK) { emptyNetID.close(); netIDField.requestFocus(); } } if(majorField == null || majorField.getText().trim().isEmpty()) { validInput = false; Alert emptyMajor = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyMajor.setContentText("Major is EMPTY"); emptyMajor.initModality(Modality.APPLICATION_MODAL); emptyMajor.initOwner(owner); emptyMajor.showAndWait(); if (emptyMajor.getResult() == ButtonType.OK) { emptyMajor.close(); majorField.requestFocus(); } } if(ageField == null || ageField.getText().trim().isEmpty()) { validInput = false; Alert emptyAge = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyAge.setContentText("Age is EMPTY"); emptyAge.initModality(Modality.APPLICATION_MODAL); emptyAge.initOwner(owner); emptyAge.showAndWait(); if (emptyAge.getResult() == ButtonType.OK) { emptyAge.close(); ageField.requestFocus(); } } if(gpaField == null || gpaField.getText().trim().isEmpty()) { validInput = false; Alert emptyGPA = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyGPA.setContentText("GPA is EMPTY"); emptyGPA.initModality(Modality.APPLICATION_MODAL); emptyGPA.initOwner(owner); emptyGPA.showAndWait(); if (emptyGPA.getResult() == ButtonType.OK) { emptyGPA.close(); gpaField.requestFocus(); } } if(genderBox == null || genderBox.getValue().isEmpty()) { validInput = false; Alert emptyGender = new Alert(Alert.AlertType.WARNING, "Warning", ButtonType.OK); Window owner = ((Node) event.getTarget()).getScene().getWindow(); emptyGender.setContentText("Gender is EMPTY"); emptyGender.initModality(Modality.APPLICATION_MODAL); emptyGender.initOwner(owner); emptyGender.showAndWait(); if (emptyGender.getResult() == ButtonType.OK) { emptyGender.close(); genderBox.requestFocus(); } } return validInput; } /* handle column edits */ public void firstNameCol_OnEditCommit(Event e) { TableColumn.CellEditEvent
for(Student students : observableStudentList) { outWriter.write(students.toString()); outWriter.newLine(); } System.out.println(observableStudentList.toString()); outWriter.close(); } catch (IOException e) { Alert ioAlert = new Alert(Alert.AlertType.ERROR, "OOPS!", ButtonType.OK); ioAlert.setContentText("Sorry. An error has occurred."); ioAlert.showAndWait(); if(ioAlert.getResult() == ButtonType.OK) { ioAlert.close(); } } } public void closeApp(ActionEvent event) { Alert exitAlert = new Alert(Alert.AlertType.CONFIRMATION, "Confirm", ButtonType.OK, ButtonType.CANCEL); Stage stage = (Stage) fileMenu.getScene().getWindow(); exitAlert.setContentText("Are you sure you want to exit?"); exitAlert.initModality(Modality.APPLICATION_MODAL); exitAlert.initOwner(stage); exitAlert.showAndWait();
if(exitAlert.getResult() == ButtonType.OK) { Platform.exit(); } else { exitAlert.close(); } } }
//Student.java c class Student SimpleStringProperty (this, "firstNam private lStringPrope rtyl firstName public String getFirstName ) t return firstName.getO; new public StringProperty firstName Property) [ return firstName; public void setFirstName (String firstName) t this.firstName.set(firstName); private StringProperty lastName= new SimpleStringProperty (this, "lastName", ""); public String getLastName () return lastName.getOF public StringProperty lastName Property) freturn lastName: public void setLastName (String lastName) this.lastName.set (lastName); private StringProperty major= new SimpleStringProperty (this, "major", ""); public String getMajor) [ return major.get); public StringProperty majorProperty) return major; public void setMajor (String major) cannot find symbol - class StringProperty //Student.java c class Student SimpleStringProperty (this, "firstNam private lStringPrope rtyl firstName public String getFirstName ) t return firstName.getO; new public StringProperty firstName Property) [ return firstName; public void setFirstName (String firstName) t this.firstName.set(firstName); private StringProperty lastName= new SimpleStringProperty (this, "lastName", ""); public String getLastName () return lastName.getOF public StringProperty lastName Property) freturn lastName: public void setLastName (String lastName) this.lastName.set (lastName); private StringProperty major= new SimpleStringProperty (this, "major", ""); public String getMajor) [ return major.get); public StringProperty majorProperty) return major; public void setMajor (String major) cannot find symbol - class StringPropertyStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started