⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oyoahafilechooserui.java

📁 java 开源,Swing外观:JGoodies look & feel. ... JGoodies look&feels让你的Swing 应用程序与applets看起来更漂亮.
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
  protected class OyoahaDoubleClickListener implements MouseListener  {    protected JList list;    public OyoahaDoubleClickListener(JList list)    {      this.list = list;    }    public void mouseEntered(MouseEvent e)    {    }    public void mouseExited(MouseEvent e)    {    }    public void mousePressed(MouseEvent e)    {      if(e.getClickCount()==2)      {        resetEditIndex();        cancelEdit();      }    }    public void mouseClicked(MouseEvent e)    {    }    public void mouseReleased(MouseEvent e)    {      if(e.isPopupTrigger())      {      }      /*else      if(e.getModifiers()!=InputEvent.BUTTON1_MASK)      {        return;      }*/      else      if(e.getClickCount()==2)      {        int index = list.locationToIndex(e.getPoint());        if(index >= 0)        {          File f = (File) list.getModel().getElementAt(index);          if(getFileChooser().isTraversable(f))          {            lastRowPosition = index;            list.ensureIndexIsVisible(0);            list.clearSelection();            getFileChooser().setCurrentDirectory(f);          }          else          {            getFileChooser().approveSelection();          }        }      }      else      if(e.getClickCount()==1)      {        int index = list.locationToIndex(e.getPoint());        if(index >= 0 && lastIndex == index && editing == false)        {          Thread thread = new Thread(new OyoahaEditCell(index));          thread.start();        }        else        {          if(index >= 0)          {            setEditIndex(index);          }          else          {            resetEditIndex();          }          cancelEdit();        }      }      else      {        resetEditIndex();        cancelEdit();      }      list.repaint();    }  }  protected class OyoahaEditCell implements Runnable  {    protected int index;    public OyoahaEditCell(int index)    {      this.index = index;    }    public void run()    {      try      {        Thread.sleep(100);        if(lastIndex == index && editing == false)        {          editing = true;          Rectangle r = list.getCellBounds(index, index);          Rectangle rv = list.getVisibleRect();          currentEditingIndex = index;          JTextField editCell = getEditCell();          editCell.setBounds(0,0,1,1);          editCell.setVisible(true);          File f = (File)list.getSelectedValue();          editCell.setText(getFileChooser().getName(f));          list.add(editCell);          editCell.setBounds(editX + r.x, r.y, r.width-editX, r.height);          editCell.selectAll();        }      }      catch(Exception e)      {      }    }  }  protected class OyoahaSelectionListener implements ListSelectionListener  {    public void valueChanged(ListSelectionEvent e)    {      if(!e.getValueIsAdjusting())      {        JFileChooser chooser = getFileChooser();        JList list = (JList)e.getSource();        if(chooser.isMultiSelectionEnabled())        {          Object[] objects = list.getSelectedValues();          if(objects != null)          {            File[] files = new File[objects.length];            for(int i = 0; i < objects.length; i++)            {              files[i] = (File)objects[i];            }//System.out.println("chooser.setSelectedFiles " + files.length);            chooser.setSelectedFiles(files);          }        }        else        {          File file = (File)list.getSelectedValue();          if(file != null)          {            chooser.setSelectedFile(file);          }        }      }    }  }          /*  private Action approveSelectionAction = new OyoahaApproveSelectionAction();      public Action getApproveSelectionAction()   {System.out.println("getApproveSelectionAction " + approveSelectionAction);	    return approveSelectionAction;  }*/    /**   * Responds to an Open or Save request   *//*  protected class OyoahaApproveSelectionAction extends AbstractAction   {      protected OyoahaApproveSelectionAction()       {          super("approveSelection");      }            public void actionPerformed(ActionEvent e)       {        if (isDirectorySelected())         {  	        File dir = getDirectory();  	        if (dir != null)             {  	            try                 {  		            // Strip trailing ".."  		            dir = dir.getCanonicalFile();  	            }                 catch (IOException ex)                 {  		            // Ok, use f as is  	            }                  	            getFileChooser().setCurrentDirectory(dir);  	            return;  	        }        }        JFileChooser chooser = getFileChooser();        String filename = getFileName();        FileSystemView fs = chooser.getFileSystemView();        File dir = chooser.getCurrentDirectory();        if (filename != null)         {  	        // Remove whitespace from beginning and end of filename  	        filename = filename.trim();        }        if (filename == null || filename.equals(""))         {  	        // no file selected, multiple selection off, therefore cancel the approve action//resetGlobFilter();  	        return;        }        File selectedFile = null;        File[] selectedFiles = null;        if (filename != null && !filename.equals(""))         {  	        // Unix: Resolve '~' to user's home directory  	        if (File.separatorChar == '/')             {  	            if (filename.startsWith("~/"))                 {  		            filename = System.getProperty("user.home") + filename.substring(1);  	            }                 else if (filename.equals("~"))                 {  		            filename = System.getProperty("user.home");  	            }  	        }  	        if (chooser.isMultiSelectionEnabled() && filename.startsWith("\""))             {  	            ArrayList fList = new ArrayList();  	            filename = filename.substring(1);  	                    if (filename.endsWith("\""))                 {  		            filename = filename.substring(0, filename.length()-1);  	            }  	                    do                 {  		            String str;                      		            int i = filename.indexOf("\" \"");  		            if (i > 0)                     {  		                str = filename.substring(0, i);  		                filename = filename.substring(i+3);  		            }                     else                     {  		                str = filename;  		                filename = "";  		            }                      		            File file = fs.createFileObject(str);  		                    if (!file.isAbsolute())                     {  		                file = fs.getChild(dir, str);  		            }          		            fList.add(file);                      	            }                 while (filename.length() > 0);                  	            if (fList.size() > 0)                 {  		            selectedFiles = (File[])fList.toArray(new File[fList.size()]);  	            }                //resetGlobFilter();  	        }             else             {                selectedFile = fs.createFileObject(filename);  	                    if(!selectedFile.isAbsolute())                 {  	                selectedFile = fs.getChild(dir, filename);  	            }                  	            // check for wildcard pattern  	            /*FileFilter currentFilter = chooser.getFileFilter();                  	            if (!selectedFile.exists() && isGlobPattern(filename))                 {  		            if (globFilter == null)                     {  		                globFilter = new GlobFilter();  		            }              		            globFilter.setPattern(filename);  		                    if (!(currentFilter instanceof GlobFilter))                     {  		                actualFileFilter = currentFilter;  		            }              		            chooser.setFileFilter(null);  		            chooser.setFileFilter(globFilter);  		            return;  	            }  	            resetGlobFilter();*//*  	            // Check for directory change action  	            boolean isDir = (selectedFile != null && selectedFile.isDirectory());  	            boolean isTrav = (selectedFile != null && chooser.isTraversable(selectedFile));  	            boolean isDirSelEnabled = chooser.isDirectorySelectionEnabled();  	            boolean isFileSelEnabled = chooser.isFileSelectionEnabled();  	            if (isDir && isTrav && !isDirSelEnabled)                 {  		            chooser.setCurrentDirectory(selectedFile);  		            return;  	            }                 else                 if ((isDir || !isFileSelEnabled) && (!isDir || !isDirSelEnabled) && (!isDirSelEnabled || selectedFile.exists()))                 {  		            selectedFile = null;  	            }  	        }        }                if (selectedFiles != null || selectedFile != null)         {  	        if (selectedFiles != null)             {  	            chooser.setSelectedFiles(selectedFiles);  	        }             else             if (chooser.isMultiSelectionEnabled())             {  	            chooser.setSelectedFiles(new File[] { selectedFile });  	        }             else             {  	            chooser.setSelectedFile(selectedFile);  	        }              	        chooser.approveSelection();        }         else         {  	        if (chooser.isMultiSelectionEnabled())             {   	            chooser.setSelectedFiles(null);  	        }             else            {  	            chooser.setSelectedFile(null);  	        }              	        chooser.cancelSelection();        }    }  }  /*private void resetGlobFilter()   {      if (actualFileFilter != null)       {          JFileChooser chooser = getFileChooser();          FileFilter currentFilter = chooser.getFileFilter();          if (currentFilter != null && currentFilter.equals(globFilter))           {  	        chooser.setFileFilter(actualFileFilter);  	        chooser.removeChoosableFileFilter(globFilter);          }          actualFileFilter = null;      }  }  private static boolean isGlobPattern(String filename)   {    return ((File.separatorChar == '\\' && filename.indexOf('*') >= 0) || (File.separatorChar == '/' && (filename.indexOf('*') >= 0 || filename.indexOf('?') >= 0 || filename.indexOf('[') >= 0)));  }*/  /* A file filter which accepts file patterns containing   * the special wildcard '*' on windows, plus '?', and '[ ]' on Unix.   */  /*class GlobFilter extends FileFilter   {      Pattern pattern;      String globPattern;      public void setPattern(String globPattern)       {          char[] gPat = globPattern.toCharArray();          char[] rPat = new char[gPat.length * 2];          boolean isWin32 = (File.separatorChar == '\\');          boolean inBrackets = false;          StringBuffer buf = new StringBuffer();          int j = 0;          this.globPattern = globPattern;      if (isWin32)       {  	// On windows, a pattern ending with *.* is equal to ending with *  	int len = gPat.length;  	if (globPattern.endsWith("*.*")) {  	    len -= 2;  	}  	for (int i = 0; i < len; i++) {  	    if (gPat[i] == '*') {  		rPat[j++] = '.';  	    }  	    rPat[j++] = gPat[i];  	}      } else {  	for (int i = 0; i < gPat.length; i++) {  	    switch(gPat[i]) {  	      case '*':  		if (!inBrackets) {  		    rPat[j++] = '.';  		}  		rPat[j++] = '*';  		break;  	      case '?':  		rPat[j++] = inBrackets ? '?' : '.';  		break;  	      case '[':  		inBrackets = true;  		rPat[j++] = gPat[i];  		if (i < gPat.length - 1) {  		    switch (gPat[i+1]) {  		      case '!':  		      case '^':  			rPat[j++] = '^';  			i++;  			break;  		      case ']':  			rPat[j++] = gPat[++i];  			break;  		    }  		}  		break;  	      case ']':  		rPat[j++] = gPat[i];  		inBrackets = false;  		break;  	      case '\\':  		if (i == 0 && gPat.length > 1 && gPat[1] == '~') {  		    rPat[j++] = gPat[++i];  		} else {  		    rPat[j++] = '\\';  		    if (i < gPat.length - 1 && "*?[]".indexOf(gPat[i+1]) >= 0) {  			rPat[j++] = gPat[++i];  		    } else {  			rPat[j++] = '\\';  		    }  		}  		break;  	      default:  		//if ("+()|^$.{}<>".indexOf(gPat[i]) >= 0) {  		if (!Character.isLetterOrDigit(gPat[i]))         {  		    rPat[j++] = '\\';  		}          		rPat[j++] = gPat[i];  		break;  	    }  	}      }            this.pattern = Pattern.compile(new String(rPat, 0, j), Pattern.CASE_INSENSITIVE);  }      public boolean accept(File f)       {          if (f == null)           {  	        return false;          }                    if (f.isDirectory())           {  	        return true;          }                    return pattern.matcher(f.getName()).matches();      }      public String getDescription()       {          return globPattern;      }  }*/}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -