In main.java
package application;
import org.controlsfx.control.spreadsheet.GridBase;
import org.controlsfx.control.spreadsheet.SpreadsheetCell;
import org.controlsfx.control.spreadsheet.SpreadsheetCellType;
import org.controlsfx.control.spreadsheet.SpreadsheetView;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
// I create a sample grid
int rowCount = 100;
int columnCount = 40;
GridBase grid = new GridBase(rowCount, columnCount);
ObservableList<ObservableList<SpreadsheetCell>> rows = FXCollections.observableArrayList();
// header row
final ObservableList<SpreadsheetCell> listh1 = FXCollections.observableArrayList();
final ObservableList<SpreadsheetCell> listh2 = FXCollections.observableArrayList();
// add first column value
int rowIndex = 0;
listh1.add(SpreadsheetCellType.STRING.createCell(rowIndex++, 0, 1, 1, "en tete 1"));
listh2.add(SpreadsheetCellType.STRING.createCell(rowIndex++, 0, 1, 1, "en tete 1"));
for (int column = 1; column < grid.getColumnCount(); column++) {
listh1.add(SpreadsheetCellType.STRING.createCell(rowIndex, column, 1, 1, ""));
listh2.add(SpreadsheetCellType.STRING.createCell(rowIndex, column, 1, 1, ""));
}
rows.add(listh1);
rows.add(listh2);
for (int row = 0; row < 1; row++) {
final ObservableList<SpreadsheetCell> list = FXCollections.observableArrayList();
list.add(SpreadsheetCellType.STRING.createCell(rowIndex, 0, 1, 1,
"+Categorie lhkkj:h:jhn:ljkn:kj,kkljklj!kjk:!kmkmlkk:!k:klkljjklj:" + rowIndex));
for (int column = 1; column < grid.getColumnCount(); column++) {
// System.out.println(column);
list.add(SpreadsheetCellType.STRING.createCell(rowIndex, column, 1, 1, ""));
}
rows.add(list);
for (int k = 0; k < 5; k++) {
rowIndex++;
final ObservableList<SpreadsheetCell> list2 = FXCollections.observableArrayList();
list2.add(SpreadsheetCellType.STRING.createCell(rowIndex, 0, 1, 1, " -Sous Categorie"));
for (int column = 1; column < grid.getColumnCount(); column++) {
SpreadsheetCell cell = SpreadsheetCellType.INTEGER.createCell(rowIndex, column, 1, 1, 1);
cell.getStyleClass().add("childCatValue");
list2.add(SpreadsheetCellType.INTEGER.createCell(rowIndex, column, 1, 1, 1));
}
rows.add(list2);
}
rowIndex++;
}
grid.setRows(rows);
SpreadsheetView spv = new SpreadsheetView(grid);
spv.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
spv.getFixedRows().addAll(0, 1);
spv.getColumns().get(0).setFixed(true);
//spv.setEditable(false);
spv.setShowRowHeader(false);
spv.setShowColumnHeader(false);
AnchorPane root = new AnchorPane();
spv.prefHeightProperty().bind(root.heightProperty());
spv.prefWidthProperty().bind(root.widthProperty());
root.getChildren().add(spv);
Scene scene = new Scene(root, 400, 400);
//scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
and file css :
.table-view{
-fx-background-color: black;
}
.spreadsheet-cell.childCatValue:filled:selected ,
.spreadsheet-cell.childCatValue:filled:focused:selected,
.spreadsheet-cell.childCatValue:filled:focused:selected:hover {
-fx-border-color: #8cb1ff;
}
On Monday, October 30, 2017 at 5:32:06 PM UTC, ettien koua wrote:
Ok