Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private TableView<ProRutasE> tablaPrincipal = new TableView<>();
- ObservableList<ProRutasE> tablaProRutasE;
- private ColumnaRutas _ColRutas;
- @Override
- public void start(Stage stage) {
- Scene scene = new Scene(new Group());
- stage.setTitle("Table View ");
- stage.setWidth(1050);
- stage.setHeight(650);
- final Label label = new Label("Programacion Rutas");
- label.setFont(new Font("Calibri", 20));
- tablaPrincipal.setEditable(true);
- TableColumn noGuia = new TableColumn("No. de Guía");
- noGuia.setCellValueFactory(new PropertyValueFactory<>("noGuia"));
- noGuia.setStyle("-fx-alignment:center;");
- noGuia.setMinWidth(150);
- TableColumn dirDestino = new TableColumn("Direccion de Destino");
- dirDestino.setCellValueFactory(new PropertyValueFactory<>("dirDestino"));
- dirDestino.setStyle("-fx-alignment:center;");
- dirDestino.setMinWidth(200);
- TableColumn nomDestino = new TableColumn("Nombre del Destino");
- nomDestino.setCellValueFactory(new PropertyValueFactory<>("nomDestino"));
- nomDestino.setStyle("-fx-alignment:center;");
- nomDestino.setMinWidth(200);
- //creamos la columna a editar
- _ColRutas = new ColumnaRutas();
- _ColRutas.setMinWidth(150);
- //las demas columnas
- TableColumn nomRuta = new TableColumn("Nombre de la Ruta");
- nomRuta.setCellValueFactory(new PropertyValueFactory<>("nomRuta"));
- nomRuta.setStyle("-fx-alignment:center;");
- nomRuta.setMinWidth(200);
- TableColumn pesoRuta = new TableColumn("Peso");
- pesoRuta.setCellValueFactory(new PropertyValueFactory<>("peso"));
- pesoRuta.setStyle("-fx-alignment:center;");
- pesoRuta.setMinWidth(100);
- tablaPrincipal.setPrefSize(1000, 500);
- tablaPrincipal.getColumns().addAll(noGuia, dirDestino, nomDestino, _ColRutas, nomRuta, pesoRuta);
- tablaPrincipal.getItems().addAll(new ProRutasE("1", "Dir", "Destino 1", "R1", "Centro", "10.1"), new ProRutasE("2", "Dir", "Destino 2", "R2", "Centro", "10.1"), new ProRutasE("3", "Dir", "Destino 3", "R3", "Centro", "10.1"));
- final VBox vbox = new VBox();
- vbox.setSpacing(5);
- vbox.setPadding(new Insets(10, 0, 0, 10));
- vbox.getChildren().addAll(label, tablaPrincipal);
- ((Group) scene.getRoot()).getChildren().addAll(vbox);
- stage.setScene(scene);
- stage.show();
- }
- private class ColumnaRutas extends TableColumn<ProRutasE, String> {
- public ColumnaRutas() {
- super("Ruta");
- super.setStyle("-fx-alignment:center;");
- super.setPrefWidth(80);
- super.setSortable(false);
- super.setCellValueFactory(new PropertyValueFactory<ProRutasE, String>("ruta"));
- super.setCellFactory(new Callback<TableColumn<ProRutasE, String>, TableCell<ProRutasE, String>>() {
- @Override
- public TableCell<ProRutasE, String> call(TableColumn<ProRutasE, String> param) {
- return new CeldaEditableRutas();
- }
- });
- super.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<ProRutasE, String>>() {
- @Override
- public void handle(TableColumn.CellEditEvent<ProRutasE, String> t) {
- ((ProRutasE) t.getTableView().getItems()
- .get(t.getTablePosition().getRow())).setnoGuia(t
- .getNewValue());
- }
- });
- }
- private class CeldaEditableRutas extends TableCell<ProRutasE, String> {
- private CustomField textField;
- public CeldaEditableRutas() {
- }
- @Override
- public void startEdit() {
- if (!isEmpty()) {
- super.startEdit();
- createTextField();
- setText(null);
- setGraphic(textField);
- Platform.runLater(new Runnable() {
- @Override
- public void run() {
- textField.requestFocus();
- textField.selectAll();
- }
- });
- }
- }
- @Override
- public void cancelEdit() {
- super.cancelEdit();
- setText(getString());
- setGraphic(null);
- }
- @Override
- public void updateItem(String item, boolean empty) {
- super.updateItem(item, empty);
- if (empty) {
- setText(null);
- setGraphic(null);
- } else if (isEditing()) {
- if (textField != null) {
- textField.setText(getString());
- }
- setText(null);
- setGraphic(textField);
- } else {
- setText(getString());
- setGraphic(null);
- }
- }
- private void createTextField() {
- textField = new CustomField(getString());
- textField.setColorNormal("#3BAAE3");
- textField.setFormatoCampo(CustomField.FormatoTexto.ALFANUMERICO);
- textField.setMensajeAlerta("Solo valores Alfanumericos");
- textField.setMinWidth(this.getWidth() - this.getGraphicTextGap() * 2);
- textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
- @Override
- public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
- if (!newValue) {
- editarRuta();
- }
- }
- });
- textField.setOnKeyPressed(new EventHandler<KeyEvent>() {
- @Override
- public void handle(KeyEvent t) {
- if (null != t.getCode()) {
- switch (t.getCode()) {
- case ENTER:
- System.out.println("a presionado enter");
- editarRuta();
- break;
- case ESCAPE:
- cancelEdit();
- //getTableView().edit(getTableRow().getIndex(),_ColRutas);
- break;
- case TAB:
- getTableView().getSelectionModel().selectNext();
- getTableView().edit(getTableRow().getIndex(), _ColRutas);
- getTableView().getFocusModel().focus(getIndex() - 1);
- getTableView().getSelectionModel().select(getIndex() - 1);
- getTableView().getSelectionModel().selectPrevious();
- break;
- case DOWN:
- getTableView().getSelectionModel().selectNext();
- default:
- break;
- }
- }
- }
- });
- }
- private void editarRuta() {
- System.out.println("metodo de editar rutas");
- }
- private String getString() {
- return getItem() == null ? "" : getItem().toString();
- }
- }
- }
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- launch(args);
- }
Add Comment
Please, Sign In to add comment