<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AngelQP</title>
    <description>The latest articles on DEV Community by AngelQP (@devangel_2997).</description>
    <link>https://dev.to/devangel_2997</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F974895%2Fb5673cad-3013-42a1-a347-b736042f31ba.jpeg</url>
      <title>DEV Community: AngelQP</title>
      <link>https://dev.to/devangel_2997</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devangel_2997"/>
    <language>en</language>
    <item>
      <title>Stream y Lambdas en Java 8 👨‍💻</title>
      <dc:creator>AngelQP</dc:creator>
      <pubDate>Sun, 08 Oct 2023 11:50:11 +0000</pubDate>
      <link>https://dev.to/devangel_2997/stream-y-lambdas-en-java-8-4cd7</link>
      <guid>https://dev.to/devangel_2997/stream-y-lambdas-en-java-8-4cd7</guid>
      <description>&lt;h2&gt;
  
  
  ¿Programación funcional en Java 8? 🤔🤔
&lt;/h2&gt;

&lt;p&gt;Es interesante ver como java evolucionó permitiendo integrar funciones que pueden suplir a las clases, es decir se puede escribir &lt;strong&gt;código declarativo&lt;/strong&gt; diciendo que se va hacer y no código con clases que implica el como se va hacer, y lo mas importante permite que este se adapte a tiempo de ejecución gracias a los &lt;strong&gt;Genericos&lt;/strong&gt;, que identifican el tipo de variable con que se esta trabajando, pero entonces que pasaría si al final no arroja el tipo de dato que estamos buscando sino un &lt;strong&gt;null&lt;/strong&gt; 😫😫 aquí mágicamente aparece otra característica que son los &lt;strong&gt;Optional&lt;/strong&gt; que identifica si existe o no un dato 🤯🤯, de esta manera puedes respaldar el código que escribes sin necesidad de que este contenga exceptions innecesarios.&lt;/p&gt;

&lt;p&gt;La maravilla se encuentra en que esto se vuelve como un juego de legos en que tu vas acomodando las piezas que necesitas y como lo necesitas, acortando así el total de código que vas a escribir.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué son Lambdas? 🤨🤨
&lt;/h2&gt;

&lt;p&gt;Estos nacen gracias a la nueva anotación de &lt;em&gt;@FunctionalInterface&lt;/em&gt; que permite a las interfaces tener un método abstracto diferente a los definidos por Object (equals, hashcode, clone, etc) de manera que se pueda trabajar con funciones más explícitas y anonimas (Lambdas). Entonces, los lambdas son la manera en que Java ha encontrado para que se puedan escribir funciones anónimas sin necesidad de clases o instancias, de rápida ejecucción siendo lo mas transparente para el programador.&lt;/p&gt;

