Guest User

Untitled

a guest
Apr 16th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.06 KB | None | 0 0
  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. }
Add Comment
Please, Sign In to add comment