🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1966閲覧

JAVAFX 表の作成

LEO_

総合スコア6

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2020/03/18 06:04

前提・実現したいこと

Java FX を使って単純な表を作りたかったのですが、コンパイルはできてるんですがGUIが作動しないのです。

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージは出ませんでした

エラーメッセージ

該当のソースコード

package propertydatamanager;

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class PropertyDataManager extends Application{

private TableView<Database> table = new TableView<Database>(); private final ObservableList<Database> database = FXCollections.observableArrayList( new Database("a", "b","c", "e","f","g")); public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { Scene scene = new Scene(new Group()); stage.setTitle("Edmonton Property Data"); stage.setWidth(1080); stage.setHeight(720); final Label label = new Label("Edmonton Property"); label.setFont(new Font("Arial", 20)); table.setEditable(true); TableColumn a_numCol = new TableColumn("Account number"); a_numCol.setMinWidth(200); a_numCol.setCellFactory(new PropertyValueFactory<Database, String>("a_num")); TableColumn a_valueCol = new TableColumn("Assessed Value"); a_valueCol.setMinWidth(200); a_valueCol.setCellFactory(new PropertyValueFactory<Database, String>("a_value")); TableColumn a_classCol = new TableColumn("Assessment Class"); a_classCol.setMinWidth(200); a_classCol.setCellFactory(new PropertyValueFactory<Database, String>("a_class")); TableColumn neighbourCol = new TableColumn("Neighbourhood"); neighbourCol.setMinWidth(200); neighbourCol.setCellFactory(new PropertyValueFactory<Database, String>("neighbourhood")); TableColumn latitudeCol = new TableColumn("Latitude"); latitudeCol.setMinWidth(200); latitudeCol.setCellFactory(new PropertyValueFactory<Database, String>("latitude")); TableColumn longitudeCol = new TableColumn("Longitude"); longitudeCol.setMinWidth(200); longitudeCol.setCellFactory(new PropertyValueFactory<Database, String>("longitude")); table.setItems(database); table.getColumns().addAll(a_numCol, a_valueCol, a_classCol, neighbourCol, latitudeCol, longitudeCol); final VBox vbox = new VBox(); vbox.setSpacing(10); vbox.setPadding(new Insets(10,0,0,10)); vbox.getChildren().addAll(label, table); ((Group)scene.getRoot()).getChildren().addAll(vbox); stage.setScene(scene); stage.show(); } public static class Database{ private final SimpleStringProperty a_num; private final SimpleStringProperty a_value; private final SimpleStringProperty a_class; private final SimpleStringProperty neighbour; private final SimpleStringProperty latitude; private final SimpleStringProperty longitude; private Database(String anum, String avalue, String aclass, String neighbou, String latitud, String longitud){ this.a_num = new SimpleStringProperty(anum); this.a_value = new SimpleStringProperty(avalue); this.a_class = new SimpleStringProperty(aclass); this.neighbour = new SimpleStringProperty(neighbou); this.latitude = new SimpleStringProperty(latitud); this.longitude = new SimpleStringProperty(longitud); } public String getA_num(){ return a_num.get(); } public void setA_num(String aNum){ a_num.set(aNum); } public String getA_value(){ return a_value.get(); } public void setA_value(String aValue){ a_value.set(aValue); } public String getA_class(){ return a_class.get(); } public void setA_class(String aClass){ a_class.set(aClass); } public String getNeighbour(){ return neighbour.get(); } public void setNeighbour(String neigh){ neighbour.set(neigh); } public String getLatitude(){ return latitude.get(); } public void setLatitude(String lati){ latitude.set(lati); } public String getLongitude(){ return longitude.get(); } public void setLongitude(String longt){ longitude.set(longt); } }

}
Java ここに言語名を入力
ソースコード

### 試したこと 解決方法が思い浮かびませんでした下記のサイトに準じて作って、このサイトのコードをコピペした時はキチンと動いたのですが自分のコードでは動きません。 https://docs.oracle.com/javafx/2/ui_controls/table-view.htm 使ってるのはNetbeansです ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

エラーメッセージは出ませんでした

がっつりでますけど。

Caused by: java.lang.ClassCastException:  javafx.scene.control.TableColumn   cannot be cast to    javafx.scene.control.TableColumn$CellDataFeatures

typoでしょうね。

これを参考にしました 13 表ビュー

diff

1diff --git a/src/main/java/propertydatamanager/PropertyDataManager.java b/src/main/java/propertydatamanager/PropertyDataManager.java 2index c2df756..826cd7a 100644 3--- a/src/main/java/propertydatamanager/PropertyDataManager.java 4+++ b/src/main/java/propertydatamanager/PropertyDataManager.java 5@@ -41,27 +41,27 @@ public class PropertyDataManager extends Application{ 6 7 TableColumn a_numCol = new TableColumn("Account number"); 8 a_numCol.setMinWidth(200); 9- a_numCol.setCellFactory(new PropertyValueFactory<Database, String>("a_num")); 10+ a_numCol.setCellValueFactory(new PropertyValueFactory<Database, String>("a_num")); 11 12 TableColumn a_valueCol = new TableColumn("Assessed Value"); 13 a_valueCol.setMinWidth(200); 14- a_valueCol.setCellFactory(new PropertyValueFactory<Database, String>("a_value")); 15+ a_valueCol.setCellValueFactory(new PropertyValueFactory<Database, String>("a_value")); 16 17 TableColumn a_classCol = new TableColumn("Assessment Class"); 18 a_classCol.setMinWidth(200); 19- a_classCol.setCellFactory(new PropertyValueFactory<Database, String>("a_class")); 20+ a_classCol.setCellValueFactory(new PropertyValueFactory<Database, String>("a_class")); 21 22 TableColumn neighbourCol = new TableColumn("Neighbourhood"); 23 neighbourCol.setMinWidth(200); 24- neighbourCol.setCellFactory(new PropertyValueFactory<Database, String>("neighbourhood")); 25+ neighbourCol.setCellValueFactory(new PropertyValueFactory<Database, String>("neighbourhood")); 26 27 TableColumn latitudeCol = new TableColumn("Latitude"); 28 latitudeCol.setMinWidth(200); 29- latitudeCol.setCellFactory(new PropertyValueFactory<Database, String>("latitude")); 30+ latitudeCol.setCellValueFactory(new PropertyValueFactory<Database, String>("latitude")); 31 32 TableColumn longitudeCol = new TableColumn("Longitude"); 33 longitudeCol.setMinWidth(200); 34- longitudeCol.setCellFactory(new PropertyValueFactory<Database, String>("longitude")); 35+ longitudeCol.setCellValueFactory(new PropertyValueFactory<Database, String>("longitude")); 36 37 table.setItems(database); 38 table.getColumns().addAll(a_numCol, a_valueCol, a_classCol, neighbourCol, latitudeCol, longitudeCol); 39

投稿2020/03/18 12:07

編集2020/03/18 12:11
shiketa

総合スコア4054

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LEO_

2020/03/18 19:07

ありがとうございます!解決いたしました。 コンパイル成功したと出ていたのでてっきりエラーが無いものと勘違いしていました。 お手数おかけいたしました。本当にありがとうございます
guest

0

エラー文から原因が全くわかりませんね^^;

setCellFactory

setCellValueFactory

neighbourhood

neighbour

投稿2020/03/18 11:53

TN8001

総合スコア9855

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もう一度コピペして動作することを確認してから, ご自身のコードを少しずつ付け足して改造する感じにしては如何でしょう.
その過程で動かなくなることがあれば, それが原因となります.

投稿2020/03/18 10:25

jimbe

総合スコア13201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問