Reputation: 1139
I'm trying to create simple GUI based on JFrame
which allows the user after click on some JButton
to show all .txt files in particular directory and print this "list" of file names into some JTextField
in that JFrame
. I'm new in the field of Java programming so could you help me, please.
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();
}
}
Upvotes: 0
Views: 2281
Reputation: 543
JTextArea
instead of JTextField
for printing in new lines.System.out.println
use setText
of JTextArea
setVisible(true)
and setSize(400,400)
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.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();
}
}
Upvotes: 1