我想在 JTextArea 中显示 url 的内容。我有一个指向 XML 文件的 url,我只想在 JTextArea 中显示文件的内容。我怎样才能做到这一点?
问问题
156 次
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
- 使用
java.net.URL
开放资源作为流(方法openStream()
)。 - 将整个加载为字符串
- 放置到您的文本区域
于 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
.
您可以将其插入JTextArea
using 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 回答