1

我想在 JTextArea 中显示 url 的内容。我有一个指向 XML 文件的 url,我只想在 JTextArea 中显示文件的内容。我怎样才能做到这一点?

4

4 回答 4

2

用于 Html 内容的更好的 JComponent 将是JEditorPane/JTextPane,那么大多数网站应该在那里正确显示,或者您可以创建自己的 Html 内容,但是今天 Java6 支持 Html <=Html 3.2,这个论坛或这里有很多例子

于 2011-08-23T09:42:49.490 回答
1

假设它的 HTTP URL

打开 HTTPURLConnection 并读出内容

于 2011-08-23T09:30:27.167 回答
1
  1. 使用java.net.URL开放资源作为流(方法openStream())。
  2. 将整个加载为字符串
  3. 放置到您的文本区域
于 2011-08-23T09:32:14.960 回答
1

你可以这样做:

final URL myUrl= new URL("http://www.example.com/file.xml");
final InputStream in= myUrl.openStream();

final StringBuilder out = new StringBuilder();
final byte[] buffer = new byte[BUFFER_SIZE_WHY_NOT_1024];

try {
   for (int ctr; (ctr = in.read(buffer)) != -1;) {
       out.append(new String(buffer, 0, ctr));
   }
} catch (IOException e) {
   // you may want to handle the Exception. Here this is just an example:
   throw new RuntimeException("Cannot convert stream to string", e);
}

final String yourFileAsAString = out.toString();

然后你的文件的内容存储在被String调用的yourFileAsAString.

您可以将其插入JTextAreausing JTextArea.insert(yourFileAsAString, pos)或使用JTextArea.append(yourFileAsAString). 在最后一种情况下,您可以直接将读取的文本附加到 ,JTextArea而不是使用StringBuilder. 为此,只需从上面的代码中删除并按以下方式StringBuilder修改循环:for()

for (int ctr; (ctr = in.read(buffer)) != -1;) {
    youJTextArea.append(new String(buffer, 0, ctr));
}
于 2011-08-23T09:45:31.673 回答