Saturday, January 4, 2014

Menggunakan radio button dengan benar di JavaFX

Berikut ini adalah contoh source cara menggunakan radio button yang benar di JavaFX:
package fjr.test.toggle;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class TestToggleA extends Application {
 
 static enum Cuaca{
  CERAH , BERAWAN
 }

 Cuaca cuaca_now = Cuaca.CERAH; 
 
 public static void main(String[] args){
  Application.launch(args);
 }

 ToggleGroup groupToggle ; 
 
 RadioButton radio1 , radio2 ; 

 @Override
 public void start(Stage stage) throws Exception {
  Group root = new Group(); 
  
  groupToggle = new ToggleGroup(); 

  HBox box = new HBox(){{
   setTranslateX(30);
   setTranslateY(30);
   setSpacing(10);
   
   getChildren().addAll(
     radio1 = new RadioButton("BERSINAR"){{
      setToggleGroup(groupToggle);
      setUserData(Cuaca.CERAH);
     }}, 
     
     radio2 = new RadioButton("GELAP"){{
      setToggleGroup(groupToggle);
      setUserData(Cuaca.BERAWAN);
     }}); 
  }}; 
  
  
  switch(cuaca_now){
  case CERAH:
   radio1.setSelected(true);
   break; 
  case BERAWAN:
   radio2.setSelected(true);
   break; 
  }
  
  root.getChildren().add(box); 
  stage.setScene(new Scene(root, 200,200));
  stage.show(); 
  
  
  System.out.println("Type cuaca saat inisialisasi: "+ cuaca_now); 
  
  groupToggle.selectedToggleProperty().addListener(new ChangeListener() {
   @Override
   public void changed(ObservableValue arg0,
     Toggle arg1, Toggle toggle) {
    // TODO Auto-generated method stub
    RadioButton radio = (RadioButton) toggle; 
    Cuaca c = (Cuaca) radio.getUserData(); 
    cuaca_now = c; 
    System.out.println("Type cuaca saat pergantian button: "+cuaca_now);
   }
  });
  
 }
}

No comments: