{"id":6285,"date":"2018-05-12T10:46:09","date_gmt":"2018-05-12T01:46:09","guid":{"rendered":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/?p=6285"},"modified":"2018-05-12T10:47:34","modified_gmt":"2018-05-12T01:47:34","slug":"javafx-tableview-colmn","status":"publish","type":"post","link":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/2018\/05\/12\/javafx-tableview-colmn\/","title":{"rendered":"JavaFX\u306eTableView\u3067\u5217\u6570\u3092\u52d5\u7684\u306b\u751f\u6210\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p>\u4ee5\u524d\u3001JavaFX\u306eTableVeiw\u306e\u4f7f\u3044\u65b9\u306b\u3064\u3044\u3066\u66f8\u304d\u307e\u3057\u305f\u304c\u3001\u3053\u306e\u65b9\u6cd5\u306e\u554f\u984c\u3068\u3057\u3066\u5217\u6570\u304c\u56fa\u5b9a\u3055\u308c\u3066\u3057\u307e\u3046\u3068\u3044\u3046\u70b9\u3067\u3059\u3002\u30c7\u30fc\u30bf\u30af\u30e9\u30b9\u3068\u30ea\u30f3\u30af\u3055\u305b\u308b\u305f\u3081\u30c7\u30fc\u30bf\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u3067\u6c7a\u307e\u3063\u3066\u3057\u307e\u3046\u304b\u3089\u3067\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-internal-wrap\"><a class=\"lkc-link no_icon\" href=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/2018\/04\/01\/javafx-tableview\/\" data-lkc-id=\"144\" target=\"_blank\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-domain\">\u975eIT\u4f01\u696d\u306b\u52e4\u3081\u308b\u4e2d\u5e74\u30b5\u30e9\u30ea\u30fc\u30de\u30f3\u306eIT\u65e5\u8a18<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-po\">2 Pockets<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/04\/javaFX_table_eye-150x150.jpg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">JavaFX\u3067\u30c6\u30fc\u30d6\u30eb\uff08TableView\uff09\u3092\u4f7f\u3046<\/div><div class=\"lkc-excerpt\">JavaFX\u3067\u30c6\u30fc\u30d6\u30eb\u3092\u6271\u3046\u65b9\u6cd5\u3067\u3059\u3002Java\u5168\u822c\u306b\u8a00\u3048\u308b\u3053\u3068\u3067\u3059\u304c\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306f\u5916\u89b3\u4e0a\u306e\u5236\u5fa1\u306e\u307f\u3067\u30c7\u30fc\u30bf\u3092\u5225\u306e\u30af\u30e9\u30b9\u3067\u5236\u5fa1\u3059\u308b\u3068\u3044\u3046\u30b1\u30fc\u30b9\u304c\u591a\u3044\u3067\u3059\u3002\u30ea\u30b9\u30c8\u7cfb\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306f\u307b\u307c\u305d\u3093\u306a\u611f\u3058\u3067\u3059\u306d\u3002JavaFX\u306e\u30c6\u30fc\u30d6\u30eb\u30b3\u30f3\u30c8\u30ed\u30fc\u30ebTableView\u3082\u3001\u30c7\u30fc\u30bf\u306fObservableList\u3068\u3044\u3046\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u3066\u5236\u5fa1\u3057\u307e\u3059\u3002Scene Builder\u3092\u4f7f\u3063\u3066TableView\u3092\u5b9f\u88c5Sene Builder\u3092\u4f7f\u3063\u3066TableView\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9f\u88c5\u3057\u307e\u3059\u3002\u30dc\u30bf\u30f3\u3092\u4f7f\u3044\u305f\u3044\u306e\u3067\uff11\u500b\u30bb\u30c3\u30c8\u3057\u3066\u304a\u304d\u307e\u3059\u3002&nbsp;TableView\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3060\u3051\u3067\u306f\u30c0\u30e1\u3067\u3001\u5217\u6570\u3060\u3051TableColumn\u3092TableView\u4e0a\u306b\u5b9f...<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p><a href=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/path3358-3-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-6287\" src=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/path3358-3-1-500x406.png\" alt=\"\" width=\"500\" height=\"406\" srcset=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/path3358-3-1-500x406.png 500w, http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/path3358-3-1-600x488.png 600w, http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/path3358-3-1.png 784w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u305d\u3046\u3067\u306f\u306a\u304f\u3001\u4efb\u610f\u306eCSV\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u5834\u5408\u306a\u3069\u3001\u5217\u6570\u3084\u5217\u540d\u304c\u30c7\u30fc\u30bf\u306e\u90fd\u5ea6\u53ef\u5909\u3055\u305b\u308b\u306b\u306f\u3069\u3046\u3059\u308c\u3070\u826f\u3044\u304b\u3001\u3068\u3044\u3046\u306e\u304c\u4eca\u56de\u306e\u30c6\u30fc\u30de\u3067\u3059\u3002<\/p>\n<p><a href=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/text6472.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-6289\" src=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/text6472-500x353.png\" alt=\"\" width=\"500\" height=\"353\" srcset=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/text6472-500x353.png 500w, http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/text6472-600x424.png 600w, http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/text6472.png 606w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">[ad#top-1]<\/p>\n<h2>\u5b8c\u6210\u5f62<\/h2>\n<p>\u5b8c\u6210\u5f62\u306f\u3053\u3061\u3089\u3067\u3059\u3002\u5217\u304c\uff13\u3064\u3042\u308a\u307e\u3059\u304c\u3001\u3053\u308c\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e2d\u3067\u52d5\u7684\u306b\u751f\u6210\u3057\u3066\u3044\u308b\u3082\u306e\u3067\u3059\u3002\u30c7\u30fc\u30bf\u30af\u30e9\u30b9\u3068\u95a2\u9023\u4ed8\u3051\u3057\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n<p><a href=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-57.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6292\" src=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-57.png\" alt=\"\" width=\"435\" height=\"268\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>SceneBuilder\u3067\u3082\u7279\u306b\u5217\uff08TableColmun\uff09\u3092\u8cbc\u308a\u4ed8\u3051\u3066\u306f\u3044\u307e\u305b\u3093\u3002TableView\u672c\u4f53\u306e\u307f\u3067\u3059\u3002<\/p>\n<p><a href=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-26.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-6291\" src=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-26-500x295.png\" alt=\"\" width=\"500\" height=\"295\" srcset=\"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-26-500x295.png 500w, http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-26-600x354.png 600w, http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-content\/uploads\/2018\/05\/Screenshot-at-2018-05-12-09-43-26.png 1117w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u5168\u6587<\/h2>\n<p>\u307e\u305a\u306f\u30c7\u30fc\u30bf\u30af\u30e9\u30b9\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3067\u3059\u3002ArrayList\u3067\u30c7\u30fc\u30bf\u30ea\u30b9\u30c8\u3092\u4fdd\u6301\u3057\u307e\u3059\u304c\u3001\u3053\u306e\u8981\u7d20\u6570\u304c\u5217\u306e\u6570\u306b\u306a\u308a\u307e\u3059\u3002\u809d\u306f<code>StringProperty get(int index)<\/code>\u30e1\u30bd\u30c3\u30c9\u3067\u3001\u3053\u308c\u3092\u4f7f\u3063\u3066\u5404\u5217\u3068ArrayList\u306e\u8981\u7d20No.\u3068\u3092\u5bfe\u6bd4\u3055\u305b\u307e\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nimport java.util.*;\r\nimport javafx.beans.property.*;\r\n\r\npublic class User {\r\n  private ArrayList&lt;String&gt; list;\r\n\r\n  public User(ArrayList&lt;String&gt; list) {\r\n    this.list = list;\r\n  }\r\n\r\n  public void add(String data){ list.add(data); }\r\n  public StringProperty get(int index){\r\n    return new SimpleStringProperty(list.get(index));\r\n  }\r\n}\r\n \r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u6b21\u306b\u672c\u4f53\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3067\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nimport javafx.application.Application;\r\nimport javafx.fxml.*;\r\nimport javafx.scene.Scene;\r\nimport javafx.stage.Stage;\r\nimport javafx.scene.layout.*;\r\nimport javafx.event.ActionEvent;\r\nimport javafx.scene.control.*;\r\nimport javafx.collections.*;\r\nimport javafx.scene.control.cell.*;\r\nimport javafx.scene.control.TableColumn.*;\r\nimport java.util.*;\r\nimport javafx.util.*;\r\nimport javafx.beans.value.*;\r\nimport javafx.beans.property.*;\r\n\r\npublic class TableTest2 extends Application implements Initializable {\r\n  @FXML private TableView table;\r\n  private List&lt;TableColumn&gt; columnList;\r\n  private ObservableList&lt;User&gt; data;\r\n\r\n  public static void main(String&#x5B;] args) {\r\n    launch(args);\r\n  }\r\n\r\n  @Override\r\n  public void start(Stage stage) throws Exception{\r\n    VBox root = FXMLLoader.load(getClass().getResource(&quot;TableTest2.fxml&quot;));\r\n    stage.setTitle(&quot;TableView Test&quot;);\r\n    stage.setScene(new Scene(root));\r\n    stage.show();\r\n  }\r\n\r\n  @Override\r\n  public void initialize(java.net.URL url, java.util.ResourceBundle bundle) {\r\n    columnList = new ArrayList&lt;TableColumn&gt;();\r\n\r\n    TableColumn dateCol1 = new TableColumn(&quot;\u540d\u524d&quot;);\r\n    columnList.add(dateCol1);\r\n    TableColumn dateCol2 = new TableColumn(&quot;\u4f4f\u6240&quot;);\r\n    columnList.add(dateCol2);\r\n    TableColumn dateCol3 = new TableColumn(&quot;\u5e74\u9f62&quot;);\r\n    columnList.add(dateCol3);\r\n    table.getColumns().addAll(columnList);\r\n\r\n    dateCol1.setCellValueFactory(new Callback&lt;CellDataFeatures&lt;User, String&gt;, ObservableValue&lt;String&gt;&gt;() {\r\n      public ObservableValue&lt;String&gt; call(CellDataFeatures&lt;User, String&gt; p) {\r\n        return p.getValue().get(0);\r\n      }\r\n    });\r\n\r\n    dateCol2.setCellValueFactory(new Callback&lt;CellDataFeatures&lt;User, String&gt;, ObservableValue&lt;String&gt;&gt;() {\r\n      public ObservableValue&lt;String&gt; call(CellDataFeatures&lt;User, String&gt; p) {\r\n        return p.getValue().get(1);\r\n      }\r\n    });\r\n\r\n    dateCol3.setCellValueFactory(new Callback&lt;CellDataFeatures&lt;User, String&gt;, ObservableValue&lt;String&gt;&gt;() {\r\n      public ObservableValue&lt;String&gt; call(CellDataFeatures&lt;User, String&gt; p) {\r\n        return p.getValue().get(2);\r\n      }\r\n    });\r\n\r\n    data = FXCollections.observableArrayList();\r\n    table.itemsProperty().setValue(data);\r\n    table.setItems(data);\r\n\r\n    ArrayList&lt;String&gt; col = new ArrayList&lt;String&gt;();\r\n    col.add(&quot;\u9234\u6728\u592a\u90ce&quot;);\r\n    col.add(&quot;\u6771\u4eac&quot;);\r\n    col.add(&quot;34&quot;);\r\n    data.addAll( new User(col) );\r\n  }\r\n}\r\n \r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u30dd\u30a4\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u90e8\u5206\u3067\u3059\u3002\u5217\u6570\u56fa\u5b9a\u306e\u5834\u5408\u306f<code>setCellValueFactory<\/code>\u306e\u5f15\u6570\u306b\u30c7\u30fc\u30bf\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u540d\u3092\u3042\u3066\u304c\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b<code>Callback<\/code>\u30af\u30e9\u30b9\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<p><code>return p.getValue().get(0);<\/code>\u306e<code>get<\/code>\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u5148\u307b\u3069\u306eUser\u30af\u30e9\u30b9\u306e<code>StringProperty get(int index)<\/code>\u30e1\u30bd\u30c3\u30c9\u3067\u3059\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\ndateCol1.setCellValueFactory(new Callback&lt;CellDataFeatures&lt;User, String&gt;, ObservableValue&lt;String&gt;&gt;() {\r\n  public ObservableValue&lt;String&gt; call(CellDataFeatures&lt;User, String&gt; p) {\r\n    return p.getValue().get(0);\r\n  }\r\n});\r\n \r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u4ee5\u4e0b\u306eJava\u306e\u516c\u5f0f\u30d8\u30eb\u30d7\u30da\u30fc\u30b8\u306e\u300c<strong>\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u542b\u307e\u306a\u3044\u30af\u30e9\u30b9\u306b\u5bfe\u3059\u308bTableView\u306e\u30b5\u30dd\u30fc\u30c8<\/strong>\u300d\u306b\u89e3\u8aac\u304c\u66f8\u304b\u308c\u3066\u3044\u308b\u306e\u3067\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/docs.oracle.com\/javase\/jp\/8\/javafx\/api\/javafx\/scene\/control\/TableView.html\" data-lkc-id=\"145\" target=\"_blank\" rel=\"external noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.google.com\/s2\/favicons?domain=docs.oracle.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">docs.oracle.com<\/div><div class=\"lkc-share\"> <div class=\"lkc-sns-hb\">1 User<\/div> <div class=\"lkc-sns-po\">1 Pocket<\/div><\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"http:\/\/s.wordpress.com\/mshots\/v1\/https%3A%2F%2Fdocs.oracle.com%2Fjavase%2Fjp%2F8%2Fjavafx%2Fapi%2Fjavafx%2Fscene%2Fcontrol%2FTableView.html?w=100\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">TableView (JavaFX 8)<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>&nbsp;<\/p>\n<p>\u4eca\u56de\u306e\u65b9\u6cd5\u3092\u4f7f\u3048\u3070\u3001\u4f8b\u3048\u3070csv\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u5148\u982d\u306e\u9805\u76ee\u884c\u304b\u3089TableView\u306e\u5217\u3092\u751f\u6210\u3057\u3066\uff12\u884c\u76ee\u4ee5\u4e0b\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3080\u3001\u3068\u3044\u3046\u65b9\u6cd5\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">[ad#ad-1]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u524d\u3001JavaFX\u306eTableVeiw\u306e\u4f7f\u3044\u65b9\u306b\u3064\u3044\u3066\u66f8\u304d\u307e\u3057\u305f\u304c\u3001\u3053\u306e\u65b9\u6cd5\u306e\u554f &#8230; <\/p>\n","protected":false},"author":1,"featured_media":6297,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-6285","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/posts\/6285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/comments?post=6285"}],"version-history":[{"count":8,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/posts\/6285\/revisions"}],"predecessor-version":[{"id":6298,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/posts\/6285\/revisions\/6298"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/media\/6297"}],"wp:attachment":[{"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/media?parent=6285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/categories?post=6285"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pineplanter.moo.jp\/non-it-salaryman\/wp-json\/wp\/v2\/tags?post=6285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}