Answer:
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.StackPane;
import java.util.ArrayList;
public class Assignment6 extends Application {
private TabPane tabPane;
private CreatePane createPane;
private SelectPane selectPane;
private ArrayList<Club> clubList;
public void start(Stage stage) {
StackPane root = new StackPane();
//clubList to be used in both createPane & selectPane
clubList = new ArrayList<Club>();
selectPane = new SelectPane(clubList);
createPane = new CreatePane(clubList, selectPane);
tabPane = new TabPane();
Tab tab1 = new Tab();
tab1.setText("Club Creation");
tab1.setContent(createPane);
Tab tab2 = new Tab();
tab2.setText("Club Selection");
tab2.setContent(selectPane);
tabPane.getSelectionModel().select(0);
tabPane.getTabs().addAll(tab1, tab2);
root.getChildren().add(tabPane);
Scene scene = new Scene(root, 900, 400);
stage.setTitle("Club Selection Apps");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
import java.util.ArrayList;
import javafx.scene.layout.HBox;
import javafx.event.ActionEvent; //**Need to import
import javafx.event.EventHandler; //**Need to import
public class CreatePane extends HBox {
ArrayList<Club> clubList;
private SelectPane selectPane;
//constructor
public CreatePane(ArrayList<Club> list, SelectPane sePane) {
this.clubList = list;
this.selectPane = sePane;
}
//using the toString method of the Club class.
//It also does error checking in case any of the textfields are empty,
//or a non-numeric value was entered for its number of members
private class ButtonHandler implements EventHandler<ActionEvent> {
//Override the abstact method handle()
public void handle(ActionEvent event) {
//declare any necessary local variables here
//---
//when a text field is empty and the button is pushed
//if ( //---- )
//{
//handle the case here
//}
//else //for all other cases
//{
//when a non-numeric value was entered for its number of
members
//and the button is pushed
//you will need to use try & catch block to catch
//the NumberFormatException
//When a club of an existing club name in the list
//was attempted to be added, do not add it to the list
//and display a message "Club not added - duplicate"
//at the end, don't forget to update the new arrayList
//information on the SelectPanel
//}
} //end of handle() method
} //end of ButtonHandler class
}
import javafx.scene.control.Label;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.*;
import javafx.event.ActionEvent; //**Need to import
import javafx.event.EventHandler; //**Need to import
import java.util.ArrayList;
import javafx.collections.ObservableList;
import javafx.scene.Node;
//import all other necessary javafx classes here
public class SelectPane extends BorderPane {
private ArrayList<Club> clubList;
//constructor
public SelectPane(ArrayList<Club> list) {
//initialize instance variables
this.clubList = list;
//set up the layout
//create an empty pane where you can add check boxes later
//SelectPane is a BorderPane - add the components here
} //end of constructor
//This method uses the newly added parameter Club object
//to create a CheckBox and add it to a pane created in the constructor
//Such check box needs to be linked to its handler class
public void updateClubList(Club newClub)
{
//-------
}
//create a SelectionHandler class
private class SelectionHandler implements EventHandler<ActionEvent> {
//Override the abstact method handle()
public void handle(ActionEvent event){
//When any radio button is selected or unselected
//the total number of members of selected clubs should be updated
//and displayed using a label.
}
} //end of SelectHandler class
} //end of SelectPane class
public class Club {
private String clubName;
private int numberOfMembers;
private String university;
//Constructor to initialize all member variables
public Club() {
clubName = "?";
university = "?";
numberOfMembers = 0;
}
//Accessor method for club name
public String getClubName() {
return clubName;
}
//Accessor method for university
public String getUniversity() {
return university;
}
//Accessor method for number of members
public int getNumberOfMembers() {
return numberOfMembers;
}
//mutator/modifider method for club name
public void setClubName(String someClubName) {
clubName = someClubName;
}
//mutator/modifider method for university
public void setUniversity(String someUniversity) {
university = someUniversity;
}
//mutator/modifider method for number of members
public void setNumberOfMembers(int someNumber) {
numberOfMembers = someNumber;
}
//toString() method returns a string containg its name, number of members, and
university
public String toString() {
String result = "\nClub Name:\t\t" + clubName
+ "\nNumber Of Members:\t" + numberOfMembers
+ "\nUniversity:\t\t" + university
+ "\n\n";
return result;
}
}
Explanation: