请教高手关于重载JFileChooser来实现文件预览的功能

hahabaomilan 2006-03-17 11:23:06
一般我们要实现文件预览或者图片预览,都是通过setAccessory()来实现的。 但是我现在做的这个swing程序,要求在对话框的最低部将文件的描述显示一下,我觉得这样可能就必须继承JFileChooser了吧, 但是swing的源代码我找不到,请教各位高手,请给出建议。当然,给出代码更是感激不尽。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahabaomilan 2006-03-20
  • 打赏
  • 举报
回复
太感谢啦!!!!!高手!!!!!!!
hahabaomilan 2006-03-19
  • 打赏
  • 举报
回复
谢谢!!!!!!
我找到源码了,可是感觉JFileChooser的界面被封装了,想加一个自己的JTextArea在下面可能不太容易,大家有好办法么?
gtlang78 2006-03-19
  • 打赏
  • 举报
回复
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.Date;

import javax.swing.*;


public class T
{
public static void main(String[] args)
{
final JFileChooser jfc = new JFileChooser();
jfc.setMultiSelectionEnabled(false);
jfc.setControlButtonsAreShown(false);

JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 10, 10));
JButton okBtn = new JButton("确定");
JButton cancelBtn = new JButton("取消");
buttonPanel.add(okBtn);
buttonPanel.add(cancelBtn);

final JTextArea textArea = new JTextArea(5, 10);
textArea.setEditable(false);
JScrollPane textAreaSp = new JScrollPane(textArea);
JPanel prevPanel = new JPanel(new BorderLayout());
prevPanel.add(textAreaSp, BorderLayout.CENTER);
prevPanel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));

jfc.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e)
{
String prop = e.getPropertyName();
if(prop == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) {
File file = (File) e.getNewValue();
if (file == null || file.isDirectory()) {
textArea.setText("");
}
else {
String desc = "Name: " + file.getName() + "\n" +
"Size: " + file.length() + " Bytes \n" +
"Time: " + new Date(file.lastModified());
textArea.setText(desc);
}
}
}
});

final JFrame f = new JFrame();
okBtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
f.dispose();
System.out.println(jfc.getSelectedFile());
}
});

cancelBtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
f.dispose();
}
});

f.getContentPane().add(jfc, BorderLayout.NORTH);
f.getContentPane().add(prevPanel, BorderLayout.CENTER);
f.getContentPane().add(buttonPanel, BorderLayout.SOUTH);

f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);

}
}
yonghar 2006-03-18
  • 打赏
  • 举报
回复
在jdk安装目录下有一个src.rar的源代码压缩包。
aaa2003gf 2006-03-18
  • 打赏
  • 举报
回复
JSDK 有源麻啊,Eelipse可以查看
hahabaomilan 2006-03-17
  • 打赏
  • 举报
回复
还有一个问题,怎么才能得到JFileChooser的源代码呢,我试着反编译JFileChooser.class, 可是不行, 谢谢大家 !!!

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