4
我有以下代碼。當我嘗試運行時,表格不會在GUI上顯示記錄。你能建議嗎?javaFX 2.2 - 無法從控制器填充表格
fxml_tableview.fxml - 描述表結構的fxml。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.collections.*?>
<?import javafx.geometry.Insets?>
<?import java.lang.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.control.cell.*?>
<?import javafx.scene.layout.*?>
<?import fxmltableview.*?>
<Scene width="400" height="550" fx:controller="fxmltableview.FXMLTableViewController"
xmlns:fx="http://javafx.com/fxml">
<GridPane alignment="center" hgap="10" vgap="10">
<TableView fx:id="tableView" GridPane.columnIndex="0" GridPane.rowIndex="1">
<columns>
<TableColumn fx:id="tradeId" text="Trade ID" prefWidth="200"/>
</columns>
</TableView>
</GridPane>
</Scene>
FXMLTableViewController.java //控制器在那裏我試圖填充表列。
package fxmltableview;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableView;
public class FXMLTableViewController implements Initializable{
@FXML private TableView<Trade> tableView;
ObservableList<Trade> data = FXCollections.observableArrayList(new Trade("1"));
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
tableView.setItems (data);
}
}
FXMLTableView.java //主要的Java類
package fxmltableview;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class FXMLTableView extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("FXML TableView Example");
primaryStage.setScene((Scene)FXMLLoader.load(getClass().getResource("fxml_tableview.fxml")));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Trade.java //數據模型表
package fxmltableview;
import javafx.beans.property.SimpleStringProperty;
public class Trade {
private SimpleStringProperty tradeId = new SimpleStringProperty("");
public Trade(String tradeId) {
setTradeId(tradeId);
}
public String getTradeId() {
return tradeId.get();
}
public void setTradeId(String a) {
tradeId.set(a);
}
}
非常感謝Uluk BIY對你的幫助。有效。 –
可以幫助我解決這個問題http://stackoverflow.com/questions/16463931/javafx-tableview-is-empty? –