- OS : Fedora 17 (x86_64) / LXDE(デスクトップ環境)
- JDK : jdk-1.7.0_05-fcs.x86_64
- JavaFX : javafx-sdk2.2.0-beta (build 19)
- IDE : NetBeans IDE 7.2
サンプルソースを下記に示しました。なお、(Calendar.png)、(Contact.png) および (Home.png) の三種類の画像を、ソースと同じディレクトリに保存しておく必要があります。
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package uiradiobuttonsample; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; 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.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; /** * * @author bitwalk */ public class UIRadioButtonSample extends Application { final ImageView icon = new ImageView(); public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { Scene scene = new Scene(new Group()); stage.setTitle("Radio Button Sample"); stage.setWidth(250); stage.setHeight(150); final ToggleGroup group = new ToggleGroup(); RadioButton rb1 = new RadioButton("Home"); rb1.setToggleGroup(group); rb1.setUserData("Home"); RadioButton rb2 = new RadioButton("Calendar"); rb2.setToggleGroup(group); rb2.setUserData("Calendar"); RadioButton rb3 = new RadioButton("Contacts"); rb3.setToggleGroup(group); rb3.setUserData("Contacts"); group.selectedToggleProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue ov, Toggle old_toggle, Toggle new_toggle) { if (group.getSelectedToggle() != null) { final Image image = new Image( getClass().getResourceAsStream( group.getSelectedToggle().getUserData().toString() + ".jpg")); icon.setImage(image); } } }); HBox hbox = new HBox(); VBox vbox = new VBox(); vbox.getChildren().add(rb1); vbox.getChildren().add(rb2); vbox.getChildren().add(rb3); vbox.setSpacing(10); hbox.getChildren().add(vbox); hbox.getChildren().add(icon); hbox.setSpacing(50); hbox.setPadding(new Insets(20, 10, 10, 20)); ((Group) scene.getRoot()).getChildren().add(hbox); stage.setScene(scene); stage.show(); } }
0 件のコメント:
コメントを投稿