Saturday, June 3, 2017

TextField Lanjutan : Menentukan Panjang Masukan TextField

Sekarang kita akan membuat TextField yang panjang masukannya ditentukan oleh programmer.

  1. Kita memiliki 3 buah TextField
  2. Kita menentukan panjang masukan yang dapat dituliskan
  3. Jika sudah mencapai panjang maksimal berpindah ke TextField berikutnya 
Jika sudah selesai melakukan eksplorasi buat program yang menentukan panjang textfield sesuai dengan panjang kolom didalam tabel yang tersimpan didalam database.

Sekarang kita akan melihat contoh program yang pertama :


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package javafxtextfield;


import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventDispatchChain;
import javafx.event.EventDispatcher;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.control.TextFormatter;
import javafx.scene.control.TextFormatter.Change;
import javafx.scene.control.TextInputControl;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Background;
import javafx.scene.layout.Border;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.StringConverter;

/**
 *
 * @author joko
 */
public class JavaFXTextField extends Application {
    TextField txf1 = new TextField();
    TextField txf2 = new TextField();
    TextField txf3 = new TextField();
    
    
    class ChangeHandler implements EventHandler{
        
        @Override
        public void handle(Event ev) {            
                if(txf1.getText().length()>10){
                    txf1.setText(txf1.getText(0, 10));     
                    txf2.requestFocus();
                }
                
                if(txf2.getText().length()>5){
                    txf2.setText(txf2.getText(0, 5));                    
                    txf3.requestFocus();
                }
                
                if(txf3.getText().length()>3){
                    txf3.setText(txf3.getText(0, 3));
                    txf1.requestFocus();
                }
                
        }
        
    }
    
    @Override
    public void start(Stage primaryStage) {
        ChangeHandler ch = new ChangeHandler();    
        txf1.addEventFilter(KeyEvent.KEY_RELEASED, ch);
        txf1.setMinWidth(100);
        txf1.setMaxWidth(100);
        txf2.addEventFilter(KeyEvent.KEY_RELEASED, ch);
        txf2.setMinWidth(90);
        txf2.setMaxWidth(90);
        txf3.addEventFilter(KeyEvent.KEY_RELEASED, ch);
        txf3.setMinWidth(90);
        txf3.setMaxWidth(90);
        
        GridPane root = new GridPane();
        VBox vbx = new VBox();
        vbx.getChildren().addAll(txf1, txf2, txf3);
        root.getChildren().add(vbx);
        Scene scene = new Scene(root, 300, 250);
        
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

No comments:

Post a Comment