Hola amig@s ahora les mostrare como pasar el texto de un JTextField a una JList con tan solo unas cuantas lineas y sin complicaciones.
Captura:
Mostrando entradas con la etiqueta programacion III. Mostrar todas las entradas
Mostrando entradas con la etiqueta programacion III. Mostrar todas las entradas
martes, 11 de febrero de 2014
lunes, 2 de septiembre de 2013
Mover Imagen Utilizando Hilos (Threads) en Java
Hola amig@s en esta ocasión les mostrare como mover 2 imagenes una con las teclas direccionales del teclado y la otra arrastrarla con el ratón, además de hacer un contador que nos muestre cuantos minutos y segundos la aplicaron ha estado activa, también reproducir un archivo MID todo esto con Hilos (Threads) para ello utilizaremos un IDE como entorno de programacion en mi caso utilizare netbeans.
Imagenes:
dentro de nuestro proyecto crearemos un JFrame form y en modo diseñador utilizaremos 4 JLabels, 1 JPanel, 1 JTextField y JButton.
los re-nombramos para poderlos identificar mas facilmente, yo los llame así:
ahora cambiamos la vista de diseñador a código y dentro de la clase colocamos lo siguiente:
clase interna
dentro de nuestro constructor colocamos esto:
al botón jbmover le colocamos 2 eventos:
1- KeyPressed.
2- ActionPerformed.
debería quedar algo así:
al JLabel jlbola le colocaremos el evento: MouseDragged.
debería quedar algo así:
también declararemos el método para mover la imagen con el ratón:
estos son los los métodos para mover la imagen con el teclado:
ahora crearemos otra clase para el sonido
descarga el proyecto desde aquí.
descarga la librería jfugue desde aquí o visita su pagina oficial.
Imagenes:
dentro de nuestro proyecto crearemos un JFrame form y en modo diseñador utilizaremos 4 JLabels, 1 JPanel, 1 JTextField y JButton.
los re-nombramos para poderlos identificar mas facilmente, yo los llame así:
JLabel jLabel2;//esta sera la etiqueta del JTextField
JPanel jPanel1;
JButton jbmover;//mientras no se presione no se podrán mover las imágenes
JLabel jlbola;//este JLabel sera la imagen que moveremos con el ratón
JLabel jlimagen1;//este JLabel sera la imagen que moveremos con el teclado
JLabel jlimagen2;//este JLabel sera la imagen de fondo
JTextField jttiempo;//aqui mostraremos el tiempo transcurrido
ahora cambiamos la vista de diseñador a código y dentro de la clase colocamos lo siguiente:
Sonido miHilo; Thread miThread; boolean band; HiloTiempo otrohilo=new HiloTiempo();
clase interna
private class HiloTiempo extends Thread { @Override public void run() { int contador = 0,min=0; while (true) { jttiempo.setText("0"+ min+":"+ contador); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(Animacion.class.getName()).log(Level.SEVERE, null, ex); } contador++; if(contador==60){ contador=0; min++; } } } }
dentro de nuestro constructor colocamos esto:
miHilo=new Sonido(); miThread = new Thread(miHilo); miThread.start(); otrohilo.start();
al botón jbmover le colocamos 2 eventos:
1- KeyPressed.
2- ActionPerformed.
debería quedar algo así:
private void jbmoverKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jbmoverKeyPressed if(band==true){ moverImagen(evt); } }//GEN-LAST:event_jbmoverKeyPressed private void jbmoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbmoverActionPerformed band=true; }//GEN-LAST:event_jbmoverActionPerformed
al JLabel jlbola le colocaremos el evento: MouseDragged.
debería quedar algo así:
private void jlbolaMouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jlbolaMouseDragged if(band==true){ moverImagen2(evt); } }//GEN-LAST:event_jlbolaMouseDragged
también declararemos el método para mover la imagen con el ratón:
public void moverImagen2(java.awt.event.MouseEvent evento) { jlbola.setLocation(jlbola.getX() + evento.getX() - jlbola.getWidth()/2 , jlbola.getY() + evento.getY() - jlbola.getHeight()/2); }
estos son los los métodos para mover la imagen con el teclado:
private void moverImagen(java.awt.event.KeyEvent evt) { switch (evt.getKeyCode()) { case KeyEvent.VK_UP: moverArriba(); break; case KeyEvent.VK_DOWN: moverAbajo(); break; case KeyEvent.VK_LEFT: moverIzq(); break; case KeyEvent.VK_RIGHT: moverDer(); break; default: System.out.println("No valida"); } } private void moverArriba() { jlimagen1.setLocation(jlimagen1.getX(), jlimagen1.getY() - 10); } private void moverAbajo() { jlimagen1.setLocation(jlimagen1.getX(), jlimagen1.getY() + 10); } private void moverIzq() { jlimagen1.setLocation(jlimagen1.getX() - 10, jlimagen1.getY()); } private void moverDer() { jlimagen1.setLocation(jlimagen1.getX() + 10, jlimagen1.getY()); }
ahora crearemos otra clase para el sonido
import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.sound.midi.InvalidMidiDataException; import org.jfugue.Player; public class Sonido implements Runnable { public void run() { Player player = new Player(); File midi=new File("lilium_intro.mid"); while (true) { try { player.playMidiDirectly(midi); } catch (IOException ex) { Logger.getLogger(Sonido.class.getName()).log(Level.SEVERE, null, ex); } catch (InvalidMidiDataException ex) { Logger.getLogger(Sonido.class.getName()).log(Level.SEVERE, null, ex); } } } }
descarga el proyecto desde aquí.
descarga la librería jfugue desde aquí o visita su pagina oficial.
viernes, 19 de julio de 2013
Dibujar un cuadrado, un triángulo y un circulo en applet
Hola amig@s en esta entrega les mostrare como dibujar un cuadrado, un triángulo y un circulo en applet cada uno se dibujara al presionar el botón correspondiente a dicha figura.
Capturas:
Código:
Puedes descargar el código desde aquí.
Capturas:
Código:
import java.applet.Applet; import java.awt.Button; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * * @author MARIO */ public class Figuras extends Applet implements ActionListener { Button bt1, bt2, bt3; int indice; final Color[] colores = {Color.red, Color.blue, Color.orange}; public void init() { setBackground(Color.yellow); bt1 = new Button("Cuadrado"); bt2 = new Button("Triangulo"); bt3 = new Button("Circulo"); bt1.setBackground(Color.red); bt1.setForeground(Color.green); bt1.addActionListener(this); bt2.setBackground(Color.blue); bt2.setForeground(Color.white); bt2.addActionListener(this); bt3.setBackground(Color.orange); bt3.setForeground(Color.MAGENTA); bt3.addActionListener(this); add(bt1); add(bt2); add(bt3); } public void paint(Graphics g) { g.setColor(colores[indice]); switch (indice) { case 0: g.fillRect(40, 40, 40, 40); break; case 1: int [] x = new int [4]; x [0] = 5; x [1] = 70; x [2] = 70; x [3] = 5; int [] y = new int [4]; y [0] = 70; y [1] = 5; y [2] = 70; y [3] = 70; g.drawPolygon (x, y, 4); break; case 2: g.fillOval(120, 96, 40, 40); break; } } public void actionPerformed(ActionEvent e) { Object boton = e.getSource(); if (boton.equals(bt1)) { indice = 0; } else if (boton.equals(bt2)) { indice = 1; } else { indice = 2; } repaint(); } }
Puedes descargar el código desde aquí.
jueves, 18 de julio de 2013
Dibujar Cara en Applets Java
Hola amig@s en esta nueva entrega les mostrare como crear un applet que dibuje una carita y al presionar un botón cambiar el color de todo lo dibujado
Captura:
Código:
Descarga el código desde aquí.
Captura:
Código:
import java.applet.Applet; import java.awt.Button; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * @(#)Cara.java * * Cara Applet application * * @author Alexander * @version 1.00 2013/7/18 */ public class Cara extends Applet implements ActionListener { Button btn = new Button("Cambiar Color"); int indice = 1; public void init() { add(btn); btn.addActionListener(this); } public void paint(Graphics g) { if (indice == 1) { btn.setBackground(Color.black); btn.setForeground(Color.lightGray); setBackground(Color.red); g.fillOval(150, 150, 120, 120); g.setColor(Color.green); g.fillOval(170, 170, 20, 20); g.fillOval(220, 170, 20, 20); g.drawLine(200, 175, 200, 220); g.drawArc(180, 190, 50, 50, 180, 180); } else { btn.setBackground(Color.white); btn.setForeground(Color.blue); setBackground(Color.blue); g.setColor(Color.pink); g.fillOval(150, 150, 120, 120); g.setColor(Color.yellow); g.fillOval(170, 170, 20, 20); g.fillOval(220, 170, 20, 20); g.drawLine(200, 175, 200, 220); g.drawArc(180, 190, 50, 50, 180, 180); } } public void actionPerformed(ActionEvent e) { Object boton = e.getSource(); if (boton.equals(btn)) { if (indice != 2) { indice = 2; } else { indice = 1; } } repaint(); } }
Descarga el código desde aquí.
Etiquetas:
applets
,
Java
,
programacion III
sábado, 13 de julio de 2013
Mini Paint en Java
Mini Paint en Java
Hola amigos hoy les enseñare como programar un mini Paint basico en java utilizando Netbeans 7.2.1 hasta el momento puede hacer lineas circulos, elipses, cuadros, rectangulos tambien cuenta con una opcion de trazo libre
Pasos:
Creamos nuestro proyecto
Ahora extendemos nuestra clase Paint con JFrame
y declaramos las siguientes variables
Creamos el constructor de nuestra clase e inicializamos nuestras variables
Hola amigos hoy les enseñare como programar un mini Paint basico en java utilizando Netbeans 7.2.1 hasta el momento puede hacer lineas circulos, elipses, cuadros, rectangulos tambien cuenta con una opcion de trazo libre
Pasos:
Creamos nuestro proyecto
y declaramos las siguientes variables
hasta ahora solo hemos inicializado nuestra variables ahora crearemos una nueva clase llamada Lienzo y para que utilizaremos esta clase pues dicha clase sera la encargada de mostrar lo que estemos dibujando a su vez sera quien escuchara las acciones de nuestro mouse para ello extenderemos nuestra clase Lienzo con la clase Canvas e implementaremos MouseListener, MouseMotionListener.
Ahora crearemos nuestro constructor el cual recibirá como parámetro el objeto Paint
E implementamos los siguientes métodos los cuales se encargan de manejar las distintas acciones del mouse y los ultimos 3 métodos son paint() seria nuestra funcion que dibujaria los distintos trazos en nuestro lienzo, update() actualizaria nuestros trazos sin borrar los anteriores y por ultimo nuevoColor() tomaria el nuevo color a utilizar
Ahora crearemos 4 nuevas clases las cuales estaran encargadas de manejar las acciones de algunos componentes como los radiobuttons, el boton limpiar y los slider estos ultimos se utilizaran en las opciones de circulo-elipse o cuadro-rectagulo dependiendo de los valores que les demos asi seran las formas a mostrar
Clase ManejadorBotonLimpiar
Clase ManejadorRadioButton
Clase SelectorAlto
Clase SelectorAncho
Si logran apreciar las clases de SelectorAlto y SelectorAncho son iguales la unica diferencia es la variable ancho y alto respectivamente nos vamos a nuestra clase Lienzo y añadimos las acciones correspondientes dentro del constructor de esta manera.
Ahora lo que falta es terminar de darle las respectivas acciones a los elementos de la clase Paint y dentro de nuestro constructor
Acciones a los radioButtons solo añadimos:
rbColores[i].addActionListener(new ManejadorRadioButton(this)); de esta manera:
Accion del boton dibujar
Accion del boton cambiar color al presionar dicho boton se mostrara un JColorShooser (un seleccionador de color)
Accion del comboBox
Accion del boton Salir
al final de nuestro constructor colocamos lo siguiente
La primera linea hace que nuestra ventana se muestre de forma expandida.
Segunda es para establecer la decoracion.
Tercera linea definimos que estilo queremos para nuestra venana.
Cuarta linea definimos la accion del boton cerrar de nuestra ventana.
Quinta linea establecemos que no se pueda cambiar el tamaño de nuestra ventana.
Puedes descargar todo el proyecto desde aqui.
Suscribirse a:
Entradas
(
Atom
)