Skip to content

aledelling/FundamentosKotlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Calculadora Kotlin con JavaFX

Este repositorio contiene un proyecto de ejemplo que demuestra cómo crear una aplicación de escritorio simple utilizando Kotlin y JavaFX. La aplicación es una calculadora básica que permite sumar dos números, diseñada para estudiantes principiantes que desean aprender Kotlin y JavaFX. Incluye una guía de aprendizaje completa para introducir las características clave de Kotlin y los pasos para configurar y ejecutar el proyecto en IntelliJ IDEA.

Guía de Aprendizaje de Kotlin

¿Por qué Kotlin?

Kotlin es un lenguaje de programación moderno, estáticamente tipado, desarrollado por JetBrains. Es conciso, seguro y completamente interoperable con Java, lo que lo hace ideal para aplicaciones de escritorio (como esta con JavaFX), Android y desarrollo web.

Características Clave de Kotlin

  1. Seguridad contra Nulos: Reduce errores de puntero nulo al distinguir entre tipos anulables (String?) y no anulables (String).
  2. Sintaxis Concisa: Menos código repetitivo gracias a la inferencia de tipos, clases de datos y funciones simplificadas.
  3. Interoperabilidad con Java: Funciona perfectamente con bibliotecas de Java, como JavaFX.
  4. Funciones de Extensión: Permite añadir funcionalidad a clases existentes sin modificarlas.
  5. Corrutinas: Simplifica la programación asíncrona, útil para tareas como actualizaciones de UI.
  6. Casts Inteligentes: Convierte tipos automáticamente cuando se cumplen ciertas condiciones.
  7. Clases de Datos: Simplifica la creación de clases para almacenar datos con métodos automáticos como toString(), equals() y hashCode().
  8. Programación Funcional: Soporta funciones de orden superior, lambdas e inmutabilidad.

Configurando tu Primer Proyecto Kotlin + JavaFX

Requisitos Previos

  • IntelliJ IDEA: Descarga la edición Community o Ultimate desde JetBrains.
  • JDK: Versión 11 o superior (por ejemplo, OpenJDK o Oracle JDK).
  • JavaFX SDK: Descarga el SDK desde Gluon y extráelo en una ubicación conocida.

Paso 1: Crear un Nuevo Proyecto Kotlin

  1. Abre IntelliJ IDEA y selecciona File > New > Project.
  2. Elige Kotlin en el menú izquierdo, selecciona JVM | IDEA como plantilla y configura el JDK a 11 o superior.
  3. Nombra el proyecto (por ejemplo, KotlinJavaFXDemo), elige una ubicación y haz clic en Finish.
  4. Agrega el JavaFX SDK:
    • Ve a File > Project Structure > Libraries, haz clic en +, selecciona Java y agrega la carpeta lib del JavaFX SDK.
  5. Configura el módulo:
    • En Project Structure > Modules, asegúrate de que el módulo use el mismo JDK y agrega el JavaFX SDK como dependencia.

Paso 2: Configurar la Ejecución

Para ejecutar una aplicación JavaFX, configura las opciones de la máquina virtual (VM):

  1. Ve a Run > Edit Configurations.
  2. Agrega una nueva configuración de Application.
  3. Establece la clase principal como com.example.MainApp.
  4. Agrega las siguientes opciones de VM, reemplazando /ruta/a/javafx-sdk con la ubicación real:
    --module-path /ruta/a/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml
    
  5. Configura el directorio de trabajo como la raíz del proyecto.

Paso 3: Estructura del Proyecto

Crea la siguiente estructura en src/main/kotlin/com/example:

  • MainApp.kt: Clase principal de la aplicación.
  • MainController.kt: Controlador para la lógica de la UI.
  • main.fxml: Archivo de diseño de la UI en src/main/resources/com/example.

Ejemplo: Calculadora Simple con JavaFX

Este proyecto crea una calculadora básica que suma dos números. A continuación, se detallan los archivos del proyecto con comentarios explicativos.

Archivo FXML: Diseño de la Interfaz

Archivo: src/main/resources/com/example/main.fxml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Importando componentes de JavaFX para el diseño FXML -->
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.Button?>

<!-- Elemento raíz es un VBox para un diseño vertical -->
<VBox alignment="CENTER" spacing="10" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
      fx:controller="com.example.MainController">
    <!-- Agregando padding al VBox -->
    <padding>
        <Insets top="20" right="20" bottom="20" left="20"/>
    </padding>
    
    <!-- Etiqueta para mostrar el resultado -->
    <Label fx:id="resultLabel" text="Resultado: 0"/>
    
    <!-- Campos de texto para entrada -->
    <TextField fx:id="number1Field" promptText="Ingresa el primer número"/>
    <TextField fx:id="number2Field" promptText="Ingresa el segundo número"/>
    
    <!-- Botón para activar el cálculo -->
    <Button fx:id="addButton" text="Sumar" onAction="#addNumbers"/>
