Hola gracias por responder, te envio el codigo de las clases que considero tienen el problema
Tengo la clase que crea los objetos PanelInf , tantos como le indique, esta simplemente hace el new de la clase PanelC
La clase PanelC es la clase que crea el objeto de la clase ImagenMostrar que es quien pinta la imagen, cuando se acciona el boton capturar deveria de repintar la imagen que toma de la ruta que le doy y deberia repintar la imagen de ese panel, a la primera lo hace pero si vuelvo a accionar el boton capturar en ese u otro panel repinta la imagen anterior en todos los paneles, yo quiero que actualize la imagen del panel que le digo
Agradeceria mucho si me ayudases a ver el problema. Saludos y gracias de antemano
public class PanelInf extends JPanel
{
int selection, cantidad, chequeMonto, nroPanel;
double montoCheck;
String nroCuenta, nroSerial,bancoCheck,rutaImagen;
PanelImagen p;
public PanelInf (String cuenta, String serial, double monto,String bco, String ruta, int panel)
{
nroCuenta = cuenta;
nroSerial = serial;
montoCheck = monto;
rutaImagen = ruta;
bancoCheck = bco;
nroPanel = panel;
try
{
jbInit();
}
catch (Exception e)
{
}
}
public PanelInf ()
{
try
{
jbInit();
}
catch (Exception e)
{
}
}
ResourceBundle resources = null;
JPanel infCheck;
JPanel botones;
//JButtons del panel de operaciones
JButton Capturar;
//Propiedades de color de la ventana
Color bg = new Color(214, 223, 232);
Color bgTitulo = new Color(131,164,185);
Color fgTitulo = Color.white;
Color bgGeneral = new Color(214,223,232);
void jbInit() throws Exception
{
infCheck = new JPanel();
botones = new JPanel();
//Buttons de operaciones
Capturar = new JButton();
GridBagLayout gridBagLayout1 = new GridBagLayout();
GridBagLayout gridBagLayout2 = new GridBagLayout();
GridBagLayout gridBagLayout3 = new GridBagLayout();
GridBagLayout gridBagLayout4 = new GridBagLayout();
String pathCliente = wincor.infinix.sessiondata.Constants.RUTA_CLIENTE;
String fileSep = System.getProperty("file.separator");
ImageIcon imagenBoton = new ImageIcon(pathCliente + "wincor" + fileSep + "infinix" + fileSep + "reportjournalaccount" + fileSep + "images" + fileSep + "boton_reportaccount.gif");
Capturar.setFont(new Font("SansSeriff", 0, 10));
Capturar.setText("F12-Capturar");
Capturar.setDefaultCapable(false);
Capturar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Capturar_actionPerformed(e);
}
});
Capturar.setIcon(imagenBoton);
Capturar.setMaximumSize(new Dimension(50, 10));
Capturar.setMinimumSize(new Dimension(50, 10));
Capturar.setPreferredSize(new Dimension(50, 10));
Capturar.setVerticalTextPosition(SwingConstants.CENTER);
Capturar.setHorizontalTextPosition(SwingConstants.CENTER);
Capturar.setFocusPainted(false);
Capturar.setBorder(null);
Capturar.setBackground(bgGeneral);
botones.add(Capturar,null);
p = new ImagenMostrar (rutaImagen);
infCheck.add(p, new GridBagConstraints(0, 0, 1, 1, 0.0, 1, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 2), 0, 0));
this.setBackground(bgGeneral);
this.add(infCheck,BorderLayout.CENTER);
}
void Capturar_actionPerformed(ActionEvent e)
{
this.p.draw("C:\\infinix\\temp\\Imagen0000FB.jpg",/*this.nroPanel*/this.nroPanel);
//this.add(infCheck,BorderLayout.CENTER);
}
}
}
/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*/
/*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*//*/*/*/*/*/*/*/
public class ImagenMostrar extends JPanel
{
//Image img;
String rutaImagen;
JPanel panelInf;
VerticalFlowLayout verticalFlowLayout1;
private Rectangle rect = new Rectangle();
Color bg = new Color(214, 223, 232);
Graphics g;
Graphics b;
int panel;
private String nuevaRuta="";
Image imgDraw;
boolean redibujar= false;
public ImagenMostrar (String ruta)
{
rutaImagen = ruta;
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
if(redibujar==false)
{
super.paintComponent(g);
Image img = Toolkit.getDefaultToolkit().getImage(rutaImagen);
if(img!=null)
{
g.drawImage(img,-520,-20,this);
//repaint();
}
else
{
System.out.println("La imagen es nula");
}
}
else
{
super.paintComponent(g);//aunque no hace falta
Image img = Toolkit.getDefaultToolkit().getImage(nuevaRuta);
for(int i=0;i<10;i++)
{
if(panel == i)
{
// super.paintComponent(g);
Image img = Toolkit.getDefaultToolkit().getImage(nuevaRuta);
if(img!=null)
{
g.drawImage(img,-520,-20,this);
this.repaint();
}
else
{
System.out.println("La imagen es nula");
}
}
}
}
}
public void draw(String ruta, int panelPintar/*, Image imagen*/)
{
printTrace("_I draw");
redibujar = true;
this.panel = panelPintar;
this.nuevaRuta = ruta;
//imgDraw = imagen;
repaint();
}
private void jbInit() throws Exception
{
printTrace("_I jbInit()");
this.setBackground(bg);
this.setBorder(BorderFactory.createEtchedBorder());
this.setLayout(verticalFlowLayout1);
this.setFont(new java.awt.Font("SansSerif", 0, 12));
this.setPreferredSize(new Dimension(175, 55));
this.setVisible(true);
}
}
}