Friday, December 2, 2016

Data Entry : membuat interface MemberEntriScreen

Untuk tampilan entri data kode program yang diperlukan adalah sebagai berikut :

package javafxtableview5;

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
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.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 *
 * @author Joko Adianto
 * Released under GPLv3
 */
public class JavaFXTableView5 extends Application {

public static class Member{  
    private final SimpleStringProperty memberId;
    private final SimpleStringProperty memberName;
    private final SimpleStringProperty memberAddress;
 
 
    Member(String memberId, String memberName, String memberAddress) {
        this.memberId = new SimpleStringProperty(memberId);
        this.memberName = new SimpleStringProperty(memberName);
        this.memberAddress = new SimpleStringProperty(memberAddress);
    }
 
    public String getMemberId() {
        return memberId.get();
    }

    public void setMemberId(String memberId) {
        this.memberId.set(memberId);
    }
 
    public String getMemberName() {
        return memberName.get();
    }

    public void setMemberName(String memberName) {
        this.memberName.set(memberName);
    }
    public String getMemberAddress() {
        return memberAddress.get();
    }

    public void setMemberAddress(String memberAddress) {
        this.memberAddress.set(memberAddress);
    }
 
 
}

StackPane root;
Stage stage;
Scene scene;

//Id
HBox hbxId;
Label lblId;
TextField txfId;

//Name
HBox hbxName;
Label lblName;
TextField txfName;

//Name
HBox hbxAddress;
Label lblAddress;
TextField txfAddress;


//Button
HBox hbxButton;
Button btnSave;
Button btnCancel;

//Table
private final TableView<Member> tbvMember = new TableView<>();
private final ObservableList<Member> obsMember =
    FXCollections.observableArrayList();

VBox vbx;


{
    hbxId = new HBox();
    lblId = new Label("Id");
    lblId.setMinWidth(60);
    txfId = new TextField();
    hbxId.getChildren().addAll(lblId, txfId);

    hbxName = new HBox();
    lblName = new Label("Name");
    lblName.setMinWidth(60);
    txfName = new TextField();
    hbxName.getChildren().addAll(lblName, txfName);
 
    hbxAddress = new HBox();
    lblAddress = new Label("Address");
    lblAddress.setMinWidth(60);
    txfAddress = new TextField();
    hbxAddress.getChildren().addAll(lblAddress, txfAddress);

    //1st col
    TableColumn memberIdCol = new TableColumn("Id");
    memberIdCol.setMinWidth(50);
    memberIdCol.setCellValueFactory(
    new PropertyValueFactory<>("memberId"));
 
    //2st col
    TableColumn memberNameCol = new TableColumn("Member Name");
    memberNameCol.setMinWidth(200);
    memberNameCol.setCellValueFactory(
    new PropertyValueFactory<>("memberName"));
 
    //3rd col
    TableColumn memberAddressCol = new TableColumn("Member Address");
    memberAddressCol.setMinWidth(200);
    memberAddressCol.setCellValueFactory(
    new PropertyValueFactory<>("memberAddress"));
 
    //TableView's columns  
    tbvMember.getColumns().addAll(memberIdCol, memberNameCol, memberAddressCol);
 
    //TableViews and ObservableList wiring
    tbvMember.setItems(obsMember);
 
    btnSave = new Button();
    btnSave.setMinWidth(100);
    btnSave.setText("Save");
    btnSave.setOnAction(new EventHandler<ActionEvent>() {
         
            @Override
            public void handle(ActionEvent event) {
                String strId = txfId.getText();
                String strName = txfName.getText();
                String strAddress = txfAddress.getText();
                obsMember.add(new Member(strId, strName, strAddress));
                txfId.setText("");
                txfName.setText("");
             
            }
        });
 
    btnCancel = new Button();
    btnCancel.setText("Cancel");
    btnCancel.setMinWidth(100);
 
    btnCancel.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                txfId.setText("");
                txfName.setText("");
            }
        });
 
    hbxButton = new HBox();
    hbxButton.setAlignment(Pos.CENTER);
    hbxButton.setSpacing(200);
    hbxButton.getChildren().addAll(btnSave, btnCancel);
    hbxButton.setSpacing(250);
    vbx = new VBox();
    vbx.getChildren().addAll(hbxId, hbxName, hbxAddress, hbxButton, tbvMember);
 
 
    root = new StackPane();
    root.getChildren().add(vbx);
    scene = new Scene(root, vbx.getMinWidth(), 300);
 
    }

@Override
public void start(Stage primaryStage)
    {
    stage = primaryStage;
    stage.setTitle("TableView ");
    stage.setScene(scene);
    stage.show();  
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
    launch(args);
    }

}

No comments:

Post a Comment