解决方案 »
- 如何将若干个型如 2006-12-30 09:35:00 字符串转化为java.util.Date类型对象,并计算其间隔秒数
- Struts可以利用外部资源文件来实现国际化,那么一个标准的带有main()方法的JAVA应用程序如何实现利用外部资源文件的国际化?
- 类 Hello 是公共的,应在名为 Hello.java 的文件中声明
- 奇怪的问题,两个double型,如何相加!!!!!!!!!!!!
- 大家看一下这段源码
- 新手遇到问题!
- 有JAVA applet好的电子书么?
- 怎样配置POOLMAN
- ie浏览器可以直接显示网页上的applet么?(100分)
- 谁能告诉我哪里能找到java包内部类及方法使用介绍
- 江湖救急,求助各位几个关于文件处理的小程序
- jquery ui 如何使用 用过的 告诉咋用白 谢谢;了
event.getNewValue()返回一个object,而且这个是chooser的事件,为啥会运行时变成ImagePreviewer 的对象了
下
错误的原因在于public void propertyChange(PropertyChangeEvent event)
{
if(event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY);
{
// the user has selected a new file
File f = (File) event.getNewValue(); //这里报错
这里if(event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY);后面多了个分号,其余的不用多说了吧
chooser.setFileFilter(filter);
chooser.setAccessory(new ImagePreviewer(chooser));
chooser.setFileView(new FileIconView(filter, new ImageIcon("palette.gif")));
这些都会导致chooser的属性发生改变而发生事件,所以你修改一下你的事件里的代码,判断一下属性改变的是否是文件,是再继续强行转换,就可以了,比如 public ImagePreviewer(JFileChooser chooser)
{
setPreferredSize(new Dimension(100, 100));
setBorder(BorderFactory.createEtchedBorder());
chooser.addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent event)
{
if(event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY);
{
// the user has selected a new file
if (event.getNewValue() instanceof File) { //追加一个判断
File f = (File) event.getNewValue(); //这里报错
if(f == null)
{
setIcon(null);
return;
}
// read the image into an icon
ImageIcon icon = new ImageIcon(f.getPath());
// if the icon is too large to fit ,scale it
if(icon.getIconWidth() > getWidth())
icon = new ImageIcon(icon.getImage().getScaledInstance(getWidth(), -1, Image.SCALE_DEFAULT));
setIcon(icon);
}
}
}
});
}
if(event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY);
这个本身就是对选择文件造成propertyg改变发生事件作的判断,只是因为后面多了个; 所以if相当于后面接的是空代码,然后后面的{}内的代买相当无条件执行。
是不是说下面这段代码
FileNameExtensionFilter filter = new FileNameExtensionFilter("Image files", "jpg", "jpeg", "gif");Java1.5不支持 ?