Tendremos tres archivos:
- module.ceylon
- package.ceylon
- run.ceylon
module.ceylon
module holaCeylon "1.0.0"{
import java.base "7";
import java.desktop "7";//incluye a javax.swing
}
Este archivo indicamos el paquete principal (holaCeylon) de nuestro programa.
package.ceylon
shared package holaCeylon;
El archivo que se compilará y ejecutará. Se trata de un mensaje que nos muestra la versión del lenguaje en una ventanita tipo alert.
run.ceylon
import javax.swing { JOptionPane }
shared void run(){
JOptionPane.showMessageDialog(null,"Hola desde Ceylon ``language.version`` ");
}
Compilamos y ejecutamos:
También podemos hacer uso de showInputDialog() para introducir datos:
import javax.swing { JOptionPane }
shared void run(){
value nombre=JOptionPane.showInputDialog("Introduce tu nombre");
JOptionPane.showMessageDialog(null,"Hola ``nombre``");
}
Convertir esos datos en Float o Integer. Podemos hacer un simple menú con tres opciones: calcular grados celsius, grados fahrenheit y salir.
import javax.swing { JOptionPane }
shared void run(){
value c=Calculo();
String? opc=JOptionPane.showInputDialog("\t1. Calcular grados Fahrenheit\n2. Calcular grados Celsius\nSalir (cualquier tecla)");
if(exists opc){
value opc_=opc;
switch (opc)
case ("1") {
Float? numero=parseFloat(JOptionPane.showInputDialog("Introduce grado Celsius"));
if(exists numero){
value numero_=numero;
JOptionPane.showMessageDialog(null,"Celsius: ``c.fahrenheit(numero)``");
}
}
case ("2") {
Float? numero=parseFloat(JOptionPane.showInputDialog("Introduce grado Fahrenheit"));
if(exists numero){
value numero_=numero;
JOptionPane.showMessageDialog(null,"Celsius: ``c.celsius(numero)``");
}
}
else {
process.exit(0);
}
}
}
class Calculo(){
shared Float celsius(Float fahr){
return (fahr - 32) / 1.8;
}
shared Float fahrenheit(Float cels){
return (1.8 * cels) + 32;
}
}
Al compilar y ejecutar obtendremos lo siguiente:
Listo.
Links
http://ceylon-lang.org/documentation/1.1/reference/interoperability/java-from-ceylon/