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
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”)。非常感谢您的建议,这对我帮助很大。