Java - Formularios JAVA

 
Vista:

Formularios JAVA

Publicado por Ce Santamaria (1 intervención) el 06/10/2022 10:30:45
Estoy tratando de poner como fondo de mi JFrame una imagen pero me sale en blanco o parece vacio. pueden indicarme en que estoy fallando, creo que no esta leyendo la imagen de la ruta indicada



package com.jmsantamaria.figurasgeometricas;

import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
*
* @author jmsantamariaa
*/
public class Principal extends javax.swing.JFrame {

/**
* Creates new form Principal
*/
public Principal() {

this.setContentPane(new ImagenFondo());

initComponents();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 2742, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 689, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Principal().setVisible(true);
}
});
}

public class ImagenFondo extends JPanel {

@Override

public void paint(Graphics g){
ImageIcon imagen = new ImageIcon(getClass().getResource("C:\\Users"
+ "\\jmsantamariaa\\Documents\\NetBeansProjects"
+ "\\FigurasGeometricas\\src\\main\\java\\com\\jmsantamaria"
+ "\\figurasgeometricas\\Imagen\\fondo1.jpg"));
g.drawImage(imagen.getImage(),0,0,getWidth(),getHeight(),this);
setOpaque(false);
super.paint(g);
}

// Variables declaration - do not modify
// End of variables declaration
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Formularios JAVA

Publicado por Kabuto (1381 intervenciones) el 06/10/2022 11:39:09
Hola.
Trabajar con imágenes en Swing siempre da dolores de cabeza.

Mi consejo es que dentro de tu proyecto crees un package específico donde colocar las imágenes que vayas a usar.
Y para crear la imagen llamas al método getClassLoader().
De esta forma, para indicar el nombre del archivo imagen puedes usar rutas relativas que son más cortas.

Y además, si luego exportas el proyecto a un .jar ejecutable, la imagen también se exportará y formará parte de ese .jar

Fíjate en los recuadros rojos que señalo en esta captura, para que veas cómo he configurado el proyecto java y cómo llamo a la imagen para luego dibujarla.

Clíckala para verla más grande y con mejor definición.

fondo-Jframe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar