0

モーダル ダイアログを閉じた後、ボタンからアイコンを更新 (または更新) する際に問題が発生します。画像は基本的に一部のアクションで上書きされますJDialog

これは私のコードです:

conf = new Configurar(this, true,control);           
conf.setVisible(true); // Open dialog
System.out.println("Cerrado"); // Check if is closed (debug)
String logo =(String)config.get("logo"); // get path from image
File newIcon =new File(logo); // Desesperate try
ImageIcon img = new ImageIcon(newIcon.getAbsolutePath()); 
btn_main_image.setIcon(img);
this.update(btn_main_image.getGraphics());
btn_main_image.updateUI(); // First Try
this.repaint(); // Second Try

最初は問題なく動作しますが、ダイアログを開いて画像を変更しても同じままです。

4

1 に答える 1

4
conf = new Configurar(this, true,control);           
conf.setVisible(true); // Some kind of file chooser ??
File newIcon =new File(logo);
if (newIcon.exists()) {
   ImageIcon img = new ImageIcon(newIcon.getAbsolutePath()); 
   btn_main_image.setIcon(img);
   //this.update(btn_main_image.getGraphics()); // WHAT IS THIS?!?!?!
   //btn_main_image.updateUI(); // NO NO NO, this has nothing to do with refreshing the graphics, it's L&F stuff
   btn_main_image.invalidate();
   // Use this ONLY if invalidate doesn't work...
   btn_main_image.revalidate();
   btn_main_image.repaint();
}
于 2012-10-18T22:14:54.007 に答える