Anda di halaman 1dari 7

import java.io.

File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.DecimalFormat;
import java.text.ParsePosition;
import java.time.LocalDate;
import java.util.ArrayList;
import javafx.application.Application;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.property.SimpleStringProperty;
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.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.TextFormatter;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleGroup;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.util.Callback;

public class JavaFXApplication12 extends Application {


Label welcome1, welcome2, firstN, lastN, DoB, Department, terms, number,
gender, welcome3,welcome4,output,output2;
Button register, view, save, back, select, back2, ok, registered, close1,
close2,close3;
TextField fName, lName,num;
HBox hbox = new HBox();
HBox hbox2 = new HBox();
HBox hbox4 = new HBox();
DecimalFormat format = new DecimalFormat( "#.0" );
DatePicker dob;
ComboBox combobox = new ComboBox();
RadioButton yes, no, male, female;
ToggleGroup group1 = new ToggleGroup();
ToggleGroup group2 = new ToggleGroup();
FileInputStream in;
ObservableList <Person> person = FXCollections.observableArrayList();

@Override
public void start(Stage primaryStage) throws Exception{
// Scene 1: (Introduction Page)
GridPane grid1 = new GridPane();
Scene scene1 = new Scene(grid1, 300, 250);

welcome1 = new Label("Registration Form For Trip");


welcome1.setStyle("-fx-background-color: #660066; -fx-text-fill: #ffffff;
-fx-font-size: 20 px");
grid1.add(welcome1,2,2);

register = new Button ("Register");


grid1.add(register,2,3);

view = new Button ("View list of registered students");


grid1.add(view,2,4);

close1 = new Button ("Close");


grid1.add(close1,2,5);

grid1.setVgap(25);
grid1.setHgap(25);

// Scene 2: (Registration Page)


GridPane grid2 = new GridPane();
Scene scene2 = new Scene(grid2, 700, 550);

welcome2 = new Label("Registration Form For Trip");


welcome2.setStyle("-fx-background-color: #660066; -fx-text-fill: #ffffff;
-fx-font-size: 20 px");
grid2.add(welcome2,1,1);

firstN = new Label("First Name");


firstN.setStyle("-fx-font-size: 15 px");
grid2.add(firstN,1,3);

fName = new TextField();


grid2.add(fName,2,3);

lastN = new Label("Last Name");


lastN.setStyle("-fx-font-size: 15 px");
grid2.add(lastN,1,5);

lName = new TextField();


grid2.add(lName,2,5);

gender = new Label("Gender");


grid2.add(gender,1,7);

male = new RadioButton("Male");


male.setToggleGroup(group1);
male.setSelected(true);
female = new RadioButton("Female");
female.setToggleGroup(group1);

ArrayList<RadioButton> gen = new ArrayList<RadioButton>();


gen.add(male);
gen.add(female);
HBox hbox1 = new HBox();
hbox1.getChildren().addAll(gen);
hbox1.setAlignment(Pos.CENTER_LEFT);
grid2.add(hbox1,2,7);

DoB = new Label("Date Of Birth");


DoB.setStyle("-fx-font-size: 15 px");
grid2.add(DoB,1,9);

dob = new DatePicker();


grid2.add(dob,2,9);

number = new Label("Phone Number");


number.setStyle("-fx-font-size: 15 px");
grid2.add(number,1,11);

num = new TextField();


num.setTextFormatter( new TextFormatter<>(c ->{
if ( c.getControlNewText().isEmpty() ){
return c;
}

ParsePosition parsePosition = new ParsePosition( 0 );


Object object = format.parse( c.getControlNewText(), parsePosition );

if ( object == null || parsePosition.getIndex() <


c.getControlNewText().length() ){
return null;
}
else{
return c;
}
}));
grid2.add(num,2,11);

Department = new Label ("Select Department");


Department.setStyle("-fx-font-size: 15 px");
grid2.add(Department,1,13);

combobox.getItems().addAll("Computer Science","Management
Sciences","Electrical Engineering","Chemical Engineering","BS Physics");
combobox.setValue("-Select a department-");
grid2.add(combobox,2,13);

terms = new Label ("I agree to terms and conditions");


terms.setStyle("-fx-font-size: 15 px");
grid2.add(terms,1,17);

yes = new RadioButton("Yes I agree");


yes.setToggleGroup(group2);
no = new RadioButton("No I do not agree");
no.setToggleGroup(group2);
no.setSelected(true);

save = new Button("Save");


save.setDisable(true);

back = new Button("Back");

yes.selectedProperty().addListener(new ChangeListener<Boolean>(){
@Override
public void changed(ObservableValue<? extends Boolean> observable,
Boolean oldValue, Boolean newValue) {
if(yes.isSelected()){
save.setDisable(false);
}
else{
save.setDisable(true);
}
}

});

ArrayList <RadioButton> rad = new ArrayList<RadioButton>();


rad.add(yes);
rad.add(no);
hbox2.getChildren().addAll(rad);
hbox2.setAlignment(Pos.CENTER_LEFT);
grid2.add(hbox2,2,17);

ArrayList<Button> button = new ArrayList<Button>();


button.add(save);
button.add(back);
hbox.getChildren().addAll(button);
hbox.setAlignment(Pos.CENTER_RIGHT);
grid2.add(hbox,2,19);

in = new FileInputStream("C:\\Users\\Shahid\\Desktop\\b.jpg");
Image image = new Image(in,100,100,false,false);
ImageView iv = new ImageView(image);
HBox hbox3 = new HBox(iv);
grid2.add(hbox3,5,2);

select = new Button("Select Picture");


grid2.add(select,5,3);

FileChooser fc = new FileChooser();


select.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
FileInputStream fin = null;
File f = fc.showOpenDialog(primaryStage);
try {
fin = new FileInputStream(f);
} catch (FileNotFoundException ex) {
// Logger.getLogger(this.class.getName()).log(Level.SEVERE,
null, ex);
}
Image im = new Image(fin,100,100,false,false);
iv.setImage(im);
}
});

grid2.setVgap(10);
grid2.setHgap(10);

// Scene 3: (Viewing the list of registered Students)


GridPane grid3 = new GridPane();
Scene scene3 = new Scene(grid3, 500,500);
welcome3 = new Label("Registration Form For Trip");
welcome3.setStyle("-fx-background-color: #660066; -fx-text-fill: #ffffff;
-fx-font-size: 20 px");
grid3.add(welcome3,2,2);

TableView table = new TableView();


table.setEditable(true);
TableColumn<Person,String> col1 = new TableColumn("First Name");

col1.setCellValueFactory(new Callback<CellDataFeatures<Person, String>,


ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
return new ReadOnlyObjectWrapper(p.getValue().getfName());
}
});