&lt;p&gt;Existen 4 grandes grupos de interfaces funcionales ✍:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Predicate: Devuelve a fuerzas un boolean y normalmente es usada para validación de criterios (filtrar).&lt;/li&gt;
&lt;li&gt;Supplier: Este tipo genera objetos sin que tenga argumentos.&lt;/li&gt;
&lt;li&gt;Consumer: Es usada para consumir métodos del parámetro T (argumento que se pasa) causando así posibles efectos secundarios.&lt;/li&gt;
&lt;li&gt;Function: Es usada para convertir de un parámetro de tipo T a otro de tipo R.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Este tipo de funciones tienen variantes y se explican a más detalle en java.util.function encontrarás el link de la documentación en la bibliografía.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;La forma en que podemos escribir Lambdas son de esta manera:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(a,b) -&amp;gt; Integer.sum(a,b)
(a,b) -&amp;gt; { 
    System.out.println("Los número a sumar son: " + a + " " + b);
    return Integer.sum(a,b) 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como se nota cuando hay más de una línea de código se utiliza corchetes, además que se debe retornar el tipo de dato que se necesite o espere según sea el caso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Métodos de referencia 😎😎
&lt;/h2&gt;

&lt;p&gt;A menudo encontrarás forma de escribir funciones lambdas un tanto particular y es que existen 3 casuísticas y otra con constructores que permiten acortar aún más el código.&lt;/p&gt;

&lt;p&gt;1.- Métodos estáticos&lt;br&gt;
Los métodos estáticos son aquellos que puedes invocar sin necesidad de instanciar un objeto específico de la clase. Para utilizar su referencia sería de esta manera &lt;strong&gt;NombreClase::métodoEstático&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejemplo sin referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BinaryOperator&amp;lt;Integer&amp;gt; sum = (a,b) -&amp;gt; Integer.sum(a,b);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ejemplo con referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BinaryOperator&amp;lt;Integer&amp;gt; sum = Integer::sum;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.- Instancia de un objeto&lt;br&gt;
Cuando se cuenta con una referencua a un objeto y se desea invocar alguno de sus métodos de instancia dentro de la expresión lambda, sería de esta manera &lt;strong&gt;RefObjeto::métodoInstancia&lt;/strong&gt;. Por ejemplo, la clase java.lang.System tiene una referencia a un  objeto de tipo java.io.PrintStream denominada out, usaremos  esa referencia para el siguiente ejemplo.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejemplo sin referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Consumer&amp;lt;Integer&amp;gt; print = (a) -&amp;gt; System.out.println(a);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ejemplo con referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Consumer&amp;lt;Integer&amp;gt; print = System.out::println;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;La referencia al objeto se tiene en System.out y se invoca su método de instancia println(int): void&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;3.- Instancia de algún tipo&lt;br&gt;
Se parece al anterior, aunque se diferencia en que no hay una referencia a un objeto, solo se conoce su tipo y se podría escribir una expresión lambda así &lt;strong&gt;Tipo::métodoInstancia&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejemplo sin referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Comparator&amp;lt;String&amp;gt; upper = (a, b) -­&amp;gt; a.compareToIgnoreCase(b);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ejemplo con referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Comparator&amp;lt;String&amp;gt; upper = String::compareToIgnoreCase;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.- Constructores&lt;br&gt;
Se puede abreviar para los constructores ser escritos de esta manera &lt;strong&gt;Clase::new&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejemplo sin referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Function&amp;lt;Integer, List&amp;gt; listSupplier = (num) -­&amp;gt; new ArrayList();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ejemplo con referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Function&amp;lt;Integer, List&amp;gt; listSupplier = ArrayList::new;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;También podrían usarse los métodos de una clase sin que sean estáticos &lt;strong&gt;Clase::método&lt;/strong&gt; esto serviría para cuando se desea obtener un valor específico para elaborar un stream. Para ello se tiene una lista de personas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejemplo sin referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IntStream edades = personas.stream().mapToInt(p -&amp;gt; p.getEdad());
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ejemplo con referencia
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IntStream edades = personas.stream().mapToInt(Persona::getEdad);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;Se ha revisado temas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;De donde provienen los lambdas y que aportan al momento de escribir código.&lt;/li&gt;
&lt;li&gt;Los tipos de funciones que se puede escribir, además de otras variedades que nos ofrecen en la documentación.&lt;/li&gt;
&lt;li&gt;Se ha conocido los métodos de referencia que permiten acortar el código sin que llegue a ser tan verboso.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tal como lo hemos visto aún quedaría la duda de donde usarlo o lo mejor de todo como usarlo, para ello existen los &lt;strong&gt;Stream&lt;/strong&gt; que son su complemento perfecto, con calma lectores que esta sería la primera parte de 3 artículos que esta relacionados entre sí, esta primera parte consta de explicar los &lt;strong&gt;Lambdas&lt;/strong&gt;, para luego explicar que son los &lt;strong&gt;Stream&lt;/strong&gt; y concluir con &lt;strong&gt;ejercicios o casuísticas&lt;/strong&gt; donde pueden ser aplicados estos conceptos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bibliografía
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.oracle.com/mx/technical-resources/articles/java/expresiones-lambda-api-stream-java.html"&gt;https://www.oracle.com/mx/technical-resources/articles/java/expresiones-lambda-api-stream-java.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oracle.com/mx/technical-resources/articles/java/expresiones-lambda-api-stream-java-part2.html"&gt;https://www.oracle.com/mx/technical-resources/articles/java/expresiones-lambda-api-stream-java-part2.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oracle.com/lad/technical-resources/articles/java/processing-streams-java-se8.html"&gt;https://www.oracle.com/lad/technical-resources/articles/java/processing-streams-java-se8.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.arteco-consulting.com/post/introduccion-a-java-lambda"&gt;https://www.arteco-consulting.com/post/introduccion-a-java-lambda&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/acelopezco/lambdas-lab/blob/master/src/main/java/com/javanme/java8/Avanzado.java"&gt;https://github.com/acelopezco/lambdas-lab/blob/master/src/main/java/com/javanme/java8/Avanzado.java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html"&gt;https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>eclipse</category>
      <category>beginners</category>
      <category>java</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>JavaFX en Eclipse</title>
      <dc:creator>AngelQP</dc:creator>
      <pubDate>Sat, 12 Aug 2023 17:49:20 +0000</pubDate>
      <link>https://dev.to/devangel_2997/javafx-en-eclipse-4153</link>
      <guid>https://dev.to/devangel_2997/javafx-en-eclipse-4153</guid>
      <description>&lt;h2&gt;
  
  
  ¿Qué es JavaFX?
&lt;/h2&gt;

&lt;p&gt;Una definicion muy clara nos la proporciona la página de Java, donde nos indica que esta es una tecnología de software, que combinada con Java, permite crear y desplegar aplicacion con un aspectos y contenidos avanzados (modernos), audio y vídeo.&lt;/p&gt;

&lt;p&gt;JavaFX nos brinda una plataforma junto con SceneBuilder que permite desarrollar con mayor rapidez interfaces de usuarios muy atractivas visualmente, implementar el patrón MVC de una manera concisa y permite estilizarla a nuestro gusto mediante CSS los diferentes elementos que integra la interfaz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisitos
&lt;/h2&gt;

&lt;p&gt;Antes de comenzar, asegúrese de tener el siguiente software instalado en su computadora:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java Development Kit (JDK) 8 o una versión superior.&lt;/li&gt;
&lt;li&gt;Eclipse IDE para Java Developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Instalación
&lt;/h2&gt;

&lt;p&gt;Vamos a dividir esta sección en 3 partes:&lt;/p&gt;

&lt;h3&gt;
  
  
  Parte 1
&lt;/h3&gt;

&lt;p&gt;Se instalará el plugin de JavaFX en Eclipse mediante el Marketplace. Un plugin es un complemento o componente de sofware que agrega una característica o funcionalidad específica, para este caso se añade este plugin a Eclipse de modo que nos permita tener un desarrollo mas fluido como por ejemplo abrir archivos fxml con SceneBuilde.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqh41wojlsbtgca5lz58s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqh41wojlsbtgca5lz58s.png" alt="Marketplace"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgadmbslszlnmqr46f0m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgadmbslszlnmqr46f0m.png" alt="Instalación de Plugin"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Parte 2
&lt;/h3&gt;

&lt;p&gt;En esta segunda parte, dejaremos preconfigurado el entorno para JavaFX.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se procede a descargar JavaFX de la pagina de Gluon que dependera del sistema operativo que estes trabajando. Posteriormente lo descomprimimos en una carpeta.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://gluonhq.com/products/javafx/" rel="noopener noreferrer"&gt;Link de Gluon&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A manera de preferencia, creare una carpeta en el “Disco Local C” que es donde guardaré los archivos descomprimidos, la carpeta creada tendrá el nombre de JavaFX.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fielikrnjkgnwg5zeqjse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fielikrnjkgnwg5zeqjse.png" alt="Archivo en el Disco Local C"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Posteriormente, se va a “Preferences” en la opción de “Window”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7ytt4mbnn247u9dyk7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7ytt4mbnn247u9dyk7l.png" alt="Seleccionando Preferences"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Luego se busca la palabra “Java”, seleccionamos ”Build Path” y “User Libraries”, en la ventana que se nos muestra a la derecha seleccionamos “New”, aquí colocamos el nombre de “JavaFX”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5oeducjdtt8c8ybxqjb3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5oeducjdtt8c8ybxqjb3.png" alt="Agregando Build Path"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Una vez creada y seleccionada la librería “JavaFX”, se da en la opción de “Add External JARs”, se abrirá una ventana de busqueda, como anteriormente mencioné por tema de preferencia guarde la descarga descomprimida en C con el nombre de “JavaFX”, entonces ahora buscare la carpeta “JavaFX”, luego “lib” y por último selecciono todos los archivos de esa carpeta y doy en “abrir”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7ufm10nk13z2rkoh4du.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7ufm10nk13z2rkoh4du.png" alt="Agregando libreria JavaFX"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aparecerá todas las librerias agregadas y solo queda dar en “Apply and Close”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwir8bi1n8rp9fdh134ts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwir8bi1n8rp9fdh134ts.png" alt="Aplicados los cambios"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Luego crearemos un proyecto de JavaFX para mi caso le puse el nombre de “Prueba”. Al generarlo, da un error por el archivo “module-info.java” que solo toca eliminarlo ya que por ahora no es relevante. Luego en el proyecto, damos click derecho la opción de “Build Path” - “Configure Build Path”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff6sglll1zbtlcocxt36x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff6sglll1zbtlcocxt36x.png" alt="Configuración de Proyectos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seleccionamos en “Libraries” - “Add Library” - “User Library” y luego el siguiente, ya solo queda dar en “JavaFX” y dar en “Finish” - “Apply and Close”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ix24irmip9w5efxognr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ix24irmip9w5efxognr.png" alt="Modificando proyectos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para correr la aplicación según la misma librería todavia se tiene que colocar una configuración en el “runtime”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu3phps1uvjsfgnn0x14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu3phps1uvjsfgnn0x14.png" alt="Configuración de Runtime"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para mi caso, le dare un nombre especifico de “Ejecutar JavaFX”, luego damos en “Arguments” y dentro de “VM Arguments” colocamos el texto mostrado abajo y damos en “Apply” - “Run”. &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;-module-path 'C:\JavaFX\lib'&lt;/p&gt;

&lt;p&gt;--add-modules javafx.controls,javafx.fxml&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fho1ri74ybeqor7fi64l9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fho1ri74ybeqor7fi64l9.png" alt="Argumentos de VM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Parte 3
&lt;/h3&gt;

&lt;p&gt;Ya una vez ejecutado JavaFX, se tiene el incoveniente de que no se pueda crear archivos FXML, basicamente es un error producido por el plugin, pero tiene solución, al ser esta un versión desactualizada hasta el momento del “Marketplace”.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entonces nos vamos a “Help” - “Install New Software”. &lt;/li&gt;
&lt;li&gt;Colocamos el siguiente link: &lt;a href="https://download.eclipse.org/efxclipse/updates-nightly/site/" rel="noopener noreferrer"&gt;https://download.eclipse.org/efxclipse/updates-nightly/site/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Damos en “Add”&lt;/li&gt;
&lt;li&gt;Damos check a las opciones que nos salen y luego en “Next” - “Finish”, una vez se termine de realizar el proceso de descarga e instalación, se reinicia Eclipse, y ahora si puedes crear archivos FXML.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zs3zpd4ipn1j3q0llws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zs3zpd4ipn1j3q0llws.png" alt="Añadiendo JavaFX"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bibliografía
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openjfx.io/openjfx-docs/" rel="noopener noreferrer"&gt;Documentación de JavaFX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/74758570/cant-create-new-fxml-file-in-eclipse" rel="noopener noreferrer"&gt;Error de plugin Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>eclipse</category>
      <category>javafx</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
