希望屏蔽FileChooser 中的Home 、向上一层、以及双击文件夹消息,重写相应的ActionPerformed处理
默认时点击Home 直接回到用户的Home 目录去了,
双击文件夹时默认就进入子文件夹了,请问如何截获相应的消息?
同时以详细列表显示时,点击文件名时如何进行排序(截获点击列名事件),盼高手指点
默认时点击Home 直接回到用户的Home 目录去了,
双击文件夹时默认就进入子文件夹了,请问如何截获相应的消息?
同时以详细列表显示时,点击文件名时如何进行排序(截获点击列名事件),盼高手指点
解决方案 »
- String str = true+"" ;与String str="true";的区别
- 希望得到前辈的指导,分不够还可以再加!
- JAVA 编写程序,从10个数中求出最大值,最小值及平均值(急!)
- 【求助】数据库的数据在JTable中的显示问题
- 关于接口的作用
- 请教:哪位仁兄可否给我展示一下Java程序中造成Memory Leak的情况
- 请教一个关于java编码的问题!
- 同样的问题,相似的错误。只占用您几分钟的时间清帮我解决。谢谢。一定给分
- 请看一下这个程序,有两个问题。谢谢
- JAVA正则表达式中数量限定符*的含义中多次的具体含义(两问)
- 高手们帮我看一下这段调用方法
- 请问如何在发帖的时候插入一张图片?
是在initAllComponent()时定义并加载的.呵呵.有些难度
//以下屏蔽New Folder、向上一层的事件,Home无效(java version 1.4以上)
final BasicFileChooserUI basicUI=(BasicFileChooserUI)(jFileChooser.getUI());
// System.out.println(basicUI.getDialogTitle(this.jFileChooser));
basicUI.getChangeToParentDirectoryAction().setEnabled(false);
basicUI.getGoHomeAction().setEnabled(false);
basicUI.getNewFolderAction().setEnabled(false);
jFileChooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent ev) {
if (ev.getPropertyName() == JFileChooser.DIRECTORY_CHANGED_PROPERTY) {
// System.out.println(basicUI.getGoHomeAction().isEnabled());
SwingUtilities.invokeLater(new Runnable() {
public void run() {
basicUI.getNewFolderAction().setEnabled(false);
basicUI.getGoHomeAction().setEnabled(false);
basicUI.getChangeToParentDirectoryAction().setEnabled(false);
}
});
}
}
});
//以下重载双击事件,首先查找JList Component,然后删除原有MouseListener,添加自己的MouseListener
public static JList searchJList(Container fileChooser)
{
JList ret = null; // First check, wether i am a JList:
if (fileChooser instanceof JList)
{
ret = (JList)fileChooser;
} // Ok, me not: let's ask the children.
else {
Component[] children = fileChooser.getComponents();
for(int i=children.length-1;i>=0;i--)
{
if (children[i] instanceof Container)
{
ret = searchJList((Container)children[i]);
if(ret != null)
{ break; }
}
}
}
return ret;
} //查找JFileList 里的JList component JList list = searchJList(jFileChooser);
if (list!=null)
{
String listenerClassName;
MouseListener[] listeners = list.getMouseListeners();
for (int i=0;i< listeners.length;i++)
{
listenerClassName = listeners[i].getClass().getName();
if (listenerClassName.endsWith("FileChooserUI$SingleClickListener")) {
list.removeMouseListener(listeners[i]);
break;
}
else if(listenerClassName.indexOf("SingleClick")!= -1)
{
list.removeMouseListener(listeners[i]);
// System.out.println("remove");
break;
}
else if(listenerClassName.indexOf("DoubleClick")!= -1)
{
list.removeMouseListener(listeners[i]);
list.addMouseListener(new MouseListener()
{
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==2)
{
//Do you want to do,here
}
}
public void mouseEntered(MouseEvent e)
{ }
public void mouseExited(MouseEvent e)
{ }
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
});
break;
}
}
}