Mostrando entradas con la etiqueta java swing. Mostrar todas las entradas
Mostrando entradas con la etiqueta java swing. Mostrar todas las entradas

martes, 31 de marzo de 2015

Ceylon: Interoperabilidad con Java ... javax.swing

Continuamos los ejemplos del uso de librerías Java en código Ceylon. En el post anterior vimos como importar las librerías básicas de Java, ahora importaremos el paquete javax.swing.

Tendremos tres archivos:
  1. module.ceylon
  2. package.ceylon
  3. run.ceylon
En este archivo importamos el módulo que incluye a la librería javax.swing

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/


sábado, 24 de enero de 2015

Groovy en ejemplos ... no. 5

"No importa cuan perfecto creas sea tu código siempre habrá alguien que le hallé un error"


En esta ocasión seguimos con la serie de ejercicios usando el lenguaje de programación Groovy.  Usaremos la librería javax.swing para crear aplicaciones gráficas.


1.  Generar un número aleatorio. Esta aplicación tendrá:
  1.  Dos botones JButton (Generar no. aleatorio y Salir)
  2.  Un JLabel que nos servirá de separador
Para generar el número aleatorio usaremos la clase Random.

Random rand=new Random()
aleatorio=(int)rand.nextInt(100)


/*aleatorio.groovy */

import java.awt.event.*
import java.awt.*

import javax.swing.JLabel
import javax.swing.JButton
import javax.swing.JFrame

import javax.swing.JOptionPane
import javax.swing.*



frame=new JFrame("Groovy en ejemplos ... no.5\n::codemonkeyjunior 2015::")
caja=Box.createVerticalBox()

btnCalcular=new JButton("<html><font color='red'>Generar</font> <font color='blue'>no. aleatorio</font></html>")
btnCalcular.addActionListener({
     Random rand=new Random()

     try {
         aleatorio=(int)rand.nextInt(100)
     }
     catch(Exception e) {
         JOptionPane.showMessageDialog(panel, "No se pudo generar el numero", "Error", JOptionPane.ERROR_MESSAGE);
     }finally{
         JOptionPane.showMessageDialog(null,"Numero aleatorio: "+String.valueOf(aleatorio))
     }

    } as ActionListener)

btnSalida=new JButton("<html>Desea <font color='red'> salir</font>?</html>")
btnSalida.addActionListener({

int seleccion = JOptionPane.showConfirmDialog(null,
                                  "Deseas cerrar la ventana?",
                                  "Seleccion",
                                  JOptionPane.YES_NO_OPTION);

if(seleccion==0){
    System.exit(0)
}



    }as ActionListener)

caja.add(btnCalcular)
caja.add(new JLabel("<html><br/><br/></html>"))
caja.add(btnSalida)
frame.contentPane.add(caja)
frame.setSize(450,150)
frame.visible=true
frame.defaultCloseOperation=JFrame.EXIT_ON_CLOSE


Ejecutamos:
Al dar clic sobre el botón "Generar no. aleatorio" saldrá este mensaje:


Al Dar clic sobre el botón "Desea salir?" saldrá:


2.En este ejemplo usaremos:
  •  Un JCheckBox
  •  Un JButton
El usuario elegirá entre tres opciones (Java, Python,y Groovy) y comprobará el resultado al dar clic al botón.

/*elegir.groovy*/

import javax.swing.*
import java.awt.event.*
import java.awt.*


def ventana(){
  frame=new JFrame(title: '::JCheckButton en Groovy::', size: [320,200], layout: new FlowLayout(), defaultCloseOperation: javax.swing.WindowConstants.EXIT_ON_CLOSE)

//podemos aplicarles estilo a los botones
  btnEjecutar=new JButton("<html><font color='blue'>Ejecutar</font></html>")
  btnEjecutar.setBackground(Color.white)
  btnEjecutar.setToolTipText("inicio...")
  btnEjecutar.addActionListener({
      miCheck1=new JCheckBox("<html><h2><font color='red'>Java</font></h2></html>")
      miCheck2=new JCheckBox("<html><h2><font color='green'>Python</font></h2></html>")
      miCheck3=new JCheckBox("<html><h2><font color='blue'>Groovy</font></h2></html>")

    


      panel=new JFrame(title: '::JCheckButton en Groovy::', size: [320,200], layout: new FlowLayout())
      miLabel=new JLabel("<html></html>")

      botonMostrar=new JButton("<html>Comprobar</html>")

      botonMostrar.addActionListener({
         if(miCheck1.isSelected() && miCheck3.isSelected() && miCheck2.isSelected()){
             miLabel.setText("elegiste los tres lenguajes")
         }else if(miCheck1.isSelected() && miCheck3.isSelected()){
             miLabel.setText("elegiste: Java y Groovy")
         }else if(miCheck1.isSelected() && miCheck2.isSelected()){
             miLabel.setText("elegiste: Java y Python")
         }
         else if(miCheck2.isSelected() && miCheck3.isSelected()){
             miLabel.setText("elegiste: Python y Groovy")
         }
         else if(miCheck2.isSelected()){
             miLabel.setText("elegiste: Python")
         }
         else if(miCheck3.isSelected()){
             miLabel.setText("elegiste: Groovy")
         }
         else if(miCheck1.isSelected()){
             miLabel.setText("elegiste: Java")
         }

         else{
             miLabel.setText("")
          }
      } as ActionListener)
    panel.add miCheck1
    panel.add miCheck2
    panel.add miCheck3
    panel.add miLabel
    panel.add botonMostrar

  

      try{
          panel.show()
      }
      catch(Exception ex){
          println "error en: "+ex.toString()
      }

      }as ActionListener)


  frame.add btnEjecutar
  frame.show()
}

ventana()
  //invocamos el método

Ejecutamos:
Al dar clic saldrán las opciones:

Y comprobamos:








domingo, 23 de noviembre de 2014

Programando en Java ... no. 9

Acaba de salir la nueva versión de la librería NiconNotify OSD , la cual provee clases para crear mensajes tipo "alert" de Java Swing.

Un ejemplo.

import javax.swing.UIManager;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;

import nicon.notify.core.Notification;

public class TestNiconNotify {

    public static void main(String[] args) {
        try{
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
            int respuesta=Notification.windowConfirmMessage(null, "Confirmacion", "Desea borrar Windows de sus sistema?");
            if(respuesta==1){
                Notification.windowMessage(null, "Respuesta", "Claro, quiero eliminar Windows de mi sistema");
            }else{
                Notification.windowMessage(null, "Respuesta", "No, todavia no.");
            }
           
        }catch(Exception ex){
            System.err.println("error: "+ex.getCause());
        }

    }

}

Ejecutando programa:





Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog