daily pastebin goal
37%
SHARE
TWEET

Untitled

a guest Apr 16th, 2018 44 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private TableView<ProRutasE> tablaPrincipal = new TableView<>();
  2. ObservableList<ProRutasE> tablaProRutasE;
  3. private ColumnaRutas _ColRutas;
  4.  
  5. @Override
  6. public void start(Stage stage) {
  7.  
  8.     Scene scene = new Scene(new Group());
  9.     stage.setTitle("Table View ");
  10.     stage.setWidth(1050);
  11.     stage.setHeight(650);
  12.  
  13.     final Label label = new Label("Programacion Rutas");
  14.     label.setFont(new Font("Calibri", 20));
  15.  
  16.     tablaPrincipal.setEditable(true);
  17.  
  18.     TableColumn noGuia = new TableColumn("No. de Guía");
  19.     noGuia.setCellValueFactory(new PropertyValueFactory<>("noGuia"));
  20.     noGuia.setStyle("-fx-alignment:center;");
  21.     noGuia.setMinWidth(150);
  22.  
  23.     TableColumn dirDestino = new TableColumn("Direccion de Destino");
  24.     dirDestino.setCellValueFactory(new PropertyValueFactory<>("dirDestino"));
  25.     dirDestino.setStyle("-fx-alignment:center;");
  26.     dirDestino.setMinWidth(200);
  27.  
  28.     TableColumn nomDestino = new TableColumn("Nombre del Destino");
  29.     nomDestino.setCellValueFactory(new PropertyValueFactory<>("nomDestino"));
  30.     nomDestino.setStyle("-fx-alignment:center;");
  31.     nomDestino.setMinWidth(200);
  32.     //creamos la columna a editar
  33.     _ColRutas = new ColumnaRutas();
  34.     _ColRutas.setMinWidth(150);
  35.  
  36.     //las demas columnas
  37.     TableColumn nomRuta = new TableColumn("Nombre de la Ruta");
  38.     nomRuta.setCellValueFactory(new PropertyValueFactory<>("nomRuta"));
  39.     nomRuta.setStyle("-fx-alignment:center;");
  40.     nomRuta.setMinWidth(200);
  41.  
  42.     TableColumn pesoRuta = new TableColumn("Peso");
  43.     pesoRuta.setCellValueFactory(new PropertyValueFactory<>("peso"));
  44.     pesoRuta.setStyle("-fx-alignment:center;");
  45.     pesoRuta.setMinWidth(100);
  46.     tablaPrincipal.setPrefSize(1000, 500);
  47.     tablaPrincipal.getColumns().addAll(noGuia, dirDestino, nomDestino, _ColRutas, nomRuta, pesoRuta);
  48.  
  49.     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"));
  50.     final VBox vbox = new VBox();
  51.     vbox.setSpacing(5);
  52.     vbox.setPadding(new Insets(10, 0, 0, 10));
  53.     vbox.getChildren().addAll(label, tablaPrincipal);
  54.  
  55.     ((Group) scene.getRoot()).getChildren().addAll(vbox);
  56.  
  57.     stage.setScene(scene);
  58.     stage.show();
  59. }
  60.  
  61. private class ColumnaRutas extends TableColumn<ProRutasE, String> {
  62.  
  63.     public ColumnaRutas() {
  64.         super("Ruta");
  65.         super.setStyle("-fx-alignment:center;");
  66.         super.setPrefWidth(80);
  67.         super.setSortable(false);
  68.         super.setCellValueFactory(new PropertyValueFactory<ProRutasE, String>("ruta"));
  69.         super.setCellFactory(new Callback<TableColumn<ProRutasE, String>, TableCell<ProRutasE, String>>() {
  70.             @Override
  71.             public TableCell<ProRutasE, String> call(TableColumn<ProRutasE, String> param) {
  72.                 return new CeldaEditableRutas();
  73.             }
  74.         });
  75.         super.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<ProRutasE, String>>() {
  76.             @Override
  77.             public void handle(TableColumn.CellEditEvent<ProRutasE, String> t) {
  78.                 ((ProRutasE) t.getTableView().getItems()
  79.                         .get(t.getTablePosition().getRow())).setnoGuia(t
  80.                         .getNewValue());
  81.             }
  82.         });
  83.     }
  84.  
  85.     private class CeldaEditableRutas extends TableCell<ProRutasE, String> {
  86.  
  87.         private CustomField textField;
  88.  
  89.         public CeldaEditableRutas() {
  90.         }
  91.  
  92.         @Override
  93.         public void startEdit() {
  94.             if (!isEmpty()) {
  95.                 super.startEdit();
  96.                 createTextField();
  97.                 setText(null);
  98.                 setGraphic(textField);
  99.                 Platform.runLater(new Runnable() {
  100.                     @Override
  101.                     public void run() {
  102.                         textField.requestFocus();
  103.                         textField.selectAll();
  104.                     }
  105.                 });
  106.             }
  107.         }
  108.  
  109.         @Override
  110.         public void cancelEdit() {
  111.             super.cancelEdit();
  112.             setText(getString());
  113.             setGraphic(null);
  114.  
  115.         }
  116.  
  117.         @Override
  118.         public void updateItem(String item, boolean empty) {
  119.             super.updateItem(item, empty);
  120.  
  121.             if (empty) {
  122.                 setText(null);
  123.                 setGraphic(null);
  124.             } else if (isEditing()) {
  125.                 if (textField != null) {
  126.                     textField.setText(getString());
  127.                 }
  128.                 setText(null);
  129.                 setGraphic(textField);
  130.             } else {
  131.                 setText(getString());
  132.                 setGraphic(null);
  133.             }
  134.         }
  135.  
  136.         private void createTextField() {
  137.             textField = new CustomField(getString());
  138.             textField.setColorNormal("#3BAAE3");
  139.             textField.setFormatoCampo(CustomField.FormatoTexto.ALFANUMERICO);
  140.             textField.setMensajeAlerta("Solo valores Alfanumericos");
  141.             textField.setMinWidth(this.getWidth() - this.getGraphicTextGap() * 2);
  142.  
  143.             textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
  144.                 @Override
  145.                 public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
  146.                     if (!newValue) {
  147.                         editarRuta();
  148.                     }
  149.                 }
  150.  
  151.             });
  152.  
  153.             textField.setOnKeyPressed(new EventHandler<KeyEvent>() {
  154.                 @Override
  155.                 public void handle(KeyEvent t) {
  156.                     if (null != t.getCode()) {
  157.  
  158.                         switch (t.getCode()) {
  159.                             case ENTER:
  160.                                 System.out.println("a presionado enter");
  161.                                 editarRuta();
  162.                                 break;
  163.                             case ESCAPE:
  164.                                 cancelEdit();
  165.                                 //getTableView().edit(getTableRow().getIndex(),_ColRutas);
  166.                                 break;
  167.                             case TAB:
  168.                                 getTableView().getSelectionModel().selectNext();
  169.                                 getTableView().edit(getTableRow().getIndex(), _ColRutas);
  170.                                 getTableView().getFocusModel().focus(getIndex() - 1);
  171.                                 getTableView().getSelectionModel().select(getIndex() - 1);
  172.    
  173. getTableView().getSelectionModel().selectPrevious();
  174.                                 break;
  175.                             case DOWN:
  176.  
  177.                                 getTableView().getSelectionModel().selectNext();
  178.                             default:
  179.                                 break;
  180.                         }
  181.                     }
  182.                 }
  183.  
  184.             });
  185.         }
  186.  
  187.         private void editarRuta() {
  188.             System.out.println("metodo de editar rutas");
  189.  
  190.         }
  191.  
  192.         private String getString() {
  193.             return getItem() == null ? "" : getItem().toString();
  194.         }
  195.     }
  196. }
  197.  
  198. /**
  199.  * @param args the command line arguments
  200.  */
  201. public static void main(String[] args) {
  202.     launch(args);
  203. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top