ともさんの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;
}

}

最終更新日: 2018-02-05 08:28:57

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

このエントリーをはてなブックマークに追加
広告
おすすめ記事
新着ページ

昔の玩具の作りかた  
渋柿で柿渋作り  
ダンゴムシの飼い方  
新旧文化式とドレメ式原型製図を比較  
萩の栽培、手入れ、増やしかた  
エアコンを使わなくても涼しい私の家  
合コン  
ウエストポーチを作りました  
ミシンでボタンを付ける  
ブログの住人  
ヒバカリの飼育  

私の他のサイト

ともさんの箱庭(ブログ)
家庭菜園
3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

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