col1.setMaxWidth(100);
TableColumn<Person,String> col2 = new TableColumn("Last Name");
col2.setCellValueFactory(new Callback<CellDataFeatures<Person, String>,
ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
return new ReadOnlyObjectWrapper(p.getValue().getlName());
}
});

col2.setMaxWidth(100);
TableColumn<Person,String> col3 = new TableColumn("Phone Number");
col3.setCellValueFactory(new PropertyValueFactory<>("number"));
col3.setMaxWidth(100);
TableColumn<Person,String> col4 = new TableColumn("Gender");
col4.setCellValueFactory(new PropertyValueFactory<>("gender"));
col4.setMaxWidth(100);
TableColumn<Person,LocalDate> col5 = new TableColumn("Date of Birth");
col5.setCellValueFactory(new PropertyValueFactory<>("dob"));
col5.setMaxWidth(100);
TableColumn<Person,String> col6 = new TableColumn("Department");
col6.setCellValueFactory(new PropertyValueFactory<>("Department"));
col6.setMaxWidth(100);

table.getColumns().addAll(col1,col2,col3,col4,col5,col6);
table.setItems(person);
grid3.add(table,2,3);

back2 = new Button("Back");


grid3.add(back2,2,9);

close3 = new Button("Close");


grid3.add(close3,2,10);

// Scene 4: (Output Window)


GridPane grid4 = new GridPane();
Scene scene4 = new Scene(grid4,300,200);
welcome4 = new Label("Registration Form For Trip");
welcome4.setStyle("-fx-background-color: #660066; -fx-text-fill: #ffffff;
-fx-font-size: 20 px");
grid4.add(welcome4,2,2);
output = new Label("Registration Successful");
output.setStyle("-fx-font-size: 15 px");
grid4.add(output,2,3);

output2= new Label("Thankyou for registering for the trip!");


output2.setStyle("-fx-font-size: 15 px");
grid4.add(output2,2,4);

ok = new Button("Ok");
registered = new Button("View Registered People");
close2 = new Button ("Close");
hbox4.getChildren().addAll(ok,registered,close2);
hbox4.setAlignment(Pos.CENTER_RIGHT);
grid4.add(hbox4,2,5);

grid4.setVgap(20);
grid4.setHgap(20);

ok.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event) {
primaryStage.setScene(scene1);
}

});

// Buttons Event Handlers:


register.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.setScene(scene2);
}
});

close1.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.close();
}
});

back.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.setScene(scene1);
}
});

save.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
person.add(new
Person(fName.getText(),lName.getText(),num.getText(),group1.getSelectedToggle(),dob
.getValue(),combobox.getValue()));
for(Person p:person){
p.display();
}
primaryStage.setScene(scene4);
}
});

view.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.setScene(scene3);
}
});

back2.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.setScene(scene1);
}
});

registered.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.setScene(scene3);
}
});

close2.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.close();
}
});

close3.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
primaryStage.close();
}
});

primaryStage.setTitle("Registeration Form for Trip");


primaryStage.setScene(scene1);
primaryStage.show();
}

public static void main(String[] args) {


launch(args);
}

Anda mungkin juga menyukai