ともさんのHP >プロブラミング >JavaFX >コンボボックス、チョイスボックス

ComboBox,CoiceBoxのサンプルプログラム

JavaFXのコントロール、ComboBoxとChoiceBoxを利用するシンプルなサンプルプログラムです。
サンプルプログラム

広告


コンボボックス、チョイスボックスの機能

あらかじめ登録しておいたリストから、一つの値を選択するコントロールです。
両者はよく似ていますが、ComboBoxはsetEditable()メソッドでtrueをセットすれば、登録した値以外にキー入力した値を設定できます。

サンプルプログラムの説明

JavaFX楽天 で新Stageを作り、コンボボックスcomboとチョイスボックスchoice、それからラベルを配置します。
コンボボックス、チョイスボックスにはそれぞれ選択するためのリストを設定して初期化。

  combo = new ComboBox<String>( FXCollections.observableArrayList( "いちご" , "ニンジン" , "サクランボ" ) );

  choice = new ChoiceBox<String>( FXCollections.observableArrayList( "a" , "b" , "c" , "d" ));

コンボボックスはキー入力できるように設定します。

  combo.setEditable( true );

デフォルトの初期値は入っていませんが、setValue()メソッドで設定できます。ただし、リストに入っていないとダメです。

  combo.setValue("いちご");
  choice.setValue("a");


イベント処理

setEvent()メソッド中で設定しています。ActionEventを拾い、それぞれ指定の処理メソッドを実行します。

private void setEvent(){
EventHandler<ActionEvent> choiceBoxChanged = ( event ) -> this.choiceBoxChanged( event );
choice.addEventHandler( ActionEvent.ACTION , choiceBoxChanged );
EventHandler<ActionEvent> comboBoxChanged = ( event ) -> this.comboBoxChanged( event );
combo.addEventHandler( ActionEvent.ACTION , comboBoxChanged );
}

イベント処理メソッドでは、ActionEventからイベントを呼んだコントロールを得て、

 ChoiceBox c = (ChoiceBox)e.getSource();

このコントロールの選択した値を得て、ラベルに表示させてます。

 label.setText( (String)c.getValue() );


サンプルプログラムのコード

上の動画のソースコードは下記の通り。

package tomojavalib.fx;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;

public class ComboBoxTest extends Application {
ChoiceBox<String> choice;
ComboBox<String> combo;
Label label;

 public static void main(String[] args) {
  Application.launch(args);
 }
 
 @Override
 public void start(Stage stage) throws Exception {
  Vbox pane = new Vbox();
  combo = new ComboBox<String>( FXCollections.observableArrayList( "いちご" , "ニンジン" , "サクランボ" ) );
  combo.setEditable( true );
  combo.setValue("いちご");
  choice = new ChoiceBox<String>( FXCollections.observableArrayList( "a" , "b" , "c" , "d" ));
  choice.setValue("a");

  label = new Label();
  
  pane.getChildren().addAll( combo ,choice,label);
  Scene scene = new Scene(pane, 320, 240);
  stage.setScene(scene);
  stage.show();
  this.setEvent();
 }

private void setEvent(){
EventHandler<ActionEvent> choiceBoxChanged = ( event ) -> this.choiceBoxChanged( event );
choice.addEventHandler( ActionEvent.ACTION , choiceBoxChanged );
EventHandler<ActionEvent> comboBoxChanged = ( event ) -> this.comboBoxChanged( event );
combo.addEventHandler( ActionEvent.ACTION , comboBoxChanged );
}

private void choiceBoxChanged( ActionEvent e ){
 ChoiceBox c = (ChoiceBox)e.getSource();
 System.out.println( "選択"+(String)c.getValue() ) ;
 label.setText( (String)c.getValue() );
}

private void comboBoxChanged( ActionEvent e ){
 ComboBox c = (ComboBox)e.getSource();
 System.out.println( "選択"+(String)c.getValue() ) ;
 label.setText( (String)c.getValue() );
}

}

最終更新日: 2017-07-11 14:26:54

ともさんのHP >プロブラミング >JavaFX >コンボボックス、チョイスボックス

広告
新着ページ

AIを利用し、衣服のデザイン画から型紙を制作する方法  
2つのアパレル3D技術でひらくオーダーメイド生産の手法  
【洋裁型紙】前後身頃の肩の傾きは何故前身頃の方が傾いているのか  
電子追尾式天体写真撮影法  
日本ミツバチ巣箱の種類  
ドラフター(製図台)でソーイング  
日本ミツバチが逃亡  
カメさんの箱庭  
天体用デジタルカメラの構造と天体写真  
Javaで静止画像(Jpeg)を動画(Mov)に変換  
USBカメラをJAVAで制御  

他のサイト

3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

このサイトの文章・写真の無断転載を禁じます