我正在开发一个客户端Java应用程序,它具有一些功能,需要从一些以JSON传输的Web服务中获取数据(一些是RESTful,一些不是).没有JavaScript,没有Web浏览器,只是一个普通的JAR文件,它将使用Swing为GUI本地运行.
这不是一个新的或独特的问题; 肯定有一些开源库可以通过HTTP处理JSON数据传输.我已经发现了一些将解析JSON,但我找不到任何能够处理HTTP通信来使用JSON Web服务的东西.
到目前为止,我发现Apache Axis2显然可能至少有部分解决方案,但我没有看到足够的文档知道它是否能满足我的需要,或者如何使用它.也许问题的一部分是我没有Web服务的经验,所以当我看到它时,我无法知道解决方案.我希望你们中的一些人能指出我正确的方向.例子会有所帮助.
我试图了解Element的用途以及它如何帮助操作将在JEditorPane或JTextPane中显示的StyledDocument.我也试图理解它与"段落"概念的关系.
javax.swing.text.Element的javadoc几乎没有:
public interface Element
接口,用于描述文档的结构部分.它旨在捕捉SGML元素的精神.
我非常熟悉HTML和XML中元素的概念,显然这是类似的,但我无法看到它与StyledDocument相关的目的.起初我认为它只是StyledDocument内部用来管理不同样式的停止点和起点的东西,但后来我在Web上看到了使用Element实例的代码示例.
我已经有了自己的数据树结构,我需要以不同的字体和颜色显示,遍历它会告诉我在哪里根据需要更改字体或颜色.看起来我能够通过对StyledDocument.setCharacterAttributes和setParagraphAttributes的一系列调用来满足当前的需求,而不需要自己触摸Element.
但我得到的印象是使用Element会更高效或更清洁.请帮助我正确理解Element以及它如何帮助StyledDocument和paragrah的概念,所以即使我现在不使用任何元素我至少会欣赏我所缺少的东西,并且知道是否和如何将它用于下一个类似的情况.
我有一个电子表格已经保存了一些数据,然后在同一个硬盘驱动器上同一个文件夹中的新电子表格中我试图引用以前保存的电子表格文件中的单元格.
从我读过的内容(例如http://www.taming-openoffice-org.com/newsite/?page_id=633),我应该点击Insert顶部菜单Link to External Data,然后选择文件和单元格(s)在"外部数据"弹出对话框中.但在我选择文件后,"确定"按钮仍处于禁用状态,"可用表/范围"框仍为空白.这在Linux和Windows XP版本中都会发生.我究竟做错了什么?
如果我选中"每次更新"复选框,则没有区别; 我仍然无法做任何事情因为OK按钮仍然被禁用.
我有一个SwingWorker,它在后台读取和处理文件,然后在JTextPane中格式化并显示各种样式的数据.
如果文件很大(超过200K),我将显示一个带进度条的对话框.在SwingWorker的done()方法中,我填充了JTextPane,然后隐藏了对话框.done()方法如下所示:
protected void done() {
populateTextPane();
hideProgressDialog();
System.out.println("After hideProgressDialog");
}
Run Code Online (Sandbox Code Playgroud)
当它运行时,我将看到对话框消失,控制台上的println消息,但GUI再冻结10-15秒,数据在冻结结束时在JTextPane中可见.
我认为在done()方法中发生的任何事情都会发生在Event Dispatch Thread中.但显然JVM正在产生另一个线程来隐藏对话框并在填充JTextPane时执行println.我想保持显示进度对话框,直到GUI准备好再次接受用户输入...如何检测done()中的所有内容何时完成?
java ×3
swing ×2
axis2 ×1
coding-style ×1
element ×1
java-client ×1
jeditorpane ×1
json ×1
swingworker ×1
web-services ×1