{"id":1032,"date":"2015-10-16T16:47:27","date_gmt":"2015-10-16T08:47:27","guid":{"rendered":"http:\/\/blog.amjet.biz\/IT\/?p=1032"},"modified":"2015-10-19T11:14:01","modified_gmt":"2015-10-19T03:14:01","slug":"javafx-8-tableview-tips","status":"publish","type":"post","link":"https:\/\/blog.amjet.biz\/IT\/?p=1032","title":{"rendered":"JavaFX 8 TableView tips"},"content":{"rendered":"<p><strong>TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe<\/strong><\/p>\n<p>\u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86<\/p>\n<p><strong>\u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a<\/strong><\/p>\n<p>\u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef<\/p>\n<p><strong>\u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272<\/strong><\/p>\n<p>mytable.setRowFactory(myRowFactory());<\/p>\n<p>private Callback myRowFactory() {<br \/>\nreturn new Callback&lt;TableView&lt;MyModel&gt;,TableRow&lt;MyModel&gt;&gt;() {<br \/>\npublic TableRow&lt;MyModel&gt; call(TableView&lt;MyModel&gt; tv) {<br \/>\nfinal TableRow&lt;MyModel&gt; row=new TableRow&lt;MyModel&gt;() {<br \/>\n@Override<br \/>\nprotected void updateItem(MyModel model, boolean empty) {<br \/>\nsuper.updateItem(model, empty);<br \/>\nif ( ! isWantedModel(model) ) {<br \/>\ngetStyleClass().removeAll(Collections.singleton(&#8220;myModelCSS&#8221;));<br \/>\n} else {<br \/>\ngetStyleClass().add(&#8220;myModelCSS&#8221;);<br \/>\n}<br \/>\n}<br \/>\n};<br \/>\nreturn row;<br \/>\n}<br \/>\n};<br \/>\n}<\/p>\n<p>[ratings]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback&lt;TableView&lt;MyModel&gt;,TableRow&lt;MyModel&gt;&gt;() { public TableRow&lt;MyModel&gt; call(TableView&lt;MyModel&gt; tv) { final TableRow&lt;MyModel&gt; row=new TableRow&lt;MyModel&gt;() { @Override protected void updateItem(MyModel model, boolean [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[142],"class_list":["post-1032","post","type-post","status-publish","format-standard","hentry","category-java","tag-javafx-java"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"vincent\"\/>\n\t<meta name=\"keywords\" content=\"javafx java\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/blog.amjet.biz\/IT\/?p=1032\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"AmJet IT Blog | for IT professionals\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"JavaFX 8 TableView tips | AmJet IT Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/blog.amjet.biz\/IT\/?p=1032\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2015-10-16T08:47:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2015-10-19T03:14:01+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"JavaFX 8 TableView tips | AmJet IT Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#article\",\"name\":\"JavaFX 8 TableView tips | AmJet IT Blog\",\"headline\":\"JavaFX 8 TableView tips\",\"author\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?author=2#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/#organization\"},\"datePublished\":\"2015-10-16T16:47:27+08:00\",\"dateModified\":\"2015-10-19T11:14:01+08:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#webpage\"},\"articleSection\":\"Java, JavaFX Java\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=5#listItem\",\"name\":\"Developer\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=5#listItem\",\"position\":2,\"name\":\"Developer\",\"item\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=5\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=8#listItem\",\"name\":\"Java\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=8#listItem\",\"position\":3,\"name\":\"Java\",\"item\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=8\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#listItem\",\"name\":\"JavaFX 8 TableView tips\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=5#listItem\",\"name\":\"Developer\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#listItem\",\"position\":4,\"name\":\"JavaFX 8 TableView tips\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?cat=8#listItem\",\"name\":\"Java\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/#organization\",\"name\":\"AmJet Digital\",\"description\":\"for IT professionals\",\"url\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?author=2#author\",\"url\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?author=2\",\"name\":\"vincent\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c6bcd6e8e7e1c9bce74184354da4a5c294d71657c7abc161841c4799d1b1a46?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"vincent\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#webpage\",\"url\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032\",\"name\":\"JavaFX 8 TableView tips | AmJet IT Blog\",\"description\":\"TableView \\u7684\\u6700\\u5f8c\\u4e00\\u5217\\u6c92\\u6709\\u51fa\\u73fe \\u7528 SceneBuilder \\u4fee\\u6539 TableView -> Layout -> Pref Height\\uff0c\\u76ee\\u524d\\u9047\\u904e\\u9019\\u500b\\u6578\\u5b57\\u8a2d\\u5927\\u65bc container \\u5143\\u4ef6\\u7684 height\\uff0c\\u7d50\\u679c\\u6700\\u5f8c\\u4e00\\u5217\\u7121\\u6cd5 render \\u51fa\\u4f86 \\u8cc7\\u6599\\u52a0\\u9032 TableView \\u7684 ObservableList \\u4f46\\u662f\\u756b\\u9762\\u6c92\\u6709\\u986f\\u793a \\u4e4b\\u524d\\u7684\\u7248\\u672c\\u597d\\u50cf\\u8981\\u7528 workaround \\u4f86\\u89e3\\u6c7a\\uff0c\\u73fe\\u5728\\u7528 TableView \\u7684 refresh() method \\u5373\\u53ef \\u8b8a\\u66f4\\u8cc7\\u6599\\u5217\\u7684\\u984f\\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?p=1032#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?author=2#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/?author=2#author\"},\"datePublished\":\"2015-10-16T16:47:27+08:00\",\"dateModified\":\"2015-10-19T11:14:01+08:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/#website\",\"url\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/\",\"name\":\"AmJet IT Blog\",\"description\":\"for IT professionals\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.amjet.biz\\\/IT\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"JavaFX 8 TableView tips | AmJet IT Blog","description":"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -> Layout -> Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean","canonical_url":"https:\/\/blog.amjet.biz\/IT\/?p=1032","robots":"max-image-preview:large","keywords":"javafx java","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#article","name":"JavaFX 8 TableView tips | AmJet IT Blog","headline":"JavaFX 8 TableView tips","author":{"@id":"https:\/\/blog.amjet.biz\/IT\/?author=2#author"},"publisher":{"@id":"https:\/\/blog.amjet.biz\/IT\/#organization"},"datePublished":"2015-10-16T16:47:27+08:00","dateModified":"2015-10-19T11:14:01+08:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#webpage"},"isPartOf":{"@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#webpage"},"articleSection":"Java, JavaFX Java"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT#listItem","position":1,"name":"Home","item":"https:\/\/blog.amjet.biz\/IT","nextItem":{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?cat=5#listItem","name":"Developer"}},{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?cat=5#listItem","position":2,"name":"Developer","item":"https:\/\/blog.amjet.biz\/IT\/?cat=5","nextItem":{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?cat=8#listItem","name":"Java"},"previousItem":{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?cat=8#listItem","position":3,"name":"Java","item":"https:\/\/blog.amjet.biz\/IT\/?cat=8","nextItem":{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#listItem","name":"JavaFX 8 TableView tips"},"previousItem":{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?cat=5#listItem","name":"Developer"}},{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#listItem","position":4,"name":"JavaFX 8 TableView tips","previousItem":{"@type":"ListItem","@id":"https:\/\/blog.amjet.biz\/IT\/?cat=8#listItem","name":"Java"}}]},{"@type":"Organization","@id":"https:\/\/blog.amjet.biz\/IT\/#organization","name":"AmJet Digital","description":"for IT professionals","url":"https:\/\/blog.amjet.biz\/IT\/"},{"@type":"Person","@id":"https:\/\/blog.amjet.biz\/IT\/?author=2#author","url":"https:\/\/blog.amjet.biz\/IT\/?author=2","name":"vincent","image":{"@type":"ImageObject","@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/8c6bcd6e8e7e1c9bce74184354da4a5c294d71657c7abc161841c4799d1b1a46?s=96&d=mm&r=g","width":96,"height":96,"caption":"vincent"}},{"@type":"WebPage","@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#webpage","url":"https:\/\/blog.amjet.biz\/IT\/?p=1032","name":"JavaFX 8 TableView tips | AmJet IT Blog","description":"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -> Layout -> Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/blog.amjet.biz\/IT\/#website"},"breadcrumb":{"@id":"https:\/\/blog.amjet.biz\/IT\/?p=1032#breadcrumblist"},"author":{"@id":"https:\/\/blog.amjet.biz\/IT\/?author=2#author"},"creator":{"@id":"https:\/\/blog.amjet.biz\/IT\/?author=2#author"},"datePublished":"2015-10-16T16:47:27+08:00","dateModified":"2015-10-19T11:14:01+08:00"},{"@type":"WebSite","@id":"https:\/\/blog.amjet.biz\/IT\/#website","url":"https:\/\/blog.amjet.biz\/IT\/","name":"AmJet IT Blog","description":"for IT professionals","inLanguage":"en-US","publisher":{"@id":"https:\/\/blog.amjet.biz\/IT\/#organization"}}]},"og:locale":"en_US","og:site_name":"AmJet IT Blog | for IT professionals","og:type":"article","og:title":"JavaFX 8 TableView tips | AmJet IT Blog","og:description":"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean","og:url":"https:\/\/blog.amjet.biz\/IT\/?p=1032","article:published_time":"2015-10-16T08:47:27+00:00","article:modified_time":"2015-10-19T03:14:01+00:00","twitter:card":"summary","twitter:title":"JavaFX 8 TableView tips | AmJet IT Blog","twitter:description":"TableView \u7684\u6700\u5f8c\u4e00\u5217\u6c92\u6709\u51fa\u73fe \u7528 SceneBuilder \u4fee\u6539 TableView -&gt; Layout -&gt; Pref Height\uff0c\u76ee\u524d\u9047\u904e\u9019\u500b\u6578\u5b57\u8a2d\u5927\u65bc container \u5143\u4ef6\u7684 height\uff0c\u7d50\u679c\u6700\u5f8c\u4e00\u5217\u7121\u6cd5 render \u51fa\u4f86 \u8cc7\u6599\u52a0\u9032 TableView \u7684 ObservableList \u4f46\u662f\u756b\u9762\u6c92\u6709\u986f\u793a \u4e4b\u524d\u7684\u7248\u672c\u597d\u50cf\u8981\u7528 workaround \u4f86\u89e3\u6c7a\uff0c\u73fe\u5728\u7528 TableView \u7684 refresh() method \u5373\u53ef \u8b8a\u66f4\u8cc7\u6599\u5217\u7684\u984f\u8272 mytable.setRowFactory(myRowFactory()); private Callback myRowFactory() { return new Callback() { public TableRow call(TableView tv) { final TableRow row=new TableRow() { @Override protected void updateItem(MyModel model, boolean"},"aioseo_meta_data":{"post_id":"1032","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-23 23:27:41","updated":"2025-06-05 09:41:08","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/blog.amjet.biz\/IT\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/blog.amjet.biz\/IT\/?cat=5\" title=\"Developer\">Developer<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/blog.amjet.biz\/IT\/?cat=8\" title=\"Java\">Java<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tJavaFX 8 TableView tips\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/blog.amjet.biz\/IT"},{"label":"Developer","link":"https:\/\/blog.amjet.biz\/IT\/?cat=5"},{"label":"Java","link":"https:\/\/blog.amjet.biz\/IT\/?cat=8"},{"label":"JavaFX 8 TableView tips","link":"https:\/\/blog.amjet.biz\/IT\/?p=1032"}],"_links":{"self":[{"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=\/wp\/v2\/posts\/1032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1032"}],"version-history":[{"count":3,"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=\/wp\/v2\/posts\/1032\/revisions"}],"predecessor-version":[{"id":1036,"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=\/wp\/v2\/posts\/1032\/revisions\/1036"}],"wp:attachment":[{"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.amjet.biz\/IT\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}