2015-01-23 3 views

ответ

2

Как вы можете видеть here, кажется, что ControlsFX и Scene Builder не играют хорошо вместе (пока).

Все, что мне удалось интегрировать, было всего лишь SpreadsheetView в файле FXML, больше похоже на местозаполнитель для элемента управления, поскольку мы не можем добавить объект GridBase.

<?xml version="1.0" encoding="UTF-8"?> 

<?import org.controlsfx.control.*?> 
<?import org.controlsfx.control.spreadsheet.*?> 
<?import java.lang.*?> 
<?import javafx.scene.layout.*?> 


<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller"> 
    <children> 
     <SpreadsheetView fx:id="spreadsheet" editable="true" showRowHeader="true" showColumnHeader="true" prefHeight="300.0" prefWidth="400.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"/> 
    </children> 
</AnchorPane> 

А потом, в Controller:

@FXML private SpreadsheetView spreadsheet; 
/** 
* Initializes the controller class. 
* @param url 
* @param rb 
*/ 
@Override 
public void initialize(URL url, ResourceBundle rb) { 
    int rowCount = 5; 
    int columnCount = 3; 
    GridBase grid = new GridBase(rowCount, columnCount); 

    ObservableList<ObservableList<SpreadsheetCell>> rows = FXCollections.observableArrayList(); 
    for (int row = 0; row < grid.getRowCount(); ++row) { 
     final ObservableList<SpreadsheetCell> list = FXCollections.observableArrayList(); 
     for (int column = 0; column < grid.getColumnCount(); ++column) { 
      list.add(SpreadsheetCellType.STRING.createCell(row, column, 1, 1,"value")); 
     } 
     rows.add(list); 
    } 
    grid.setRows(rows); 
    spreadsheet.setGrid(grid); 
} 
+0

Просто нужно было время, чтобы попробовать, его отлично! – BaronVonBullshitRidesAgain

 Смежные вопросы

  • Нет связанных вопросов^_^