我的计划有什么问题?我知道我犯了一个错误。但是哪里?

时间:2012-06-08 05:50:17

标签: java swing

运行时,我在控制台中收到此错误消息。我哪里出错了? “显示C:/Users/Nimit/Desktop/n.txt错误”

import java.io.IOException;
import javax.swing.*;
public class exmpleText
{
    public static void main(String[] args)
    {
        String url = "C:/Users/Nimit/Desktop/n.txt";
        try
        {
            JFrame frame=new JFrame("Hi");
            JEditorPane Pane = new JEditorPane(url);
            Pane.setEditable(false);
            frame.add(new JScrollPane(Pane));
        } 
        catch(IOException ioe) 
        {
            System.err.println("Error displaying " + url);
        }
    }
}

4 个答案:

答案 0 :(得分:5)

你的第一个错误是这一行。

    System.err.println("Error displaying " + url);

错误不在于它正在做什么,而是在做什么。还应该做的是打印(至少)异常消息,最好打印堆栈跟踪。


现在您已经看到/向我们展示了堆栈跟踪,很清楚底层错误是什么。字符串"C:/Users/Nimit/Desktop/n.txt"不是有效的网址。有效的文件URL以"file:"方案开头。

使用Windows驱动器号的文件URL写为"file:///C:/Users/Nimit/Desktop/n.txt"

参考http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx

或者,您可以使用new File("some path").toURL()将路径名转换为网址。

答案 1 :(得分:3)

您应该使用ioe.printStackTrace()

显示堆栈跟踪以了解实际情况
import java.io.IOException;
import javax.swing.*;

public class ExempleText {

    public static void main(String[] args) {
        String url = "C:/Users/Nimit/Desktop/n.txt";
        try {
            JFrame frame=new JFrame("Hi");
            JEditorPane Pane = new JEditorPane(url);
            Pane.setEditable(false);
            frame.add(new JScrollPane(Pane));
        } catch(IOException ioe) {
            System.err.println("Error displaying " + url);
            ioe.printStackTrace();
        }
    }
}

答案 2 :(得分:0)

更正后的代码

import java.io.*;
import javax.swing.*;
import java.net.*;

public class exmpleText
{

  public static void main(String[] args)
  {
    String url = "C:\\Users\\welcome\\z.txt";
    File f = new File(url);

    try
    {
      URL x = f.toURL();
      System.out.println(x);         

      JFrame frame=new JFrame("Hi");

      JEditorPane Pane = new JEditorPane(x);
      Pane.setEditable(false);

      frame.add(new JScrollPane(Pane));
      frame.setVisible(true);
    } 
    catch(Exception ioe) 
    {
      System.out.println(ioe);
      System.err.println("Error displaying " + url);
    }
  }
}

答案 3 :(得分:0)

在创建JFrame对象后添加此代码

 try{

editorPane.setContentType("text/html");

Reader fileRead=new FileReader(name); // name is the file you want to read

editorPane.read(fileRead,null);

} catch(Exception e) { 

e.printStackTrace();
}