Java 打印JFrame中的文件列表

Java 打印JFrame中的文件列表,java,swing,Java,Swing,我正在尝试基于JFrame创建简单的GUI,它允许用户在单击某些JButton后显示特定目录中的所有.txt文件,并将文件名的“列表”打印到JFrame中的某个JTextField。我是Java编程领域的新手,你能帮我吗 package inputOutputProgram; import java.awt.FlowLayout; import java.awt.Font; import java.io.File; import javax.swing.JButton; import java

我正在尝试基于
JFrame
创建简单的GUI,它允许用户在单击某些
JButton
后显示特定目录中的所有.txt文件,并将文件名的“列表”打印到
JFrame
中的某个
JTextField
。我是Java编程领域的新手,你能帮我吗

package inputOutputProgram;

import java.awt.FlowLayout;
import java.awt.Font;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;


public class ProjectGUI extends JFrame {

JLabel label;
static JTextField tf;
JButton button;

public ProjectGUI() {       
    tf = new JTextField(10);
    add(tf);

}

void showFiles() {
      String path = "C:\\Users\\data"; 

      String files;
      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(".txt") || files.endsWith(".TXT"))
           {
              System.out.println(files);
            }
         }
      }
}


 public static void main(String[] args) {
     ProjectGUI print = new ProjectGUI();

     print.showFiles();
    }
}
包输入输出程序;
导入java.awt.FlowLayout;
导入java.awt.Font;
导入java.io.File;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JTextField;
公共类ProjectGUI扩展JFrame{
JLabel标签;
静态JTextField tf;
按钮;
公共项目GUI(){
tf=新的JTextField(10);
添加(tf);
}
void showFiles(){
String path=“C:\\Users\\data”;
字符串文件;
文件夹=新文件(路径);
File[]listOfFiles=folder.listFiles();
for(int i=0;i
  • 使用
    JTextArea
    而不是
    JTextField
    打印新行
  • 使用
    JTextArea的
    setText
    代替
    System.out.println
  • 要使JFrame可见,请调用
    setVisible(true)
    setSize(400400)
  • 包输入输出程序

    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.io.File;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextArea;
    
    
    public class ProjectGUI extends JFrame {
    
    JLabel label;
    static JTextArea tf;
    JButton button;
    
    public ProjectGUI() {
    
    
        tf = new JTextArea();
        add(tf);
    
        // set visible JFrame with some size (400x400)
        setSize(400,400);
        setVisible(true);
    
    }
    
    void showFiles() {
          String path = "C:\\Users\\data"; 
    
          String files;
          String fileNames = "";
          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(".txt") || files.endsWith(".TXT"))
               {
                  fileNames += "\n" + files;
                }
            }
          }
          tf.setText( fileNames );
    }
    
    
     public static void main(String[] args) {
    
         ProjectGUI print = new ProjectGUI();
    
         print.showFiles();
    
        }
    }
    
    导入java.awt.FlowLayout;
    导入java.awt.Font;
    导入java.io.File;
    导入javax.swing.JButton;
    导入javax.swing.JFrame;
    导入javax.swing.JLabel;
    导入javax.swing.JTextArea;
    公共类ProjectGUI扩展JFrame{
    JLabel标签;
    静态面积tf;
    按钮;
    公共项目GUI(){
    tf=新的JTextArea();
    添加(tf);
    //设置具有一定尺寸(400x400)的可视JFrame
    设置大小(400400);
    setVisible(真);
    }
    void showFiles(){
    String path=“C:\\Users\\data”;
    字符串文件;
    字符串文件名=”;
    文件夹=新文件(路径);
    File[]listOfFiles=folder.listFiles();
    for(int i=0;i
    您遇到了什么问题?您的问题不清楚。这只会将结果打印到控制台中,但我需要使用.txt文件名创建一些JTextField。“使用
    JList
    JTable
    JTree
    将文件名的“列表”打印到一些JTextField”(抖动)中。。另请参见,其中使用了最后两个。
    tf.setText()
    来设置文本使用JTextArea而不是JTextField。在System.out之后调用tf.append(files+“\n”)。非常感谢您的建议,这对我帮助很大。