有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing使用Java文件选择器导入文件

我在使用Java JFileChooser时遇到问题,不知道是否有人能帮我解决。这可能很简单,但我就是看不出哪里出了问题

当我点击我的导入按钮时,JFileChooser窗口会很好地打开,我可以导航到任何字段,但我无法将它们读入我的JTextFields

下面是我的JFileChooser方法:

public void importFile() {
    JFileChooser chooser = new JFileChooser();//A
    if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { //a
        try {
            BufferedReader file_in = new BufferedReader(
            new FileReader(chooser.getSelectedFile().getPath()));
            int i = 0;

            String name = "",hnumber = "", mnumber = "", address = "";

            while (((fileLines = file_in.readLine()) != null)) {
                if (fileLines.length() > 0) {
                    i++;
                    if (i == 1) {
                        name = fileLines;
                    } else if (i == 2) {
                        hnumber = fileLines;
                    } else if (i == 3) {
                        mnumber = fileLines;
                    } else if (i == 4) {
                        address = fileLines;

                        String[] nameArray = name.split(" ");

                        Contact c = new Contact (nameArray[1], nameArray[0], 
                        hnumber, mnumber, address);
                        contactList.add(c);
                        index = 0;
                    }
                }
            }

            for (int j = 0; j < contactList.size(); j++) {
                System.out.print(contactList.get(j).getname());
                System.out.print(" ");
                System.out.println(contactList.get(j).getmnumber());
                System.out.println(contactList.get(j).gethnumber());
                System.out.println(contactList.get(j).getaddress());
                System.out.println(contactList.get(j).getsurname());
                System.out.println(" ");
            }

        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }
}

共 (2) 个答案

  1. # 1 楼答案

    您应该使用列表或StringBuilder,以便于获取线条。你有没有发现任何错误?调试将真正有助于查看程序在哪里中断

    下面是我很快为你准备的东西:

    public void importFile() {
        JFileChooser chooser = new JFileChooser();//A
        if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { //a
            try {
                FileReader fr = new FileReader(chooser.getSelectedFile().getPath());
                BufferedReader file_in = new BufferedReader(fr);
                List lines = new List();
                String line = new String("");
                while ((line = file_in.readLine()) != null) {
                    list.add(line);
                    if (list.size() >= 3) {
                        String[] nameArray = ((String)list.get(0)).split(" ");
                        Contact c = new Contact (nameArray[1], nameArray[0], 
                                (String)list.get(1), (String)list.get(2), 
                                (String)list.get(3));
                        contactList.add(c);
                    }
                    System.out.println(list.get(list.size()-1)); // Debug
                }
            }
            catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    }
    

    我没有编译,所以可能有一些打字错误之类的

  2. # 2 楼答案

    它导入到一个名为“contactList”的数组列表中,您可以在底部第5行看到该列表。所以它不会直接进入JTextFields,但无论如何我都无法让它工作