JavaFXおもなUIコンポーネント
ボタンやテキストフィールドなど、JavaFXで用意されているよく使いそうなUIの紹介です。
本来ならクリックしたらイベントを起こすのですが、今回は並べて表示させているだけです。
Swingよりも少し種類が増えていますが、使いかたは変わっていないようですね。
ラベル、テキストフィールド、ボタン楽天 、トグルボタン、ラジオボタン、チェックボックス、選択ボックス、
コンボボックス、リストビューについて調べましたが、他にも...
日付ピッカーや色ピッカー、HTMLエディタ、WEBブラウザーなどもあります。
TextとTextFieldの違い
Textは文書を表示するノード、TextFieldは文書を入れるコンポーネントになります。
ButtonとToggleButtonの違い
ボタンは押したら凹んで元に戻る。トグルボタンは押すと凹んだまま。もう一度押すと元に戻る。
ChoiceBoxとComboBoxの違い
選択ボックスはあらかじめ用意されたリストから選ぶことしかできない。
コンボボックスはユーザーがリスト以外のアイテムを入力することが可能。
サンプルプログラム
package tomojavalib.fx;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class UI extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception {
//StageにPaneとSceneを置く
Vbox pane = new Vbox();
//UIを置く
this.setUI( pane );
Scene scene = new Scene(pane, 320, 400);
stage.setScene(scene);
stage.show();
}
private void setUI( Pane p ){
//ラベル
Label l1 = new Label( " ラベル " );
p.getChildren().add( l1 );
Label l2 = new Label( " ラベルです " );
p.getChildren().add( l2 );
Separator sep1 = new Separator();
sep1.setOrientation( Orientation.HORIZONTAL );
p.getChildren().add( sep1 );
//テキストフィールド
Label l3 = new Label( " テキストフィールド " );
p.getChildren().add( l3 );
TextField t = new TextField( " テキストフィールド " );
p.getChildren().add( t );
Separator sep2 = new Separator();
p.getChildren().add( sep2 );
//ボタン
Label l4 = new Label( " ボタン " );
p.getChildren().add( l4 );
Button b = new Button( " ボタン " );
p.getChildren().add( b );
Separator sep3 = new Separator();
p.getChildren().add( sep3 );
//トグルボタン
Label l5 = new Label( " トグルボタン " );
p.getChildren().add( l5 );
ToggleButton tb = new ToggleButton( " トグルボタン " );
p.getChildren().add( tb );
Separator sep4 = new Separator();
p.getChildren().add( sep4 );
Label l6 = new Label( " ラジオボタン " );
p.getChildren().add( l6 );
RadioButton rb1 = new RadioButton( " ラジオボタン1 " );
rb1.setSelected(true);
p.getChildren().add( rb1 );
RadioButton rb2 = new RadioButton( " ラジオボタン2 " );
p.getChildren().add( rb2 );
RadioButton rb3 = new RadioButton( " ラジオボタン3 " );
p.getChildren().add( rb3 );
ToggleGroup group = new ToggleGroup();
group.getToggles().add(rb1);
group.getToggles().add(rb2);
group.getToggles().add(rb3);
Separator sep5 = new Separator();
p.getChildren().add( sep5 );
// チェックボックス
Label l7 = new Label( " チェックボックス " );
p.getChildren().add( l7 );
CheckBox check = new CheckBox("チェックボックス");
check.setAllowIndeterminate( true );
p.getChildren().addAll( check );
Separator sep6 = new Separator();
p.getChildren().add( sep6 );
// 選択ボックス
Label l8 = new Label( " 選択ボックス " );
p.getChildren().add( l8 );
ChoiceBox cb = new ChoiceBox( FXCollections.observableArrayList( "上" , "下" , new Separator() , "右" , "左" ));
cb.setValue("上");
p.getChildren().add( cb );
Separator sep7 = new Separator();
p.getChildren().add( sep7 );
// コンボボックス
Label l9 = new Label( " コンボボックス " );
p.getChildren().add( l9 );
ComboBox combo = new ComboBox( FXCollections.observableArrayList( "上" , "下" , new Separator() , "右" , "左" ) );
combo.setEditable( true );
combo.setValue("下");
p.getChildren().add( combo );
// リストビュー
ListView<String> lv = new ListView<String>();
lv.setItems( FXCollections.observableArrayList( "1行目" , "2行目" , "3行目" ) );
lv.setMaxHeight(60);
p.getChildren().add( lv );
}
}
最終更新日: 2017-03-31 10:01:21