Tuesday, November 29, 2016

Membuat Aplikasi untuk Memasukkan Anggota Organization : Membuat Class LoginScreen

Class LoginScreen memiliki constructor yang menerima referensi Primary Stage dan Connection. PrimaryStage dan Connection tersebut akan digunakan oleh semua screen dari aplikasi-aplikasi. Constructor yang kita gunakan adalah :
LoginScreen(Stage stage, Connection conApp)

Perhatikanlah bahwa login screen ini hanya melakukan koneksi ke database. BeLuM menampilkan layar untuk memasukkan data-data Member. Hal ini terlihat dari inner ButtonHandler yang merupakan penerapan dari  EventHandler. Disebut penerapan karena EventHandler adalah interface.

Untuk melakukan menampilkan Layar MemberEntriScreen, kita akan mebuat program yang ditampilkan pada layar berikutnya.


class ButtonHandler implements EventHandler<ActionEvent>{

        @Override
        public void handle(ActionEvent t) {
            if (t.getSource().equals(btnLogin)){
                try {
                    conApp = DriverManager.getConnection(
                            "jdbc:derby://localhost:1527/Organization",
                            txfUser.getText(),
                            psfPassword.getText());
                    btnLogin.setText("Success");
                } catch (SQLException ex) {
                    txfUser.setText("failed login");
                }
             
            }
            else if(t.getSource().equals(btnCancel)){
             
            }
        }
     
    }

Adapun kode program lengkapnya adalah sebagai berikut :


/**
 *
 * @author Joko Adianto
 * Released under GPLv3;
 */

package javafxorganization;

import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class LoginScreen {
    Group root;
    Stage stage;
    Scene scene;
    Connection conApp;
 
    Label lblUser;
    TextField txfUser;
    HBox hbxUser;
 
    Label lblPassword;
    PasswordField psfPassword;
    HBox hbxPassword;
 
    Button btnLogin;
    Button btnCancel;
    HBox hbxButton;
    VBox vbxLogin;
 
    ButtonHandler bh;
 
    class ButtonHandler implements EventHandler<ActionEvent>{

        @Override
        public void handle(ActionEvent t) {
            if (t.getSource().equals(btnLogin)){
                try {
                    conApp = DriverManager.getConnection(
                            "jdbc:derby://localhost:1527/Organization",
                            txfUser.getText(),
                            psfPassword.getText());
                    btnLogin.setText("Success");
                } catch (SQLException ex) {
                    txfUser.setText("failed login");
                }
             
            }
            else if(t.getSource().equals(btnCancel)){
             
            }
        }
     
    }
 
    {
        lblUser = new Label("User");
        lblUser.setMinWidth(80);
        txfUser = new TextField();
        txfUser.setMinWidth(120);
        hbxUser = new HBox();
        hbxUser.getChildren().addAll(lblUser, txfUser);
     
 
        lblPassword = new Label("Password");
        lblPassword.setMinWidth(80);
        psfPassword = new PasswordField();
        psfPassword.setMinWidth(120);
        hbxPassword = new HBox();
        hbxPassword.getChildren().addAll(lblPassword, psfPassword);
 
        btnLogin = new Button("Login");
        btnLogin.setMinWidth(lblPassword.getMinWidth());
        btnCancel = new Button("Cancel");      
        btnCancel.setMinWidth(lblPassword.getMinWidth());
     
        hbxButton = new HBox(65);
     
     
        hbxButton.getChildren().addAll(btnLogin, btnCancel);
     
        vbxLogin = new VBox();
        vbxLogin.getChildren().addAll(hbxUser, hbxPassword, hbxButton);
 
        bh = new ButtonHandler();
        btnLogin.setOnAction(bh);
        btnCancel.setOnAction(bh);
    }
 
    LoginScreen(Stage stage, Connection conApp){
        this.stage = stage;      
        this.conApp = conApp;
        root = new Group();
        root.getChildren().addAll(vbxLogin);
        scene = new Scene(root, vbxLogin.getMinWidth(),
                vbxLogin.getMinHeight(),
                Color.AQUAMARINE);
        this.stage.setScene(scene);
        this.stage.setTitle("Login To Application");
        this.stage.show();
    }
 
}

No comments:

Post a Comment