ともさんのHP >プロブラミング >JavaFX >ListViewの使いかた

JavaFX-ListViewの使いかた

JavaFXでListView(リストビュー)を使うサンプルプログラムを紹介します。
ListViewは下の動画のようなリストを表示して、マウスでクリックすると選択できる機能があります。行が多いと、自動的にスクロールバーが追加されます。

広告


設定方法

表示するアイテムをString配列で作り、ObservableListにします。
これをListViewにセットします。

ListView<String> list = new ListView<>();
//アイテムに入れる文字列を用意する
String[] s = new String[]{ "A4横" , "A4縦" , "A3横" , "A3縦" };
ObservableList<String>lm = FXCollections.observableArrayList( s );
//アイテムをセット
list.setItems( lm );

1行で済ませるとこんな感じ。

ListView<String> list = new ListView<>(FXCollections.observableArrayList(  "A4横" , "A4縦" , "A3横" , "A3縦"  ));


イベントの設定

マウスでリスト上のアイテムを選択した場合の対応
ListViewにイベントを設定

list.setOnMouseClicked((MouseEvent event )->{ listClicked( event );});

イベント発生時の処理
下の例では選択したアイテムの文字をTextに表示させています。

private void listClicked(MouseEvent e){
ListView<String> l = (ListView)e.getSource();
String s = (String)l.getSelectionModel().getSelectedItem();
if( s==null ){ return; }
System.out.println( s );
text.setText( s );
return;
}


リストの入れ替え

リストを入れ替えたい場合は、まずリストのアイテムを消去し、そのあと新たなアイテムをセットします。
消去せずにセットすると、既存のアイテムの下に追加されます。

  String[] s = new String[]{ "A0横" , "A0縦" , "A1横" , "A1縦" };
  ObservableList<String>lm = FXCollections.observableArrayList( s );
  //既存のアイテムをクリアする
  list.getItems().clear();
  //新たなアイテムをセット
  list.setItems( lm );


サンプルプログラム

ページトップの動画のソースは以下の通り
JavaFXListViewサンプルプログラム

広告

package tomojavalib.swingfx;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.*;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class ListViewTestFx extends Application {

Text text = null;
ListView<String> list = new ListView<>();

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

 @Override
 public void start(Stage stage) throws Exception {
  stage.setTitle("JavaFX楽天 ");
  VBox pane = new VBox();
  Scene scene = new Scene(pane, 320, 240);

  text= new Text("");
  pane.getChildren().add(text);

  //アイテムに入れる文字列を用意する
  String[] s = new String[]{ "A4横" , "A4縦" , "A3横" , "A3縦" , "A5横" , "A5縦" , "A2横" , "A2縦" , "A1横" , "A1縦" , "A0横" , "A0縦" };
  ObservableList<String>lm = FXCollections.observableArrayList( s );
  //アイテムをセット
  list.setItems( lm );
  //サイズ設定
  list.setPrefSize(200, 100);
  //イベント設定
  list.setOnMouseClicked((MouseEvent event )->{ listClicked( event );});
  pane.getChildren().add(list);

  Button button = new Button("リスト入れ替え");
  button.setOnMouseClicked((MouseEvent event )->{ buttonClicked( event );});
  pane.getChildren().add(button);

  stage.setScene(scene);
  stage.show();
 }

private void listClicked(MouseEvent e){
ListView<String> l = (ListView)e.getSource();
String s = (String)l.getSelectionModel().getSelectedItem();
if( s==null ){ return; }
System.out.println( s );
text.setText( s );
return;
}

private void buttonClicked(MouseEvent e){
  String[] s = new String[]{ "A0横" , "A0縦" , "A1横" , "A1縦" , "A2横" , "A2縦" };
  ObservableList<String>lm = FXCollections.observableArrayList( s );
  //既存のアイテムをクリアする
  list.getItems().clear();
  //新たなアイテムをセット
  list.setItems( lm );
return;
}

}

最終更新日: 2020-01-10 04:54:10

ともさんのHP >プロブラミング >JavaFX >ListViewの使いかた

広告
新着ページ

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

他のサイト

3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

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