"Cuando el alumno está listo, aparece el maestro, o al menos eso dicen"
En el post anterior vimos un ejemplo del uso de JOptionPane en código Clojure, ahora veremos como introducir datos usando el método showInputDialog.
1. Introduciendo un dato tipo 'String', el método no necesita argumento.
;;importar librería
(import '(javax.swing JOptionPane));'
;;defino el método introduceDato
(defn introduceDato []
(JOptionPane/showInputDialog
(str "Introduce una cadena:")
)
)
;;lo usamos así
(def entrada (introduceDato))
;;imprimimos
(JOptionPane/showMessageDialog nil,
(str "Cadena: "entrada)
)
Resultado:
2. Método que decide si un número es menor a 100
(import '(javax.swing JOptionPane));'
(defn esMenor? [n]
(if (< n 100) (JOptionPane/showMessageDialog nil,
(str n" es menor a 100")
) (JOptionPane/showMessageDialog nil,
(str n" es mayor a 100")
) )
)
;;parseInt
(defn pasaEntero [s]
(Integer. (re-find #"\d+" s)))
(def entrada "3")
;;'main' del programa
(try
(esMenor? (pasaEntero entrada))
(catch Exception e (str "error: " (.getMessage e)))
)
Resultado:
3. Obtener un número al cuadrado n^2=n*n
(import '(javax.swing JOptionPane));'
(defn introduceDato [s]
(JOptionPane/showInputDialog
(str s)
)
)
(def numero(introduceDato "Introduce numero:"))
;;convertir String a número
(defn String->Number [str]
(let [n (read-string str)]
(if (number? n) n nil)))
;;función cuadrado
(defn cuadrado [n]
(* n n)
)
;;'main' del programa
(try
(JOptionPane/showMessageDialog nil,
(str "El numero introducido es: "numero)
)
(JOptionPane/showMessageDialog nil,
(str "Al cuadrado es: "(cuadrado (String->Number numero)))
)
(catch Exception e (str "error: " (.getMessage e)))
)
Resultado:
Ejecutar:
java -jar clojure-1.6.0.jar uso_de_java_swing.clj
UPDATE: Mejorando la sentencia try-catch tenemos algo como esto:
(ns cuadrado) (import '(javax.swing JOptionPane));' (defn introduceDato [s] (JOptionPane/showInputDialog (str s) ) ) (def numero(introduceDato "Introduce numero:")) ;;convertir String a número (defn String->Number [str] (let [n (read-string str)] (if (number? n) n nil))) ;;función cuadrado (defn cuadrado [n] (* n n) ) ;;'main' del programa (try (JOptionPane/showMessageDialog nil, (str "El numero introducido es: "numero) ) (JOptionPane/showMessageDialog nil, (str "Al cuadrado es: "(cuadrado (String->Number numero))) ) (catch Exception e (JOptionPane/showMessageDialog nil, (str "Error: " (.getMessage e)) ) ) )
Comentarios
Publicar un comentario