Creamos un nuevo proyecto y en vista de diseño se agrega un jButton y un jPanel.
Codigo1 (Principal.java):
package Recortar;
public class Principal extends javax.swing.JFrame {
public Principal() {
initComponents();
this.setLocationRelativeTo(null);
}
private void initComponents() { ... }
private void jButtonIniciarActionPerformed(java.awt.event.ActionEvent evt) {
Imagen im = new Imagen(jPanel1);
jPanel1.add(im).repaint();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Principal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonIniciar;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
Codigo 2 (Imagen.java):
package Guardar;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Stroke;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class Imagen extends javax.swing.JPanel {
int x, y;
public Imagen(JPanel jPanel1) {
this.x = jPanel1.getWidth();
this.y = jPanel1.getHeight();
this.setSize(x, y);
}
@Override
public void paint(Graphics g) {
try {
// Se carga la imagen original
BufferedImage imagen;
File f = new File("src/Images/imagen1.png");
imagen = ImageIO.read(f);
Graphics2D g2 = (Graphics2D) imagen.getGraphics();
// Se modifica la imagen original
Stroke stroke = new BasicStroke((float) 20); // Grosor pincel
g2.setStroke(stroke);
g2.setColor(Color.RED);
g2.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON); // Filtro antialiasing
g2.drawLine(0, 0, imagen.getWidth(), imagen.getHeight()); // Línea diagonal
// Se guarda la imagen y se imprime en el jPanel
ImageIO.write(imagen, "png", new File("imagen2.png"));
g.drawImage(imagen, 0, 0, this);
} catch (IOException ex) { }
}
}
Resultado:
Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.
Suscribirse a:
Enviar comentarios (Atom)
Con la tecnología de Blogger.
Amigo a mi no me genero codigo adentro del metodo private void initComponents() { ... } que es lo que debe de ir adentro de ese metodo?
ResponderEliminarSi trabajas con NetBeans y en modo de diseño sería agregar con el mouse los componentes jButton, jPanel. Sólo hay que arrastrarlos a la ventana (jFrame)). NetBeans se encarga de generar el código automáticamente.
Eliminar