</VBox>

Archivo del Controlador

Archivo: src/main/kotlin/com/example/MainController.kt

package com.example

import javafx.fxml.FXML
import javafx.scene.control.Label
import javafx.scene.control.TextField

// Clase controlador para manejar la lógica de la UI
class MainController {
    // Anotaciones FXML vinculan estos campos con los elementos del FXML
    @FXML
    lateinit var resultLabel: Label // Etiqueta para mostrar el resultado
    @FXML
    lateinit var number1Field: TextField // Primer campo de entrada
    @FXML
    lateinit var number2Field: TextField // Segundo campo de entrada

    // Función para manejar el clic del botón y realizar la suma
    @FXML
    fun addNumbers() {
        // Usando seguridad contra nulos de Kotlin y conversión de tipos
        val num1 = number1Field.text.toDoubleOrNull() ?: 0.0
        val num2 = number2Field.text.toDoubleOrNull() ?: 0.0
        // Calculando la suma
        val sum = num1 + num2
        // Actualizando la etiqueta con el resultado
        resultLabel.text = "Resultado: $sum"
    }
}

Archivo Principal de la Aplicación

Archivo: src/main/kotlin/com/example/MainApp.kt

package com.example

import javafx.application.Application
import javafx.fxml.FXMLLoader
import javafx.scene.Scene
import javafx.stage.Stage

// Clase principal de la aplicación que extiende de JavaFX Application
class MainApp : Application() {
    // Sobrescribiendo el método start para configurar la aplicación JavaFX
    override fun start(primaryStage: Stage) {
        // Cargando el archivo FXML
        val fxmlLoader = FXMLLoader(MainApp::class.java.getResource("/com/example/main.fxml"))
        // Creando la escena con el FXML cargado
        val scene = Scene(fxmlLoader.load(), 300.0, 200.0)
        // Estableciendo el título de la ventana
        primaryStage.title = "Calculadora Kotlin con JavaFX"
        // Configurando la escena en la ventana
        primaryStage.scene = scene
        // Mostrando la ventana
        primaryStage.show()
    }
}

// Función principal para lanzar la aplicación
fun main() {
    Application.launch(MainApp::class.java)
}

Cómo Ejecutar el Proyecto

  1. Clona el repositorio:
    git clone https://github.com/tu-usuario/kotlin-javafx-calculator.git
  2. Abre el proyecto en IntelliJ IDEA (File > Open).
  3. Configura el JavaFX SDK y las opciones de VM como se describió anteriormente.
  4. Haz clic en Run o selecciona Run > Run 'MainApp'.
  5. Se abrirá una ventana con dos campos de texto, un botón "Sumar" y una etiqueta para el resultado.

Uso de la Calculadora

  1. Ingresa un número en el primer campo de texto.
  2. Ingresa otro número en el segundo campo de texto.
  3. Haz clic en el botón Sumar para ver el resultado en la etiqueta.

Cómo Funciona

  • Diseño FXML: Define la interfaz gráfica usando XML, vinculada al controlador mediante fx:controller.
  • Controlador: Maneja las entradas del usuario y actualiza la UI. Usa seguridad contra nulos (toDoubleOrNull) y plantillas de cadenas ($sum).
  • Aplicación Principal: Carga el FXML, configura la ventana de JavaFX y lanza la aplicación.
  • Características de Kotlin Demostradas:
    • Seguridad contra Nulos: Uso de lateinit y toDoubleOrNull.
    • Sintaxis Concisa: Definiciones simplificadas de clases y funciones.
    • Interoperabilidad: Integración con clases de JavaFX.

Consejos para Aprender Kotlin

  1. Practica la Seguridad contra Nulos: Usa ? para variables que puedan ser nulas y evita errores en tiempo de ejecución.
  2. Usa Clases de Datos: Por ejemplo, data class Persona(val nombre: String, val edad: Int) para datos simples.
  3. Explora Corrutinas: Aprende corrutinas para tareas asíncronas en proyectos avanzados.
  4. Aprovecha IntelliJ IDEA: Usa autocompletado y sugerencias para aprender la sintaxis de Kotlin.
  5. Consulta la Documentación: Visita la documentación oficial de Kotlin para más detalles.

Próximos Pasos

  • Mejora la calculadora para soportar resta, multiplicación y división.
  • Explora controles de JavaFX como ChoiceBox o TableView para interfaces más complejas.
  • Experimenta con corrutinas de Kotlin para tareas en segundo plano en JavaFX.

Contribuciones

¡Las contribuciones son bienvenidas! Sigue estos pasos:

  1. Haz un fork del repositorio.
  2. Crea una nueva rama (git checkout -b mejora-nueva).
  3. Realiza tus cambios y haz commit (git commit -m 'Descripción de cambios').
  4. Sube la rama (git push origin mejora-nueva).
  5. Crea un Pull Request.

Licencia

Este proyecto está bajo la Licencia MIT.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors