Materiales:
*Se necesita crear un Nueva Aplicacion Java (EJ: Efecto_PowerPoint) --> Menu Nuevo Proyecto, JAva Aplication
*Se necesita crear un nuevo Package imagen dentro del proyecto para manejar las imagenes ademas de copiar dentro de el las imagenes a mostrar de fondo1.jpg, fondo2.jpg, fondo3.jpg,fondo4.jpg.
* Una clase pintar que modifique el el procedimiento de pintura de fondo de tipo publico para modificar el fondo a partir de un contructor (Click Derecho en Package) nueva clase llamada pintar.
* Una clase variables en donde se declaren las funciones mostrar_imagen() y crear_imagen(String fondo), estas dos funciones sirven de contructores que permiten el acceso a variables publicas o globales en java ya que el no maneja variables publicas cuando se desarrollan mas de un archivo, esto quiere decir que si creas un Jframe en java y archivo de clase q lo procese estos no se comunicaran de manera general solo a travez de los llamados contructores que tienen la funcion de meter una variable en una funcion de un archivo de tipo clase o jpanel, jrame, etc y sacarla por medio de return de la memoria ram, no es muy limpio pero funciona y es 1 de los metodos mas comunes para esto (Click Derecho en Package) nueva clase llamada varaibles.
* Un Jframe principal que ejecutara la accion de repintado mediante 2 botones (Incluire 2 etiquetas) para le efecto de siguiente y anterior, en el se declarara un array de valores String(Cadena con la direccion fisica de cada imagen esto nos dara le efecto simple que encierra power point).
Ok comensemos:
Primero la clase variables (Click Derecho en Package) nueva clase llamada varaibles.
Este es el codigo de la clase variables:
package Efecto_PowerPoint;
/**
*
* @author Fernando Perez
*/
public class variables {
private static String Fondo;
public static int mostrar_imagen()
{
return Fondo;
/* Este es el codigo del constructor que obtiene el valor de la variable de acceso global */
}
public static void crear_imagen(String valor)
{
Fondo = valor;
/* Este es el contructor que asigna el valor a la varaible global*/
}
}
Ok ahora el codigo de la clase pintar que obtiene los valores del contructor mostrar_imagen()
package Efecto_PowerPoint;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;
/**
*
* author Fernando Perez
*/
public class pintar extends javax.swing.JPanel {
public pintar(){
this.setSize(769,627);
}
@Override
public void paint(Graphics g){
String foto=variables.mostrar_imagen();
/*bien primero declaramos una variable foto de tipo String y le asignamos el valor del
constructor que almacena el nombre de la ruta de la imagen seleccionada del formulario*/
Dimension tamanio = getSize();
ImageIcon imagenFondo = new ImageIcon(getClass().getResource(foto));
/* Aca se declaro la ruta de la imagen a partir de la varaialbe local foto*/
g.drawImage(imagenFondo.getImage(),0,0,tamanio.width, tamanio.height, null);
setOpaque(false);
super.paintComponent(g);
}
Ok ahora el JFrame principal que tendra 2 botones Anterior y siguiente ademas de 2 etiquetas
con la misma funcion.
import clases.pintar;
import clases.variables;
import java.awt.BorderLayout;
/**
*
* @author Fernando Perez
*/
public class lienzo extends javax.swing.JFrame {
int cont;
String[] img = {"/imagen/fondo1.jpg",""/imagen/foto2.jpg",""/imagen//foto3.jpg",""/imagen/foto4.jpg"};
/** se crea el Jframe lienzo */
public contenido_11() {
initComponents();
}
/*esta parte no se modifica ya que es creada por NetBeans pero si le dan apie coipa
y pega cone so*/
@SuppressWarnings("unchecked")
//
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setMinimumSize(new java.awt.Dimension(729, 627));
setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
jButton1.setText("Anterior");
jButton1.setName("jButton1"); // NOI18N
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton1MouseClicked(evt);
}
});
jButton2.setText("Siguiente");
jButton2.setName("jButton2"); // NOI18N
jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton2MouseClicked(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(565, Short.MAX_VALUE)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(586, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addGap(18, 18, 18))
);
pack();
}
/*Hasta aca el codigo generedo por NetBeans*/
private void formWindowActivated(java.awt.event.WindowEvent evt) {
String fotos = "";
fotos=img[cont];
/*asignamos la ruta de la imagen desde el array donde la primera imagen esta en la
pocision 0*/
variables.crear_imagen(fotos);
/*Bien asignamos la ruta al contructor que almacena la variable*/
pintar fondo = new pintar();
this.add(fondo , BorderLayout.CENTER);
fondo_siguiente.repaint();
}
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
/*Esto es interesante esta el la accion que retrosede la seleccion de imagenes para
el boton anterior*/
if(cont!=0){
cont=cont-1;
String fotos = "";
fotos=img[cont];
variables.crear_imagen(fotos);
pintar fondo_siguiente = new pintar();
this.add( fondo_siguiente , BorderLayout.CENTER);
fondo_siguiente.repaint();
}
}
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
if(cont!=img.length){
cont=cont+1;
String fotos = "";
fotos=img[cont];
variables.crear_imagen(fotos);
pintar fondo_anterior = new pintar();
this.add( fondo_anterior , BorderLayout.CENTER);
fondo_anterior.repaint();}
}
/**
* @Este es el main del Jframe
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new lienzo.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
// End of variables declaration
}
No hay comentarios:
Publicar un comentario