Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package universitysystem;
- import java.awt.Dialog;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javafx.application.Application;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.geometry.Insets;
- import javafx.geometry.Pos;
- import javafx.scene.Group;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.layout.StackPane;
- import javafx.stage.Stage;
- import javafx.scene.control.*;
- import javafx.scene.image.Image;
- import javafx.scene.image.ImageView;
- import javafx.scene.layout.BorderPane;
- import javafx.scene.layout.GridPane;
- import javafx.scene.layout.HBox;
- import javafx.scene.layout.VBox;
- import javafx.scene.paint.Color;
- import javafx.scene.paint.Paint;
- import javafx.scene.shape.Circle;
- import javafx.scene.shape.Rectangle;
- import javafx.scene.text.Font;
- import javafx.scene.text.FontPosture;
- import javafx.scene.text.FontWeight;
- import javafx.scene.text.Text;
- import javafx.stage.Modality;
- import javax.swing.JOptionPane;
- public class UniversitySystem extends Application {
- Statement statement;
- @Override
- public void start(Stage primaryStage) throws SQLException {
- Database db = new Database();
- this.statement = db.StartDatabase("university","root","root");
- LoginPage();
- //TestPage();
- }
- public static void main(String[] args) {
- //Database handling
- launch(args);
- }
- public void LoginPage()
- {
- final Stage Login = new Stage();
- //Elements
- Button loginB = new Button("Login");
- Label unL = new Label("Username:");
- Label pwL = new Label("Password:");
- final TextField unT = new TextField();
- final PasswordField pwT = new PasswordField();
- //Content Layout
- GridPane gp = new GridPane();
- loginB.setMinSize(50, 30);
- gp.add(unL, 0, 0);
- gp.add(unT, 1, 0);
- gp.add(pwL, 0, 1);
- gp.add(pwT, 1, 1);
- gp.add(loginB, 1, 7);
- gp.setHgap(5);
- gp.setVgap(5);
- gp.setAlignment(Pos.CENTER);
- //Window Layout
- Scene scene = new Scene(gp);
- Login.setScene(scene);
- Login.setHeight(200);
- Login.setWidth(310);
- Login.setResizable(false);
- Login.setTitle("Login | University System");
- Login.show();
- loginB.setOnAction(new EventHandler<ActionEvent>() {
- //check username and password and if found get type of user
- @Override
- public void handle(ActionEvent t) {
- try {
- String Type = null;
- ResultSet resultset ;
- resultset = statement.executeQuery("select * from students where Username="+"'"+unT.getText()+"'"+"and Password="+"'"+pwT.getText()+"'");
- if(resultset.first())
- {
- System.out.println(resultset.getString(1)+" "+resultset.getString(2)+" "+resultset.getString(3));
- Type ="student";
- StudentPage(resultset.getString(1),resultset.getString(2),resultset.getString(3),Type,Login);
- }
- resultset=statement.executeQuery("select * from instructors where Username="+"'"+unT.getText()+"'"+"and Password="+"'"+pwT.getText()+"'");
- if(resultset.first())
- {
- System.out.println(resultset.getString(1)+" "+resultset.getString(2)+" "+resultset.getString(3));
- Type ="instructor";
- //InstructorPage(resultset.getString(1),resultset.getString(2),resultset.getString(3),Type,Login);
- }
- if(Type==null){
- JOptionPane.showMessageDialog(null, "The username or password is incorrect", "Invalid Login", JOptionPane.CANCEL_OPTION);
- Login.close();
- pwT.clear();
- Login.show();
- }
- } catch (SQLException ex) {
- JOptionPane.showMessageDialog(null, "SQL Exception in Login Button", "Invalid Login", JOptionPane.CANCEL_OPTION);
- }
- }
- });
- }
- public void StudentPage(final String ID,final String fname,final String lname,final String Type,Stage Prev) throws SQLException
- {
- Prev.close(); // Login
- final Stage Student = new Stage();
- Group root = new Group();
- Scene scene = new Scene(root, 900, 800, Color.WHITE);
- TabPane tp = new TabPane();
- BorderPane bp = new BorderPane();
- Tab[] tab = new Tab[5];
- //Create 4 Tabs
- for (int i=1;i<5;i++)
- {
- tab[i] = new Tab();
- tab[i].setStyle(Styles.getTabPaneStyle());
- tab[i].setGraphic(buildImage("resources/"+Integer.toString(i)+".png"));
- tab[i].setClosable(false);
- tp.getTabs().add(tab[i]);
- }
- //==============
- DrawInfoTab1(tab[1], ID, fname, lname, Type, Student);
- DrawRegTab2(tab[2], ID, fname, lname, Type, Student);
- //==============
- bp.prefHeightProperty().bind(scene.heightProperty());
- bp.prefWidthProperty().bind(scene.widthProperty());
- bp.setCenter(tp);
- root.getChildren().add(bp);
- Student.setScene(scene);
- Student.show();
- }
- public void DrawInfoTab1(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
- {
- //Info Tab
- //Info Section
- final ResultSet info = statement.executeQuery("select * from students where SID="+"'"+ID+"'");
- info.next();
- //==============
- //Image Section
- ImageView image = buildImage("resources/default.png");
- image.setFitWidth(225);
- image.setFitHeight(200);
- //==============
- //Edit Section
- HBox hb = new HBox(10);
- ObservableList<String> options =
- FXCollections.observableArrayList(
- "LocalAddress",
- "Mobile",
- "Email"
- );
- final ComboBox comboBox = new ComboBox(options);
- final TextField tf = new TextField();
- Button Edit = new Button("Edit");
- Edit.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent t) {
- try {
- // System.out.println(comboBox.getSelectionModel().getSelectedItem().toString());
- statement.executeUpdate("Update students Set "+comboBox.getSelectionModel().getSelectedItem().toString()+"="+"'"+tf.getText()+"'"+"Where SID="+"'"+ID+"'");
- StudentPage(ID, fname, lname, Type, stage);
- } catch (SQLException ex) {
- Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- });
- hb.getChildren().addAll(comboBox,tf,Edit);
- hb.setAlignment(Pos.CENTER);
- hb.setPadding(new Insets(100));
- //==============
- //Content
- BorderPane bp1 = new BorderPane();
- bp1.setCenter(GetinfoLabel(info));
- bp1.setRight(image);
- bp1.setBottom(hb);
- bp1.setPadding(new Insets(20, 10, 0, 0));
- tab.setContent(bp1);
- //return tab;
- }
- public void DrawRegTab2(Tab tab,final String ID,final String fname,final String lname,final String Type,final Stage stage) throws SQLException
- {
- VBox vb = new VBox(400);
- VBox vb1 = new VBox();
- VBox vb2 = new VBox();
- BorderPane bpTop = new BorderPane();
- BorderPane bpBot = new BorderPane();
- int size;
- int i=0;
- ResultSet TakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
- TakencoursesCount.next();
- size = Integer.parseInt(TakencoursesCount.getString(1));
- String[] courses = new String[size];
- //Registerd Courses
- ResultSet coursesCode= statement.executeQuery("select Code,TextBooks from courses where CID in( select CID from students_courses where SID = "+"'"+ID+"'"+"and Grade !='U')");
- while(coursesCode.next())
- {
- courses[i] = coursesCode.getString(1)+" "+coursesCode.getString(2)+"\t\t";
- i++;
- }
- i=0;
- ResultSet coursesCID = statement.executeQuery("select * from students_courses Where SID="+"'"+ID+"'"+"and Grade !='U'");
- while(coursesCID.next())
- {
- courses[i]= courses[i] +coursesCID.getString(3); // get course code and its grade
- i++;
- }
- i=0;
- ListView<String> list = new ListView<>();
- ObservableList<String> items =FXCollections.observableArrayList (courses);
- list.setItems(items);
- list.setPrefHeight(250);
- list.setPrefWidth(300);
- vb1.getChildren().add(new Label("Taken Courses"));
- vb1.getChildren().add(list);
- //===========================================
- ResultSet UntakencoursesCount = statement.executeQuery("select count(*) from students_courses Where SID="+"'"+ID+"'"+"and Grade ='U'");
- UntakencoursesCount.next();
- size = Integer.parseInt(UntakencoursesCount.getString(1));
- String[] Ucourses = new String[size];
- //Unregisterd Courses and remove button
- ResultSet UcoursesCode= statement.executeQuery("select Code,TextBooks from courses where CID in( select CID from students_courses where SID = "+"'"+ID+"'"+"and Grade ='U')");
- while(UcoursesCode.next())
- {
- Ucourses[i] = UcoursesCode.getString(1)+" "+UcoursesCode.getString(2)+"\t\t";
- i++;
- }
- i=0;
- ResultSet UcoursesCID = statement.executeQuery("select * from students_courses Where SID="+"'"+ID+"'"+"and Grade ='U'");
- while(UcoursesCID.next())
- {
- Ucourses[i]= Ucourses[i] +UcoursesCID.getString(3); // get course code and its grade
- i++;
- }
- final ListView<String> Ulist = new ListView<>();
- final ObservableList<String> Uitems =FXCollections.observableArrayList (Ucourses);
- Ulist.setItems(Uitems);
- Ulist.setPrefHeight(250);
- Ulist.setPrefWidth(300);
- Button Remove = new Button("Remove");
- Remove.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent t) {
- String[] m =Ulist.getSelectionModel().getSelectedItem().split(" ");
- System.out.println(m[0]);
- Uitems.remove(Ulist.getSelectionModel().getSelectedItem());
- try {
- statement.execute("Delete from students_courses where SID ="+"'"+ID+"'"+"and CID = ( select CID from courses where Code = "+"'"+m[0]+"'"+")");
- System.out.println("Data Removed !!!");
- } catch (SQLException ex) {
- Logger.getLogger(UniversitySystem.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- });
- vb2.getChildren().add(new Label("Untaken Courses"));
- vb2.getChildren().add(Ulist);
- vb2.getChildren().add(Remove);
- //====================================
- //Add Course
- String[] AvailableCourses = new String[3];
- //====================================
- bpTop.setLeft(vb1);
- bpTop.setRight(vb2);
- bpTop.setBottom();
- bpTop.setPadding(new Insets(30,20,0,20));
- vb.getChildren().add(bpTop);
- tab.setContent(vb);
- }
- public void TestPage()
- {
- Stage primaryStage = new Stage();
- primaryStage.setTitle("Tabs");
- Group root = new Group();
- Scene scene = new Scene(root, 400, 250, Color.WHITE);
- TabPane tabPane = new TabPane();
- BorderPane borderPane = new BorderPane();
- for (int i = 0; i < 5; i++) {
- Tab tab = new Tab();
- tab.setGraphic(buildImage("resources/graduation.png"));
- HBox hbox = new HBox();
- hbox.getChildren().add(new Label("Tab" + i));
- hbox.setAlignment(Pos.CENTER);
- tab.setContent(hbox);
- tab.setClosable(false);
- tabPane.getTabs().add(tab);
- }
- borderPane.prefHeightProperty().bind(scene.heightProperty());
- borderPane.prefWidthProperty().bind(scene.widthProperty());
- borderPane.setCenter(tabPane);
- root.getChildren().add(borderPane);
- primaryStage.setScene(scene);
- primaryStage.show();
- }
- public VBox GetinfoLabel(ResultSet info) throws SQLException
- {
- VBox vb = new VBox();
- Label idL = new Label("ID: ");
- Label fnameL = new Label("First name: ");
- Label lnameL = new Label("Last name: ");
- Label termL = new Label("Term: ");
- Label departmentL = new Label("Department: ");
- Label genderL = new Label("Gender: ");
- Label dateofbirthL= new Label("DateofBirth: ");
- Label enrolledyearL= new Label("EnrolledYear: ");
- Label localaddressL= new Label("LocalAddress: ");
- Label mobileL= new Label("Mobile: ");
- Label EmailL= new Label("Email: ");
- Label usernameL= new Label("Username: ");
- Label noteL= new Label("Note: ");
- info.first();
- Label idLS = new Label(info.getString(1));
- Label fnameLS = new Label(info.getString(2));
- Label lnameLS = new Label(info.getString(3));
- Label termLS = new Label(info.getString(4));
- Label departmentLS = new Label(info.getString(5));
- Label genderLS = new Label(info.getString(6));
- Label dateofbirthLS= new Label(info.getString(7));
- Label enrolledyearLS= new Label(info.getString(8));
- Label localaddressLS= new Label(info.getString(9));
- Label mobileLS= new Label(info.getString(10));
- Label EmailLS= new Label(info.getString(11));
- Label usernameLS= new Label(info.getString(12));
- Label noteLS= new Label(info.getString(14));
- Label All = new Label(idL.getText()+idLS.getText()+"\n\n"+
- fnameL.getText()+fnameLS.getText()+"\n\n"+
- lnameL.getText()+lnameLS.getText()+"\n\n"+
- termL.getText()+termLS.getText()+"\n\n"+
- departmentL.getText()+departmentLS.getText()+"\n\n"+
- genderL.getText()+genderLS.getText()+"\n\n"+
- dateofbirthL.getText()+dateofbirthLS.getText()+"\n\n"+
- enrolledyearL.getText()+enrolledyearLS.getText()+"\n\n"+
- localaddressL.getText()+localaddressLS.getText()+"\n\n"+
- mobileL.getText()+mobileLS.getText()+"\n\n"+
- EmailL.getText()+EmailLS.getText()+"\n\n"+
- usernameL.getText()+usernameLS.getText()+"\n\n"+
- noteL.getText()+noteLS.getText()+"\n\n");
- All.setFont(Font.font("Arial", FontWeight.BOLD, 16));
- vb.setPadding(new Insets(40, 100, 0, 60));
- vb.getChildren().add(All);
- return vb;
- }
- private static ImageView buildImage(String imgPath) {
- ImageView imageView = new ImageView(new Image(imgPath));
- //You can set width and height
- imageView.setFitHeight(35);
- imageView.setFitWidth(40);
- return imageView;
- }
- public void ShowMessageBox(String text)
- {
- Label L = new Label(text);
- Stage dialogStage = new Stage();
- dialogStage.initModality(Modality.WINDOW_MODAL);
- VBox vbox = new VBox(5);
- vbox.getChildren().add(L);
- vbox.setAlignment(Pos.CENTER);
- vbox.setPadding(new Insets(30));
- dialogStage.setScene(new Scene(vbox));
- dialogStage.show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement