【问题标题】:Java: Assigning Variables to an Array Based on User InputJava:根据用户输入将变量分配给数组
【发布时间】:2011-11-08 20:15:25
【问题描述】:

我是Java初学者,所以如果我犯了一些错误,请原谅我......

我有一个 JComboBox 分配给一个名为 fileNames 的数组。我的目标是让 JComboBox 显示某个目录中的所有文件名。到目前为止,我已经编写了代码,将目录中的所有文件分配给一个名为 files 的字符串。
代码:

package modmaker;

public class GuiBlocks2 extends JFrame {
    /**  
* 
*/
private static final long serialVersionUID = 1L;
public JFileChooser filePath;
FileEditor fileeditor = new FileEditor();
/**
 * Launch the application.
 */
static String files;
static String[] fileNames={files};
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                GuiBlocks2 frame = new GuiBlocks2();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    // Directory path here
    String path = "."; 
    File folder = new File(path);
    File[] listOfFiles = folder.listFiles(); 

    for (int i = 0; i < listOfFiles.length; i++) 
    {

    if (listOfFiles[i].isFile()) 
    {
        files = listOfFiles[i].getName();
        if (files.endsWith(".png") || files.endsWith(".PNG"))
        {
            System.out.println(files);
        }
    }
}
} 

在此之后,还有另一种方法可以添加分配给 fileNames 数组的组合框。我的问题:如何将所有文件分配给数组。

【问题讨论】:

  • 为什么是静态变量?为什么不在实例方法中只做你的类初始化代码(在 invokeLater 块中)?考虑不使用 Array 而是使用 DefaultComboBoxModel 并将文件名添加到此模型中,因为您在 for 循环中标识它们。

标签: java arrays methods combobox


【解决方案1】:

如果您想要当前目录中所有文件的数组,您可以简单地创建一个字符串对象并将每个文件名(在循环中)添加到它。您应该在它们之间添加一个分隔符,例如“:”。

我这样修改你的代码:

String fileList ="";
for (int i = 0; i < listOfFiles.length; i++) 
{

if (listOfFiles[i].isFile()) 
{
    files = listOfFiles[i].getName();
    fileList += files + ":";
    if (files.endsWith(".png") || files.endsWith(".PNG"))
    {
        System.out.println(files);
    }
}

现在如果你想得到一个包含所有文件名的数组,你可以简单地使用 split 方法。我将数组分配给一个名为 allFile 的新字符串数组;

String[] allFile = fileList.split(":");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多