我对编程很新,我只是编写了一个applet程序,它应该列出目录中的文件。 applet在eclipse中运行良好,但问题是当我尝试在GUI加载的浏览器中运行applet时,applet将不会像在eclipse中那样响应。任何帮助将不胜感激。 :)
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JApplet;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class DirReader extends JApplet{
private JTextArea outputWindow;
private JTextField dirPath;
private String path;
private Font font;
private File folder;
private File[] listOfFiles;
public void init(){
font = new Font("Times New Roman", Font.PLAIN, 16);
dirPath = new JTextField("Enter Directory Path");
dirPath.setFont(font);
outputWindow = new JTextArea();
outputWindow.setEditable(false);
outputWindow.setFont(font);
outputWindow.setBackground(Color.DARK_GRAY);
outputWindow.setForeground(Color.ORANGE);
add(dirPath, BorderLayout.NORTH);
add(outputWindow, BorderLayout.CENTER);
setSize(400,750);
dirPath.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event) {
path = dirPath.getText();
folder = new File(path);
listOfFiles = folder.listFiles();
System.out.println("Directory path set");
ListOfFiles();
}
}
);
System.out.println("Progam Intilized:");
}
public void ListOfFiles(){
outputWindow.setText(null);
try{
for(int counter = 0 ; counter < listOfFiles.length ; counter++ ){
if(listOfFiles[counter].isFile()){
outputWindow.append("[FILE] " + listOfFiles[counter].getName()+ "\n");
System.out.println("[FILE] " + listOfFiles[counter].getName());
}
else if(listOfFiles[counter].isDirectory()){
outputWindow.append("[DIR] " + listOfFiles[counter].getName() + "\n");
System.out.println("[DIR] " + listOfFiles[counter].getName());
}
}
}catch(Exception e){
System.out.println("Error: Directory could not be found.");
outputWindow.setText("Error: Could not find directory.");
}
}
}
答案 0 :(得分:0)
当然它在浏览器中不起作用
由于
当applet作为安全预防措施在浏览器中运行时,无法访问本地文件系统上的读取文件。
<强>解决方案强>
将您的程序作为桌面应用程序在桌面上运行NOT Applet 在浏览器中运行
答案 1 :(得分:0)
顺便说一句:
}catch(Exception e){
应该成为..
}catch(Exception e){
e.printStackTrace(); //...
请务必弄明白如何访问Java Console以查看输出。调试没有这些信息的小程序就像试图通过盲目调试来调试。