import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
//Programado por Yacoobs Cort. Mart. 15 de febrero de 2017
public class Graficos_Panel extends javax.swing.JFrame {
public Graficos_Panel() {
initComponents();
jPanel1.add(new Insertar_Graficos());
jPanel2.add(new Insertar_Graficos1());
try {
//Dentro del File ponemos la ruta exacta de nuestro archivo de imagen a cargar....
img = ImageIO.read(new File("C:/Imagenes/Mago de hielo1.png"));
img1 = ImageIO.read(new File("C:/Imagenes/Mago de hielo1.png"));
} catch (IOException ex) {
Logger.getLogger(Graficos_Panel.class.getName()).log(Level.SEVERE, null, ex);
}
}
public class Insertar_Graficos extends JComponent{
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
if (img!=null){
//System.out.println("graficos");
g2.drawImage(img, ancho,alto, this);
g2.setStroke(new BasicStroke(4));
g2.setColor(Color.GREEN);
g2.drawRect(ancho, alto, img.getWidth(), img.getHeight());
}
}
}
public class Insertar_Graficos1 extends JComponent{
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
if (img!=null){
//Una de las formas de escalar una imagen es asignar dos parametros mas al método drawImage
//Los dos primeros establecen la posicion de la imagen
//Los dos siguientes indican la resocicon Xancho * Yalto
//En este caso obtengo el tamaño de la imagen ancho y le incremento 100
//Lo hago tanto en el ancho como en el alto asi Escalamos la imagen 100 pixeles mas de la
//original
g2.drawImage(img1, 0,0,img1.getWidth()+100,img.getHeight()+100, this);
}
}
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(153, 153, 153));
jPanel1.setForeground(new java.awt.Color(153, 153, 153));
jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
jPanel1MousePressed(evt);
}
});
jPanel1.setLayout(new java.awt.BorderLayout());
jPanel2.setBackground(new java.awt.Color(153, 255, 255));
jPanel2.setLayout(new java.awt.BorderLayout());
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()
.addGap(39, 39, 39)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(103, 103, 103)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 243, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(96, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(47, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(23, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jPanel1MousePressed(java.awt.event.MouseEvent evt) {
System.out.println("Cliquear...");
//Llamamos a la Clase Centrar Imagen que nos asignaran las cordenadas ancho y alto y calculara
//la posicion de la imagen
new Centrar_Imagen(this, img, jPanel1);
repaint();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Graficos_Panel().setVisible(true);
}
});
}
public void setAncho(int ancho) {
this.ancho = ancho;
}
public void setAlto(int alto) {
this.alto = alto;
}
private int ancho=0,alto=0;
private BufferedImage img,img1;
// Variables declaration - do not modify
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
// End of variables declaration
}
// Clase encargada de calcular el centrado de la imagen ........
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class Centrar_Imagen {
public Centrar_Imagen(Graficos_Panel Gra_Pl, BufferedImage img, JPanel jpanel) {
int ancho_Img = img.getWidth()/2;
int ancho_Panel = jpanel.getWidth()/2;
Gra_Pl.setAncho(ancho_Panel-ancho_Img);
int alto_Img = img.getHeight()/2;
int alto_Panel = jpanel.getHeight()/2;
Gra_Pl.setAlto(alto_Panel-alto_Img);
}
}
Comentarios sobre la versión: 1 (0)
No hay comentarios