Skip to content

Instantly share code, notes, and snippets.

@hoanbka
Created September 16, 2016 04:58
Show Gist options
  • Save hoanbka/91c541cc6f1329acf1c9f48e793ddbc6 to your computer and use it in GitHub Desktop.
Save hoanbka/91c541cc6f1329acf1c9f48e793ddbc6 to your computer and use it in GitHub Desktop.
package com.hoanbka.javafx.practice;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.util.ArrayList;
public class Main extends Application {
StudentManager studentManager = new StudentManager();
ArrayList<Student> students = studentManager.getStudents();
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Student Management System");
Button addBtnMain = new Button("Add");
Button removeBtn = new Button("Remove");
VBox vBox = new VBox(addBtnMain, removeBtn);
Scene scene = new Scene(vBox, 400, 200);
primaryStage.setScene(scene);
primaryStage.show();
addBtnMain.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Label nameLable = new Label("Name");
TextField nameTxt = new TextField();
nameTxt.setMaxSize(200, 100);
Label idLable = new Label("ID");
TextField idTxt = new TextField();
idTxt.setMaxSize(200, 100);
Label ageLable = new Label("Age");
TextField ageTxt = new TextField();
ageTxt.setMaxSize(200, 100);
Button addBtn = new Button("Add");
Button backBtn = new Button("Back");
Button clearBtn = new Button("Clear");
TextField result = new TextField();
result.setMaxSize(200, 100);
result.setDisable(true);
VBox vBox = new VBox(nameLable, nameTxt, idLable, idTxt, ageLable, ageTxt, addBtn, backBtn, clearBtn, result);
Scene addScene = new Scene(vBox, 400, 300);
primaryStage.setScene(addScene);
primaryStage.show();
addBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
try {
String name = nameTxt.getText();
String id = idTxt.getText();
int age = Integer.parseInt(ageTxt.getText());
Student student = new Student(name, id, age);
if (studentManager.addStudent(student)) {
result.setText("Successful");
} else {
result.setText("Failed");
}
} catch (NumberFormatException ex) {
System.out.println("NumberFormatException");
result.setText("Try again!!!");
}
}
});
backBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
primaryStage.setScene(scene);
primaryStage.show();
}
});
clearBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
nameTxt.setText("");
idTxt.setText("");
ageTxt.setText("");
}
});
}
});
removeBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Label removeIDLable = new Label("ID");
TextField removeTxt = new TextField();
removeTxt.setMaxSize(200, 20);
Button removeBtnSub = new Button("Remove");
Button backBtnSub = new Button("Back");
TextField removeResultTxt = new TextField();
removeResultTxt.setMaxSize(200, 20);
removeResultTxt.setDisable(true);
VBox vBox1 = new VBox(removeIDLable, removeTxt, removeBtnSub, backBtnSub, removeResultTxt);
Scene removeScene = new Scene(vBox1, 400, 200);
primaryStage.setScene(removeScene);
primaryStage.show();
removeBtnSub.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
try {
String removeID = removeTxt.getText();
if (studentManager.removeStudentByID(removeID)) {
removeResultTxt.setText("Successful");
} else {
removeResultTxt.setText("Failed");
}
} catch (NumberFormatException ex) {
ex.printStackTrace();
}
}
});
backBtnSub.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
primaryStage.setScene(scene);
primaryStage.show();
}
});
}
});
}
public static void main(String[] args) {
Application.launch(args);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment