标签: jfilechooser

禁用文件选择器中的新文件夹按钮不能正常工作

我使用以下代码禁用新的"文件夹"按钮:

 public void disableNewFolderButton( Container c ) {

     System.out.print("in disable fn");
int len = c.getComponentCount();
for (int i = 0; i < len; i++) {
  Component comp = c.getComponent(i);
  if (comp instanceof JButton) {
    JButton b = (JButton)comp;
    Icon icon = b.getIcon();
    if (icon != null
         && icon == UIManager.getIcon("FileChooser.newFolderIcon"))
    {
        System.out.print("in disable fn");
       b.setEnabled(false);
    }
    }
  else if (comp instanceof Container) {
    disableNewFolderButton((Container)comp);
  }
}
 }
Run Code Online (Sandbox Code Playgroud)

代码在以下行中调用:

   JFileChooser of=new JFileChooser();
    of.setAcceptAllFileFilterUsed(false);
    of.addChoosableFileFilter(new MyFilter());
    disableNewFolderButton(of);
Run Code Online (Sandbox Code Playgroud)

但是,仅在首次显示文件选择器时才会禁用新文件夹按钮.假设我去了一些驱动器,比如说g :,那么按钮再次启用.如何设置这个权利?

java swing jfilechooser

2
推荐指数
1
解决办法
2576
查看次数

FileFilter for JFileChooser不会过滤文件 - 不是为什么,有代码

我想只选择带有FileChooser的.csv文件,但是当选择器打开时,我会看到所有扩展名.我需要更多地设置更多吗?

        btnFile.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e){
                        chooser = new JFileChooser(); 
                        chooser.setCurrentDirectory(new java.io.File("."));
                        chooser.setDialogTitle("Choose Value File");
                        chooser.addChoosableFileFilter(new CSVFilter());

                        if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
                          System.out.println("getCurrentDirectory(): " 
                             +  chooser.getCurrentDirectory());
                          System.out.println("getSelectedFile() : " 
                             +  chooser.getSelectedFile());
                          }
                        else {
                          System.out.println("No Selection ");
                          }

            }
        });
Run Code Online (Sandbox Code Playgroud)

和Filter是嵌套类

class CSVFilter extends javax.swing.filechooser.FileFilter {
      public boolean accept(File f) {

        return f.isFile() || f.getName().toLowerCase().endsWith(".csv");
      }

      public String getDescription() {
        return "*.csv";
      }
    }
Run Code Online (Sandbox Code Playgroud)

java swing jfilechooser filefilter

2
推荐指数
1
解决办法
3521
查看次数

使用DefaultListCellRenderer设置JList图标?

下面的代码应该从JFileChooser获取默认目录图标,然后在我自定义的"Recent Directories"列表中使用该图标,该列表作为JFileChooser对话框的附件提供.有人可以解释为什么下面的代码不起作用(特别是为什么在DefaultListRenderer上的setIcon没有做到这一点),并告诉我如何将图标放在JList中的每个项目旁边?我宁愿避免实现我自己的ListCellRenderer,除非这是使其工作的唯一方法.

import java.awt.*;
import java.io.File;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class Chooser extends JPanel {
   private static final String[] BUTTON_TEXTS = { "Hello", "Goodbye",
         "Hello Goodbye", "Adios", "This is a long String for WTF", "Hello",
         "Goodbye", "Hello Goodbye", "Adios", "This string WTF" };

   public Chooser(Icon icon) {
      this.setLayout(new BorderLayout());

      JPanel labelPanel = new JPanel(new BorderLayout());
      JLabel label = new JLabel("Recent Directories:");
      labelPanel.add(label, BorderLayout.LINE_START);
      labelPanel.setBackground(Color.LIGHT_GRAY);
      labelPanel.setBorder(new EmptyBorder(5, 10, 5, 0));

      DefaultListModel model = new DefaultListModel();
      JList …
Run Code Online (Sandbox Code Playgroud)

java swing jfilechooser

2
推荐指数
1
解决办法
6222
查看次数

JFileChooser没有出现

我有一个方法,将txt文件作为输入.我曾经通过键入文件的直接路径来使用字符串.但每当我尝试使用不同的文件进行输入时,它就会变得很麻烦.我尝试实施,JFileChooser但没有运气.

这是代码,但没有发生任何事情.

public static JFileChooser choose;
File directory = new File("B:\\");
choose = new JFileChooser(directory);
choose.setVisible(true);        
File openFile = choose.getSelectedFile();

FileReader fR = new FileReader(openFile);
BufferedReader br = new BufferedReader(fR);
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jfilechooser

2
推荐指数
1
解决办法
7232
查看次数

尝试读取文件时获取java.io.FileNotFoundException

我正在编写一个小应用程序,它读取csv文件并将内容显示到JList中.

我目前的问题是new FileReader(file)代码一直给我一个java.io.FileNotFoundException错误,我不太清楚为什么.

loadFile.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent actionEvent)
            {
                JFileChooser fileChooser = new JFileChooser();
                fileChooser.setCurrentDirectory(new File("~/"));

                if (fileChooser.showOpenDialog(instance) == JFileChooser.APPROVE_OPTION)
                {
                    File file = fileChooser.getSelectedFile();
                    CSVReader reader = new CSVReader(new FileReader(file.getAbsolutePath()));
                    fileLocation.setText(file.getAbsolutePath());

                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

java swing jfilechooser filenotfoundexception opencsv

2
推荐指数
1
解决办法
1531
查看次数

检查JFileChooser是否选择了1个或多个文件

如何检查我JFilechooser是否选择了一个文件或多个文件?

java swing jfilechooser file

2
推荐指数
1
解决办法
1800
查看次数

"保存"对话框不会向文件添加扩展名

我有一个按钮,打开一个保存对话框窗口,其中设置了默认扩展过滤器.当我保存文件时,它会在正确的文件夹中创建它,但它不会在末尾添加扩展名.如何根据过滤器将扩展名添加到文件末尾?这是我的保存文件按钮代码:

    btnNewButton = new JButton("Export File");
    btnNewButton.addActionListener (new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            final JFileChooser finder = new JFileChooser();
            finder.setFileFilter(new FileNameExtensionFilter("Board Files", "boa"));
            int returnVal = finder.showSaveDialog(null);
            if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
                java.io.File file = finder.getSelectedFile();
                String file_name = file.toString();
                JOptionPane.showMessageDialog(null, file_name);
                WriteFile data = new WriteFile(file_name);              
                try {
                    data.writeToFile("Testing 1");
                } catch (IOException e) {
                    System.out.println(e.getMessage());
                }
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

java swing jfilechooser savefiledialog

2
推荐指数
1
解决办法
1万
查看次数

这个JFileChooser有什么问题

我创建了简单的gui应用程序,JFilechooser用于打开pdf文件.gui有一个浏览按钮和一个textArea来可视化文件的内容.

我创建了两个类:Gui(包含main())和GuiJFrame来实现gui,处理程序和监听器.我设法获得了窗口应用程序,但浏览按钮似乎不起作用.我不知道我哪里弄错了,请帮帮我

import java.awt.EventQueue;

public class Gui {
    /** Launch the application. */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Gui window = new Gui();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /** Create the application. */
    public Gui() {
        initialize();
    }

    /** Initialize the contents of the frame. */
    private void initialize() {
        GuiJFrame guiJFrame = new GuiJFrame();
        guiJFrame.setVisible(true);
    }

}
Run Code Online (Sandbox Code Playgroud)


import java.awt.BorderLayout;
import java.awt.FlowLayout;
import …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jfilechooser

2
推荐指数
1
解决办法
327
查看次数

通过JFileChooser获取所选文件的类型

我正在编写一个程序来从中选择文件JFileChooser.如何获取文件类型(例如,该文件是" .dxt "或" .dtml "的" .dat "等.)

我有以下代码.我应该怎么添加额外的线?

JFileChooser choice = new JFileChooser();
int option = choice.showOpenDialog(this);
if (option == JFileChooser.APPROVE_OPTION)
{
     String path=choice.getSelectedFile().getAbsolutePath();
     String filename=choice.getSelectedFile().getName();
     System.out.println(path);
     listModel.addElement(path);
     System.out.println(filename);
}
Run Code Online (Sandbox Code Playgroud)

java swing jfilechooser

2
推荐指数
1
解决办法
6000
查看次数

FilenameUtils.getExtension比较返回false

我对这种比较感到非常困惑FilenameUtils.getExtension.

我有一个文件选择器fc,我想确保扩展名是.csv.

JFileChooser fc = new JFileChooser();
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION &&
    fc.getSelectedFile().isFile() &&
    FilenameUtils.getExtension(fc.getSelectedFile().getName()) == "csv") {
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

经过一些调试后,我发现最后一个语句负责没有执行if语句.

FilenameUtils.getExtension(fc.getSelectedFile().getName()) == "csv"
Run Code Online (Sandbox Code Playgroud)

但是我做了很多,System.out.println()并得到了

System.out.println(FilenameUtils.getExtension(fc.getSelectedFile().getName()));
Run Code Online (Sandbox Code Playgroud)

打印csv.但是当我输入时仍然返回false:

System.out.println(FilenameUtils.getExtension(fc.getSelectedFile().getName()) == "csv");
Run Code Online (Sandbox Code Playgroud)

java csv swing jfilechooser string-comparison

2
推荐指数
2
解决办法
235
查看次数