Prueba con este codigo:
Code:
import javax.swing.*;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.*;
public class GraphicForm extends javax.swing.JFrame {
private JDialog dialogo;
private JFileChooser seleccionarArchivo;
private FileNameExtensionFilter filtroImagenes;
private JMenu jMenu1;
private JMenuBar jMenuBar1;
private JMenuItem menuCambiarFondo;
private ImagePanel picturePanel;
public GraphicForm() {
initComponents();
}
private void initComponents() {
dialogo = new javax.swing.JDialog();
seleccionarArchivo = new JFileChooser();
filtroImagenes = new FileNameExtensionFilter("Imagenes .jpg .gif .png", "jpg", "jpeg", "gif", "png");
picturePanel = new ImagePanel();
jMenuBar1 = new JMenuBar();
jMenu1 = new JMenu();
menuCambiarFondo = new JMenuItem();
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
getContentPane().add(picturePanel, java.awt.BorderLayout.CENTER);
jMenu1.setMnemonic('A');
jMenu1.setText("Archivo");
jMenu1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenu1ActionPerformed(evt);
}
});
menuCambiarFondo.setText("Cambiar fondo");
menuCambiarFondo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
menuCambiarFondoActionPerformed(evt);
}
});
jMenu1.add(menuCambiarFondo);
jMenuBar1.add(jMenu1);
setJMenuBar(jMenuBar1);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-531)/2, (screenSize.height-419)/2, 531, 419);
}
private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void menuCambiarFondoActionPerformed(java.awt.event.ActionEvent evt) {
seleccionarArchivo.setFileFilter(filtroImagenes);
seleccionarArchivo.setDialogTitle("Cambiar fondo");
int result = seleccionarArchivo.showOpenDialog(this);
if (result == seleccionarArchivo.APPROVE_OPTION){
String filename = seleccionarArchivo.getSelectedFile().getAbsolutePath();
Image image = Toolkit.getDefaultToolkit().getImage(filename);
picturePanel.setImage(image);
picturePanel.setVisible(true);
picturePanel.repaint();
}
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new GraphicForm().setVisible(true);
}
}
Code:
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class ImagePanel extends JPanel implements Serializable {
Image image = null;
public ImagePanel(Image image) {
this.image = image;
}
public ImagePanel() {
}
public void setImage(Image image){
this.image = image;
}
public Image getImage(Image image){
return image;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (image != null) {
int height = this.getSize().height;
int width = this.getSize().width;
g.drawImage(image,0,0, width, height, this);
}
}
}
Ya me dirás si te funciona. Si tienes alguna duda manda me un mail o envía me código de tu aplicación.
Bookmarks