﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Ryan's Java world!-文章分类-Java</title><link>http://www.blogjava.net/51AOP/category/9897.html</link><description>something about Java and opensource!</description><language>zh-cn</language><lastBuildDate>Mon, 31 May 2010 15:06:12 GMT</lastBuildDate><pubDate>Mon, 31 May 2010 15:06:12 GMT</pubDate><ttl>60</ttl><item><title>addStatesFromChildren 和跑马灯</title><link>http://www.blogjava.net/51AOP/articles/322381.html</link><dc:creator>冰雨</dc:creator><author>冰雨</author><pubDate>Mon, 31 May 2010 11:07:00 GMT</pubDate><guid>http://www.blogjava.net/51AOP/articles/322381.html</guid><wfw:comment>http://www.blogjava.net/51AOP/comments/322381.html</wfw:comment><comments>http://www.blogjava.net/51AOP/articles/322381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/51AOP/comments/commentRss/322381.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/51AOP/services/trackbacks/322381.html</trackback:ping><description><![CDATA[在Android中要显示跑马灯是比较容易的,只要设置2个属性就可以了:<br />
android:singleLine="true"<br />
android:ellipsize="marquee"<br />
<br />
但
是要显示跑马灯该View必需是可以取得焦点的,只有在取得焦点的情况下跑马灯才会出现.<br />
如果是组合View的情况下就有问题了,
如下一个组合View:<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">LinearLayout<br />
&nbsp;&nbsp;</span><span style="color: #ff0000;">xmlns:android</span><span style="color: #0000ff;">="http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:orientation</span><span style="color: #0000ff;">="vertical"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:gravity</span><span style="color: #0000ff;">="center_vertical"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:background</span><span style="color: #0000ff;">="@drawable/f_background"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:focusable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="50px"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TextView&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">android:id</span><span style="color: #0000ff;">="@+id/info_text"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:focusable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="wrap_content"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text</span><span style="color: #0000ff;">="test&nbsp;marquee&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" />..&nbsp;"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textColor</span><span style="color: #0000ff;">="@color/black"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:singleLine</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:ellipsize</span><span style="color: #0000ff;">="marquee"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:marqueeRepeatLimit</span><span style="color: #0000ff;">="3"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textSize</span><span style="color: #0000ff;">="18sp"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TextView&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">android:id</span><span style="color: #0000ff;">="@+id/date_text"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="wrap_content"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_gravity</span><span style="color: #0000ff;">="bottom"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textColor</span><span style="color: #0000ff;">="@color/gray"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text</span><span style="color: #0000ff;">="2010/05/28"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textSize</span><span style="color: #0000ff;">="12sp"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">LinearLayout</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<br />
上面示例中2个TextView组合为一个View,由于设置了LinearLayout为focusable而TextView就没法取得焦点了,这样
这个TextView的跑马灯效果就显示不出来,就算你也设置TextView的 <span style="margin-left: 0px ! important;"><code>android:focusable=</code><code>"true" </code></span>也是没用的. 这个时候就要使用addStatesFromChildren 这个属性了,在LinearLayout中设置这个属性,<span><span style="margin-left: 0px ! important;"><code>然后设置TextView的focusable=</code><code>"true"</code> <code>就可以了.关于
addStatesFromChildren的说明:<br />
<br />
</code></span></span><span><span style="margin-left: 0px ! important;"><code>Sets whether </code><code>this</code> <code>ViewGroup's drawable
states </code></span></span><span><span style="margin-left: 8px ! important;"><code>also include its children's drawable
states. <br />
<br />
可以正常显示的代码:<br />
</code></span></span>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">LinearLayout<br />
&nbsp;&nbsp;</span><span style="color: #ff0000;">xmlns:android</span><span style="color: #0000ff;">="http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:orientation</span><span style="color: #0000ff;">="vertical"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:gravity</span><span style="color: #0000ff;">="center_vertical"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:background</span><span style="color: #0000ff;">="@drawable/zixun_background"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:addStatesFromChildren</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="50px"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TextView&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">android:id</span><span style="color: #0000ff;">="@+id/info_text"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:focusable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="wrap_content"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text</span><span style="color: #0000ff;">="&nbsp;"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textColor</span><span style="color: #0000ff;">="@color/black"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:singleLine</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:ellipsize</span><span style="color: #0000ff;">="marquee"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:marqueeRepeatLimit</span><span style="color: #0000ff;">="3"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textSize</span><span style="color: #0000ff;">="18sp"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TextView&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">android:id</span><span style="color: #0000ff;">="@+id/date_text"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="wrap_content"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_gravity</span><span style="color: #0000ff;">="bottom"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textColor</span><span style="color: #0000ff;">="@color/gray"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text</span><span style="color: #0000ff;">="2010/05/28"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:textSize</span><span style="color: #0000ff;">="12sp"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">LinearLayout</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<br /><img src ="http://www.blogjava.net/51AOP/aggbug/322381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/51AOP/" target="_blank">冰雨</a> 2010-05-31 19:07 <a href="http://www.blogjava.net/51AOP/articles/322381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDK 6 探秘之一: Desktop </title><link>http://www.blogjava.net/51AOP/articles/112167.html</link><dc:creator>冰雨</dc:creator><author>冰雨</author><pubDate>Fri, 20 Apr 2007 04:48:00 GMT</pubDate><guid>http://www.blogjava.net/51AOP/articles/112167.html</guid><wfw:comment>http://www.blogjava.net/51AOP/comments/112167.html</wfw:comment><comments>http://www.blogjava.net/51AOP/articles/112167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/51AOP/comments/commentRss/112167.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/51AOP/services/trackbacks/112167.html</trackback:ping><description><![CDATA[<div class=postentry>
<p>前一段时间从网络上下载了 Java.6.Platform.Revealed.Jul.2006.这本书, 现在JDK 6已经发布了, 就来看看里面都有什么新东西吧 . 今天就开始谈谈JDK6中的东东, 看看有那些东西可以让我们激动一下. 先来看看这个位于java.awt 包中的Desktoop类吧. 看名字就可以猜到是干什么的.</p>
<p>Desktop中有一些Action来支持对文件或者URI的BROWSE, EDIT, MAIL, OPEN, and PRINT操作. 记得以前为了使用java调用浏览器打开个URL要写很多代码. 现在有了这个Desktop一切就容易多了. 看看他的文档 <a href="http://download.java.net/jdk6/docs/api/java/awt/Desktop.html"><font color=#e58712>http://download.java.net/jdk6/docs/api/java/awt/Desktop.html</font></a>&nbsp; , 就那么几个方法, 不多,但是都很常用. 不是吗, 下面来看一个例子:</p>
<p><font size=2><font face="Courier New"><strong><font color=#7f0055>import&nbsp;</font></strong><font color=#000000>java.awt.*;</font><br><font color=#7f0055><strong>import&nbsp;</strong></font><font color=#000000>java.io.*;</font><br><font color=#7f0055><strong>import&nbsp;</strong></font><font color=#000000>java.net.*;</font><br><font color=#ffffff></font><br><font color=#7f0055><strong>public&nbsp;class&nbsp;</strong></font><font color=#000000>DesktopTest&nbsp;</font><font color=#000000>{</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#7f0055><strong>public&nbsp;static&nbsp;</strong></font><font color=#7f0055><strong>void&nbsp;</strong></font><font color=#000000>main</font><font color=#000000>(</font><font color=#000000>String&nbsp;args</font><font color=#000000>[])&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#7f0055><strong>if&nbsp;</strong></font><font color=#000000>(</font><font color=#000000>!Desktop.isDesktopSupported</font><font color=#000000>())&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.err.println</font><font color=#000000>(</font><font color=#2a00ff>"Desktop&nbsp;not&nbsp;supported!"</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.exit</font><font color=#000000>(</font><font color=#000000>-</font><font color=#990000>1</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>Desktop&nbsp;desktop&nbsp;=&nbsp;Desktop.getDesktop</font><font color=#000000>()</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>String&nbsp;path;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#7f0055><strong>if&nbsp;</strong></font><font color=#000000>(</font><font color=#000000>args.length&nbsp;==&nbsp;</font><font color=#990000>0</font><font color=#000000>)&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>path&nbsp;=&nbsp;</font><font color=#2a00ff>"."</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>}&nbsp;</font><font color=#7f0055><strong>else&nbsp;</strong></font><font color=#000000>{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>path&nbsp;=&nbsp;args</font><font color=#000000>[</font><font color=#990000>0</font><font color=#000000>]</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#7f0055><strong>try&nbsp;</strong></font><font color=#000000>{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>File&nbsp;fi&nbsp;=&nbsp;</font><font color=#7f0055><strong>new&nbsp;</strong></font><font color=#000000>File</font><font color=#000000>(</font><font color=#2a00ff>"test.txt"</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>desktop.print</font><font color=#000000>(</font><font color=#000000>fi</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>desktop.browse</font><font color=#000000>(</font><font color=#7f0055><strong>new&nbsp;</strong></font><font color=#000000>URI</font><font color=#000000>(</font><font color=#2a00ff>"http://blog.matrix.org.cn/icess"</font><font color=#000000>))</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>}&nbsp;</font><font color=#7f0055><strong>catch&nbsp;</strong></font><font color=#000000>(</font><font color=#000000>Exception&nbsp;ioe</font><font color=#000000>)&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.out.println</font><font color=#000000>(</font><font color=#000000>ioe</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>File&nbsp;dir&nbsp;=&nbsp;</font><font color=#7f0055><strong>new&nbsp;</strong></font><font color=#000000>File</font><font color=#000000>(</font><font color=#000000>path</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>File&nbsp;files</font><font color=#000000>[]&nbsp;</font><font color=#000000>=&nbsp;dir.listFiles</font><font color=#000000>()</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#7f0055><strong>for&nbsp;</strong></font><font color=#000000>(</font><font color=#000000>File&nbsp;file:&nbsp;files</font><font color=#000000>)&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.out.println</font><font color=#000000>(</font><font color=#2a00ff>"Open&nbsp;"&nbsp;</font><font color=#000000>+&nbsp;file.getName</font><font color=#000000>()&nbsp;</font><font color=#000000>+&nbsp;</font><font color=#2a00ff>"?&nbsp;[YES/NO]&nbsp;:"</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#7f0055><strong>if&nbsp;</strong></font><font color=#000000>(</font><font color=#000000>desktop.isSupported</font><font color=#000000>(</font><font color=#000000>Desktop.Action.OPEN</font><font color=#000000>))&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>String&nbsp;line&nbsp;=&nbsp;System.console</font><font color=#000000>()</font><font color=#000000>.readLine</font><font color=#000000>()</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#7f0055><strong>if&nbsp;</strong></font><font color=#000000>(</font><font color=#2a00ff>"YES"</font><font color=#000000>.equals</font><font color=#000000>(</font><font color=#000000>line</font><font color=#000000>))&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.out.println</font><font color=#000000>(</font><font color=#2a00ff>"Opening...&nbsp;"&nbsp;</font><font color=#000000>+&nbsp;file.getName</font><font color=#000000>())</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#7f0055><strong>try&nbsp;</strong></font><font color=#000000>{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>desktop.open</font><font color=#000000>(</font><font color=#000000>file</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>}&nbsp;</font><font color=#7f0055><strong>catch&nbsp;</strong></font><font color=#000000>(</font><font color=#000000>IOException&nbsp;ioe</font><font color=#000000>)&nbsp;{</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.out.println</font><font color=#000000>(</font><font color=#000000>ioe</font><font color=#000000>)</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>System.err.println</font><font color=#000000>(</font><font color=#2a00ff>"Unable&nbsp;to&nbsp;open:&nbsp;"&nbsp;</font><font color=#000000>+&nbsp;file.getName</font><font color=#000000>())</font><font color=#000000>;</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#ffffff>&nbsp;&nbsp;</font><font color=#000000>}</font><br><font color=#000000>}</font></font></font> </p>
</div><img src ="http://www.blogjava.net/51AOP/aggbug/112167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/51AOP/" target="_blank">冰雨</a> 2007-04-20 12:48 <a href="http://www.blogjava.net/51AOP/articles/112167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BPEL和BPELJ常见问题解答</title><link>http://www.blogjava.net/51AOP/articles/42962.html</link><dc:creator>冰雨</dc:creator><author>冰雨</author><pubDate>Tue, 25 Apr 2006 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/51AOP/articles/42962.html</guid><wfw:comment>http://www.blogjava.net/51AOP/comments/42962.html</wfw:comment><comments>http://www.blogjava.net/51AOP/articles/42962.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/51AOP/comments/commentRss/42962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/51AOP/services/trackbacks/42962.html</trackback:ping><description><![CDATA[<span id="LblTitle">BPEL和BPELJ常见问题解答<br /><br /><span id="LblContent"><b>Q:什么是 BPEL？</b><br />A: BPEL是一门用于自动化业务流程的形式规约语言。 用XML文档写入BPEL中的流程能在Web 服务之间以标准化的交互方式得到精心组织。这些流程能够在任何一个符合BPEL规范的平台或产品上执行。 所以，通过允许顾客们在各种各样的创作工具和执行平台之间移动这些流程，BPEL使得他们保护了他们在流程自动化上的投资。尽管以前想使业务流程定义标准化，但BPEL已经引起了史无前例的兴趣，而且它最早在软件供应商中获得大量认可。 
<p><b>Q: BPEL、WSBPEL和 BPEL4WS之间的区别是什么?</b><br />A: 除了历史参考文献不同外，没有什么其他的不同。这些名字都涉及到相同的未决标准。“BPEL4WS”是起初规范的名字，它由BEA、IBM和Microsoft编写和公布的。“WSBPEL”目前是规范和未决标准的名称。当这个规范提交到OASIS时,出于Web服务相关标准的努力，按照OASIS命名方案更换了这个名字。尽管如此，大部分团体仍然简单地称这个标准为“BPEL”。 </p><p><b>Q: 什么是 BPELJ？</b><br />A: BPELJ 是BPEL和Java 语言的组合，它允许一起运用这两种编程语言来构建完整的业务流程应用程序。通过允许BPEL和Java一起工作， BPELJ使得每种语言可以做它最擅长的事。BPELJ优于BPEL，但没有它那么有竞争力。</p><p><b>Q:如何把BPELJ和 BPEL联系起来，它们之间区别在哪里？</b><br />A: BPEL基本上向编程发展，它支持业务处理流程的逻辑。这些业务处理流程是独立的应用程序，这些应用使用Web服务作为实现业务功能的活动。BPEL 不会成为一门通用的编程语言。然而，有人认为BPEL将和用来实现业务功能的其他语言（少部分的编程）结合起来。为了方便BPEL和Java 结合起来，BPELJ对BPEL做了一些小的改动并且做了一些扩展。</p><p><b>Q: BPEL不是针对业务分析员吗? 如果是，为什么把Java加进来?</b><br />A: 有这么一个普遍的误解，那就是BPEL想达到非程序设计人员或者所谓的“业务分析员”也能使用的程度。这个错误的概念部分根源于市场上许多针对于这组用户的业务流程管理工具这样的一个事实。无可置疑，工具供应商为构建BPEL和BPELJ流程提供了广泛的可视化接口，但是语言本身的目的是为了开发人员。</p><p><b>Q: BPELJ如何工作？</b><br />A: 通过允许在BPEL流程定义中包含Java代码段（称为Java片断），BPELJ使得Java 和BPEL能够相互协作。 </p><p><b>Q: 难道不应该考虑允许使用任何语言（C#、JavaScript和Java等）来设计代码片断吗？</b><br />A: 这个片断背后想法是有代表性，我们希望它能用于许多不同的语言。然而，要集成BPEL和一门特定的语言包含的不仅仅是用XML包装目标语言。集成变量绑定、事务管理、调用路径等问题必须周全地定义，然而，每种语言是用不同的方法解决这些问题，对所有语言进行统一的绑定是不现实的。所以， BPELJ集中解决 BPEL 和 Java的这些集成问题。我们期待着解决其他的语言的集成问题 。 </p><p><b>Q: 难道BPELJ 没违反“ BPEL中活动是Web服务，数据是XML,数据结构用XML架构描述”这一原则吗？</b><br />A: 并不是世界上所有的服务都是Web服务，它们也不应该是。用J2EE更适合紧密耦合的系统，在这种系统中，容器提供的功能如安全和事务是特别有价值的。那些把业务逻辑部署成J2EE组件的人员应该能够在业务流程中充分利用这些组件，BPEL是描述这个过程最好的一门语言。<br />一些人争论说在程序片断中用Java来完成少量计算和数据操作非常合适，但是应该通过XML/Web服务视图强制所有服务调用。这是一个特别站不住脚的观点。如果您有一个用Java代码片断写的流程，很明显，有一个Java开发人员参与创建这个流程。<br />这意味着您可能有下面的设想：有一个开发人员熟悉用Java调用组件，他想用Java操纵组件的输入和输出。迫使那个人把所有的调用看成好像是调用Web 服务一样，这会产生一层混乱，阻止考虑业务逻辑。 </p><p><b>Q: 这意味着现在用在WebLogic Integration 8.1上的流程定义无效了吗？</b><br />A: 根本不会，BEA 在2003年策划并倡导了JSR 207，把流程定义（命名为“JPD”）提交给 WebLogic Integration 8.1，并把它作为小组工作的初始基础。 BEA 和 IBM 已经提交BPELJ 给 JSR 207 工作小组考虑。BPELJ 和 JPD有很多相同的地方，事实上它已经开始详细设计使得今后JPD能平稳迁移到BPELJ上 。 </p><p><b>Q: 如何把BPELJ和 JSR 207联系起来？</b><br />A: BPELJ已经提交给 JSR 207，并建议考虑使用BPELJ作为JSR 工作的基础。</p><p><b>Q: 这对BPEL意味着什么？它将会作为一个标准分裂出来么？ IBM 和 BEA 正在放弃BPEL么？</b><br />A: 根本不会。BPELJ是一个完全在BPEL标准的核心思想和意图之内的延伸。为了提供一个完全的流程设计环境，一直以来都希望BPEL能和其他的语言结合。IBM 和 BEA 都承诺支持BPEL 并且继续作为OASIS的主要的贡献者，正在努力达到语言的标准化。</p><p><b>Q: BEA对于BPEL和BPELJ的产品计划是什么？</b><br />A: 对于在2004年春季时间范围内的WebLogic Integration 8.1，BEA将提供一个BPEL导出工具 ，在下一个重要的WebLogic Integration发布中充分支持最终BPEL标准。 BEA 也在下一个重要的WebLogic Integration发布中对BPELJ提供充分的支持。</p><p><b>Q: 如果我现在用WebLogic Integration 8.1会怎样呢？我能迁移到BPELJ吗？</b><br />A: 是的，在下一个重要的WebLogic Integration 发布中， BEA将为从JPD自动迁移到BPEL/BPELJ上提供工具。 </p><p>　　原文出处：<a href="http://dev2dev.bea.com/technologies/bpel/bpel_faq.jsp" target="_blank"><font color="#002c99">http://dev2dev.bea.com/technologies/bpel/bpel_faq.jsp</font></a></p></span></span><img src ="http://www.blogjava.net/51AOP/aggbug/42962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/51AOP/" target="_blank">冰雨</a> 2006-04-25 10:36 <a href="http://www.blogjava.net/51AOP/articles/42962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>