Java Swing,点击按钮,输出到JTextArea
我有两个类,其中一个是GUI 我的第一个类叫做MusicSearch.java,它有以下内容:Java Swing,点击按钮,输出到JTextArea,java,swing,jbutton,jtextarea,Java,Swing,Jbutton,Jtextarea,我有两个类,其中一个是GUI 我的第一个类叫做MusicSearch.java,它有以下内容: public static void directoryMusicLocator(File dir) { try { String[] filetype = new String[] { "mp3" }; // only search mp3 files System.out.println("Getting all .mp3 files in " +
public static void directoryMusicLocator(File dir) {
try
{
String[] filetype = new String[] { "mp3" }; // only search mp3 files
System.out.println("Getting all .mp3 files in " + dir.getCanonicalPath() + " including those in subdirectories");
List<File> files = (List<File>) FileUtils.listFiles(dir, filetype, true);
for (File file : files)
{
System.out.println(file.getAbsolutePath()); // get the file's absolute path
}
System.out.println("\nFinished Searching.");
}
catch (IOException e)
{
e.printStackTrace();
}
}
当运行输出并在文本字段中输入C:\Music时,可以看到以下输出示例:
C:\Music\Feint - Times Like These (Fracture Design Remix).mp3
C:\Music\Ficci - Climax (FREE).mp3
C:\Music\Ficci - Making Me Blue (FREE).mp3
现在我想要的是在JTextArea上显示的输出,但我不知道如何显示。有人能告诉我怎么做吗
谢谢
希望这有帮助:)
希望这对您有所帮助:)您只需在
目录MusicLocator
和FindMP3按钮操作执行方法中执行以下更改即可。您不需要直接打印,只需将内容存储在StringBuilder
中并返回,以便在JTextArea
中显示
public static String directoryMusicLocator(File dir) {
try
{
String[] filetype = new String[] { "mp3" }; // only search mp3 files
StringBuilder outString = new StringBuilder("Getting all .mp3 files in " + dir.getCanonicalPath() + " including those in subdirectories\n");
List<File> files = (List<File>) FileUtils.listFiles(dir, filetype, true);
for (File file : files)
{
outString.append(file.getAbsolutePath()+"\n"); // get the file's absolute path
}
outString.append("\nFinished Searching.");
return outString.toString()
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
}
private void findMP3ButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String fLocation = dirToSearch.getText(); // this gets the input from the textfield
File dir = new File(fLocation); // converts the location to path
String output = MusicSearch.directoryMusicLocator(dir);
// Replace <jTextArea> with your JTextArea field name
<jTextArea>.setText(output);
}
公共静态字符串目录musiclocator(文件目录){
尝试
{
字符串[]文件类型=新字符串[]{“mp3”};//仅搜索mp3文件
StringBuilder outString=new StringBuilder(“获取“+dir.getCanonicalPath()+”中的所有.mp3文件,包括子目录中的文件\n”);
List files=(List)FileUtils.listFiles(dir,filetype,true);
用于(文件:文件)
{
outString.append(file.getAbsolutePath()+“\n”);//获取文件的绝对路径
}
追加(“\n已完成搜索”);
return outString.toString()
}
捕获(IOE异常)
{
e、 printStackTrace();
返回null;
}
}
私有void findMP3ButtonActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
String fLocation=dirToSearch.getText();//从textfield获取输入
File dir=new File(fLocation);//将位置转换为路径
字符串输出=MusicSearch.directoryMusicLocator(dir);
//替换为JTextArea字段名
.setText(输出);
}
您只需在您的目录MusicLocator
和FindMP3按钮操作执行方法中执行以下更改即可。您不需要直接打印,只需将内容存储在StringBuilder
中并返回,以便在JTextArea
中显示
public static String directoryMusicLocator(File dir) {
try
{
String[] filetype = new String[] { "mp3" }; // only search mp3 files
StringBuilder outString = new StringBuilder("Getting all .mp3 files in " + dir.getCanonicalPath() + " including those in subdirectories\n");
List<File> files = (List<File>) FileUtils.listFiles(dir, filetype, true);
for (File file : files)
{
outString.append(file.getAbsolutePath()+"\n"); // get the file's absolute path
}
outString.append("\nFinished Searching.");
return outString.toString()
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
}
private void findMP3ButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String fLocation = dirToSearch.getText(); // this gets the input from the textfield
File dir = new File(fLocation); // converts the location to path
String output = MusicSearch.directoryMusicLocator(dir);
// Replace <jTextArea> with your JTextArea field name
<jTextArea>.setText(output);
}
公共静态字符串目录musiclocator(文件目录){
尝试
{
字符串[]文件类型=新字符串[]{“mp3”};//仅搜索mp3文件
StringBuilder outString=new StringBuilder(“获取“+dir.getCanonicalPath()+”中的所有.mp3文件,包括子目录中的文件\n”);
List files=(List)FileUtils.listFiles(dir,filetype,true);
用于(文件:文件)
{
outString.append(file.getAbsolutePath()+“\n”);//获取文件的绝对路径
}
追加(“\n已完成搜索”);
return outString.toString()
}
捕获(IOE异常)
{
e、 printStackTrace();
返回null;
}
}
私有void findMP3ButtonActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
String fLocation=dirToSearch.getText();//从textfield获取输入
File dir=new File(fLocation);//将位置转换为路径
字符串输出=MusicSearch.directoryMusicLocator(dir);
//替换为JTextArea字段名
.setText(输出);
}
与其调用将输出发送到标准输出蒸汽的System.out.println
,不如将其发送到文本区域。但是,如果不引用您正在使用的JTextArea
,您就无法做到这一点,因此您需要更改directoryMusicLocator
的签名,以包含JTextArea
,如下所示:
publicstaticvoid目录musiclocator(文件目录,JTextArea输出extarea){
然后,您需要将System.out.println(newText)
更改为outputTextArea.append(newText+System.getProperty(“line.separator”))
(用发送到JTextArea的参数替换“newText”)
最后,更改directoryMusicLocator(File)
-传递对JTextArea
的引用:MusicSearch.directoryMusicLocator(dir,jTextArea1)
您应该将其发送到文本区域,而不是调用将输出发送到标准输出蒸汽的System.out.println
。但是如果不引用您正在使用的JTextArea
,则无法执行此操作,因此需要更改directoryMusicLocator
的签名以包含JTextArea
类似于:
publicstaticvoid目录musiclocator(文件目录,JTextArea输出extarea){
然后,您需要将System.out.println(newText)
更改为outputTextArea.append(newText+System.getProperty(“line.separator”))
(用发送到JTextArea的参数替换“newText”)
最后,更改directoryMusicLocator(File)
-传递对JTextArea
的引用:MusicSearch.directoryMusicLocator(dir,jTextArea1)
我认为JTextArea的setText
方法应该这样做。我尝试过使用它,但它只输出JTextArea上按钮的变量名。我认为JTextArea的setText
方法应该这样做。我尝试过使用它,但它只输出t上按钮的变量名JTextArea一个稍微干净一点的方法是在JTextArea
s周围制作一个包装器,充当java.io.Writer
;这将允许您通过PrintWriter
与JTextArea
和系统进行接口TextArea
s充当java.io.Writer
;这将允许您与JT
public static String directoryMusicLocator(File dir) {
try
{
String[] filetype = new String[] { "mp3" }; // only search mp3 files
StringBuilder outString = new StringBuilder("Getting all .mp3 files in " + dir.getCanonicalPath() + " including those in subdirectories\n");
List<File> files = (List<File>) FileUtils.listFiles(dir, filetype, true);
for (File file : files)
{
outString.append(file.getAbsolutePath()+"\n"); // get the file's absolute path
}
outString.append("\nFinished Searching.");
return outString.toString()
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
}
private void findMP3ButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String fLocation = dirToSearch.getText(); // this gets the input from the textfield
File dir = new File(fLocation); // converts the location to path
String output = MusicSearch.directoryMusicLocator(dir);
// Replace <jTextArea> with your JTextArea field name
<jTextArea>.setText(output);
}