[英]Java JOptionPane.showMessageDialog custom icon problem?
[英]icon not repainting in JoptionPane java
我的程序捕获屏幕上的图像,调整大小并在JoptionPane图标中表示它们,以便用户决定是否保存天气。 问题是执行Joption.cancel后,该图标在用户下次捕获屏幕图像时显示上一个图像。 在Joption.ok的情况下,它可以正常工作。 知道为什么会这样吗? 快照本身被很好地渲染(每个快照都捕获当前的屏幕图像,但是一旦单击取消,该图标将显示前一个图像)。
rszedSnp=ImageMagick.resize(origSnp_name,30);
ImageIcon icon=new ImageIcon(rszedSnp);
String userIput = (String)JOptionPane.showInputDialog(
new JFrame(),
"Save as:\n",
"taking screen shot",
JOptionPane.PLAIN_MESSAGE,
icon ,
null,
origSnp_name);
我已经通过使用JDialog解决了该问题,该实现使用包含JLabel的JPanel实现JPanel来保存图像,而不是在JOptionPane#showInputDialog函数中使用图像图标。 。
BufferedImage img = ImageIO.read(new File(image));
resize(img);
JLabel lbl = new JLabel(new ImageIcon(img));
lbl.setVisible(true);
JPanel imgPan = new JPanel();
imgPan.add(new JScrollPane(lbl))
JDialog dialog = new JDialog();
JPanel globalPan = new JPanel(new GridLayout(2,2));
globalPan.add(imgPan);
dialog.add( globalPan );
dialog.pack();
dialog.setVisible(true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.