??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成av人片在线观看无码不卡,亚洲AV无码成人网站在线观看 ,亚洲大尺度无码专区尤物http://www.tkk7.com/tommyjian/category/23110.html生活是一个目标,接着一个目标?/description>zh-cnWed, 18 Jul 2007 09:45:52 GMTWed, 18 Jul 2007 09:45:52 GMT60译QOpenOffice.org API介绍Q三Q?/title><link>http://www.tkk7.com/tommyjian/archive/2007/07/18/131000.html</link><dc:creator>Tommy Jian</dc:creator><author>Tommy Jian</author><pubDate>Wed, 18 Jul 2007 03:37:00 GMT</pubDate><guid>http://www.tkk7.com/tommyjian/archive/2007/07/18/131000.html</guid><wfw:comment>http://www.tkk7.com/tommyjian/comments/131000.html</wfw:comment><comments>http://www.tkk7.com/tommyjian/archive/2007/07/18/131000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tommyjian/comments/commentRss/131000.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tommyjian/services/trackbacks/131000.html</trackback:ping><description><![CDATA[<h3>  3.3  数据的设|?/h3> <p>   我们需要用的有三U类型的数据。在开始之前,我们需要有个方法来获得对单元格的访问。这一节的其他辅助性方法也用此Ҏ(gu)Q定义如下:(x) </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> XCell getXCellByPosition(XSpreadsheet xSpreadsheet, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> x, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> y)<br></span><span style="color: #0000ff;">    throws</span><span style="color: #000000;"> Exception <br>{<br></span><span style="color: #0000ff;">    return</span><span style="color: #000000;"> xSpreadsheet.getCellByPosition(x, y);<br>}<br></span></div> <p> </p> <p>   </p> <p>   首先Q我们将要接触到文本cd的数据,比如说Javalobby文章的标题。对于这U数据,辅助性方法需要电(sh)子表对象、列位置、行位置以及数据本n作ؓ(f)参数? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setTextValueOfXCellAtPosition(XSpreadsheet<br>    xSpreadsheet, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> x, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> y, String value) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception <br>{<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">We first identify the cell we need to work with,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">using the incoming x and y values:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCell xCell </span><span style="color: #000000;">=</span><span style="color: #000000;"> getXCellByPosition(xSpreadsheet, x, y);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Next, since we're working with text, we define<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">a text object and a cursor object and insert the received content into the cell:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XText xText </span><span style="color: #000000;">=</span><span style="color: #000000;"> (com.sun.star.text.XText)UnoRuntime.queryInterface(com.sun.<br>        star.text.XText.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, xCell);<br>    XTextCursor xTextCursor </span><span style="color: #000000;">=</span><span style="color: #000000;"> xText.createTextCursor();<br>    xText.insertString(xTextCursor, value, </span><span style="color: #0000ff;">false</span><span style="color: #000000;">);<br>}<br></span></div> <p> </p> <p>   其次Q对于数字类型的数据Q比如说“Reply”列的数据Q辅助性方法要求传递doublecd的参敎ͼ(x) </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setNumValueOfXCellAtPosition(XSpreadsheet<br>    xSpreadsheet, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> x, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> y, </span><span style="color: #0000ff;">double</span><span style="color: #000000;"> value) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception <br>{<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">First we get the cell identified by the received x and y values:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCell xCell </span><span style="color: #000000;">=</span><span style="color: #000000;"> getXCellByPosition(xSpreadsheet, x, y);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Then we add the received value to the identified cell:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCell.setValue(value);<br>}<br></span></div> <p> </p> <p>   最后,管Calc的公式是普通的字符Ԍ我们可以使用OpenOffice.org的API所包含的单元格样式属性来为单元格讄预定义的“Result”样式Q这主要是针Ҏ(gu)们汇d复L的计公式来q行讄Q? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setFormulaOfXCellAtPosition(XSpreadsheet<br>    xSpreadsheet, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> x, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> y, String formula) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception <br>{<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">We get the cell defined by the incoming x and y values"</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCell xCell </span><span style="color: #000000;">=</span><span style="color: #000000;"> getXCellByPosition(xSpreadsheet, x, y);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">We add a Calc formula to the cell, as received by the helper method:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCell.setFormula(formula);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">We attach a property set to our cell, so that we can define a property:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XPropertySet xCellProps </span><span style="color: #000000;">=</span><span style="color: #000000;"> (XPropertySet)UnoRuntime.<br>        queryInterface(XPropertySet.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, xCell);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">We set the style of the cell, using a predefined "Result" style,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">which comes out of the box with the OpenOffic.org API:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCellProps.setPropertyValue(</span><span style="color: #000000;">"</span><span style="color: #000000;">CellStyle</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #000000;">"</span><span style="color: #000000;">Result</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>}<br></span></div> <p> </p> <h3>  3.4  颜色的?/h3> <p>   下面的代码将在随后被使用Q? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">if</span><span style="color: #000000;"> (position</span><span style="color: #000000;">%</span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) <br>{<br>    oooHelper.setColorRow(xSpreadsheet, position, </span><span style="color: #000000;">0xFF9933</span><span style="color: #000000;">);<br>}<br></span></div> <p> </p> <p>   在ARGB颜色I间中,0xFF9933代表色。如果行数是偶数Q那么电(sh)子表、行C及橙色会(x)被作为参C递给Ҏ(gu)Q? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setColorRow(XSpreadsheet<br>    xSpreadsheet, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> row, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> color) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception <br>{<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">First we get the range of cells we want to deal with,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">which is the whole spreadsheet:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCellRange xCellRange </span><span style="color: #000000;">=</span><span style="color: #000000;"> (XCellRange)UnoRuntime.queryInterface<br>        ( XCellRange.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, xSpreadsheet );<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Next, we narrow down our selection further,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">going from column 0/current row to column 3/current row,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">which is a whole row from left to right:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCellRange xSelectedCells </span><span style="color: #000000;">=</span><span style="color: #000000;"> xCellRange.getCellRangeByPosition(</span><span style="color: #000000;">0</span><span style="color: #000000;">, row, </span><span style="color: #000000;">3</span><span style="color: #000000;">, row);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Next, we create a property set and assign it to our selected range:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XPropertySet xCellProps </span><span style="color: #000000;">=</span><span style="color: #000000;"><br>        (XPropertySet)UnoRuntime.queryInterface(XPropertySet.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,xSelectedCells);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">This line sets the color to white, which basically<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">refreshes the row color before we add our new row color:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCellProps.setPropertyValue(</span><span style="color: #000000;">"</span><span style="color: #000000;">CellBackColor</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Integer(</span><span style="color: #000000;">16777215</span><span style="color: #000000;">));<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">This line sets the color to whatever is received,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">in this case orange:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCellProps.setPropertyValue(</span><span style="color: #000000;">"</span><span style="color: #000000;">CellBackColor</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Integer(color));<br>}<br></span></div> <p> </p> <p>   如果用户需要看?#8220;Most Replies”或?#8220;Least Replies”Q我们将使用以下代码q行讄Q? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">ooHelper.setColorCell(xSpreadsheet, </span><span style="color: #000000;">2</span><span style="color: #000000;">, jTable1.getRowCount()</span><span style="color: #000000;">+</span><span style="color: #000000;">5</span><span style="color: #000000;">, </span><span style="color: #000000;">0x008000</span><span style="color: #000000;">);</span></div> <p> </p> <p>   以下的方法需要电(sh)子表、列数、行C及颜色g为参敎ͼ(x) </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setColorCell(XSpreadsheet xSpreadsheet, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> column, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> row, </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> color)<br></span><span style="color: #0000ff;">    throws</span><span style="color: #000000;"> Exception <br>{<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">First, we select the entire received spreadsheet:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCellRange xCellRange </span><span style="color: #000000;">=</span><span style="color: #000000;"> (XCellRange)UnoRuntime.queryInterface( XCellRange.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,<br>        xSpreadsheet );<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">From the received spreadsheet, we select a single cell,<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">defined by the row and column received:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XCellRange xSelectedCells </span><span style="color: #000000;">=</span><span style="color: #000000;"> xCellRange.getCellRangeByPosition(column,<br>        row, column, row);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">We define a property set, an object to contain the cell's properties:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XPropertySet xCellProps </span><span style="color: #000000;">=</span><span style="color: #000000;"> (XPropertySet)UnoRuntime.queryInterface<br>        (XPropertySet.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, xSelectedCells);<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">This line sets the color to white, to refresh the cell:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCellProps.setPropertyValue(</span><span style="color: #000000;">"</span><span style="color: #000000;">CellBackColor</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Integer(</span><span style="color: #000000;">16777215</span><span style="color: #000000;">));<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">This line sets the background color of the cell to whatever is received:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xCellProps.setPropertyValue(</span><span style="color: #000000;">"</span><span style="color: #000000;">CellBackColor</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Integer(color));<br>}<br></span></div> <p> </p> <hr> <p><strong>本文译自NetBeans.org中的文章,其中的代码也都经q译者测试。未完待l!Q!</strong></p><img src ="http://www.tkk7.com/tommyjian/aggbug/131000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tommyjian/" target="_blank">Tommy Jian</a> 2007-07-18 11:37 <a href="http://www.tkk7.com/tommyjian/archive/2007/07/18/131000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>译QOpenOffice.org API介绍Q二Q?/title><link>http://www.tkk7.com/tommyjian/archive/2007/07/16/130460.html</link><dc:creator>Tommy Jian</dc:creator><author>Tommy Jian</author><pubDate>Mon, 16 Jul 2007 00:07:00 GMT</pubDate><guid>http://www.tkk7.com/tommyjian/archive/2007/07/16/130460.html</guid><wfw:comment>http://www.tkk7.com/tommyjian/comments/130460.html</wfw:comment><comments>http://www.tkk7.com/tommyjian/archive/2007/07/16/130460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tommyjian/comments/commentRss/130460.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tommyjian/services/trackbacks/130460.html</trackback:ping><description><![CDATA[<h3>  3.2  ?sh)子表格文档的徏立和加?/h3> <p>   上一节描q的Ҏ(gu)帮助我们从服务管理器中获取了com.sun.star.frame.Desktop服务。Desktop可以Ҏ(gu)l定的URL来加载新的或者已l存在的lg。ؓ(f)了提供这L(fng)服务QDesktop实现了com.sun.star.frame.XcomponentLoader接口Q这个接口只有一个方法根据给定的URL加蝲和实例化对应的组件。要构徏一个新的电(sh)子表格文档组Ӟ可以使用“private:factory/scalc”q样的URL。关于更详细的信息请参考OpenOffice.org开发指南《第8?nbsp; ?sh)子表格》中?.2.1 “?sh)子表格文的徏立和加?#8221;?/p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> XComponent getSpreadsheetComponent(Object desktop, String templateURL)<br></span><span style="color: #0000ff;">    throws</span><span style="color: #000000;"> Exception <br>{<br>    XComponentLoader xComponentLoader </span><span style="color: #000000;">=</span><span style="color: #000000;"><br>        (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, desktop);<br>    PropertyValue[] pPropValues;<br>    pPropValues </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> PropertyValue[</span><span style="color: #000000;">0</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">    return</span><span style="color: #000000;"> xComponentLoader.loadComponentFromURL(templateURL, </span><span style="color: #000000;">"</span><span style="color: #000000;">_blank</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">, pPropValues);<br>}<br></span></div> <p> </p> <p>   下面q个Ҏ(gu)由用户界面所调用Q在调用之前用户需要将必要的参C递给上面代码中描q的Ҏ(gu)Q? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">XComponent xSpreadsheetComponent </span><span style="color: #000000;">=</span><span style="color: #000000;"><br>    oooHelper.getSpreadsheetComponent(desktop, </span><span style="color: #000000;">"</span><span style="color: #000000;">private:factory/scalc</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span></div> <p> </p> <p>   接着Q我们需要获取电(sh)子表格文档对象:(x) </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> XSpreadsheetDocument getXSpreadsheetDocument(XComponent xSpreadsheetComponent) <br></span><span style="color: #0000ff;">    throws</span><span style="color: #000000;"> Exception<br>{<br></span><span style="color: #0000ff;">    return</span><span style="color: #000000;">(XSpreadsheetDocument)UnoRuntime.queryInterface<br>        (XSpreadsheetDocument.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, xSpreadsheetComponent);<br>}<br></span></div> <p> </p> <p>   下一个定义的Ҏ(gu)QgetXSpreadsheet( )Q定义如下,q个Ҏ(gu)帮助我们_定位要与哪个?sh)子表格文q行交互。默认情况下QCalc应用E序在启动的时候就已经建立好了三个?sh)子表。这三个?sh)子表的名称分别?#8220;Sheet1”?#8220;Sheet2”?#8220;Sheet3”Q这三个?sh)子表?x)随着(zhn)启动Calc应用E序而打开。如果?zhn)字W串“Sheet1”传递给getXSpreadsheet( )Ҏ(gu)Q那么接下来(zhn)所做的改动都将?#8220;Sheet1”?sh)子表中q行。然而,(zhn)或许想要给自定义的?sh)子表v一个不同于默认命名方式的名字。比如说Q?zhn)?sh)子表命名?#8220;Javalobby Article Analyzer”。如果?zhn)这个名字作为参C递给getXSpreadsheet( )Ҏ(gu)Q一个以此字W串命名的电(sh)子表被构徏? </p> <p>   然而,默认情况下,?#8220;Sheet1”的电(sh)子表仍然是当前电(sh)子表Q所谓当前电(sh)子表是在应用程序启动时呈现在用户面前的那个?sh)子表。无论?zhn)是否新徏电(sh)子表,默认的三个?sh)子表始终都是存在的。假如?zhn)惛_(zhn)自己定义的?sh)子表设为当前状态,(zhn)可以有两种选择。一U是使用在getXSpreadsheet( )Ҏ(gu)之后定义的getXActiveSpreadsheet( )Ҏ(gu)Q另外?zhn)可以直接默认的三个电(sh)子表删除掉Q就如下面的getXSpreadsheet( )Ҏ(gu)中的一P而一旦这三个?sh)子表被删除之后也就只剩下(zhn)自定义的那个电(sh)子表了Q所剩的最后一个电(sh)子表也就理所当然地成为当前电(sh)子表了? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> XSpreadsheet getXSpreadsheet(XSpreadsheetDocument xSpreadsheetDocument, String name)<br></span><span style="color: #0000ff;">    throws</span><span style="color: #000000;"> Exception <br>{<br>    XSpreadsheets xSpreadsheets </span><span style="color: #000000;">=</span><span style="color: #000000;"> xSpreadsheetDocument.getSheets();<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">See section 2.5.2 of the OpenOffice.org API:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    xSpreadsheets.insertNewByName(name, (</span><span style="color: #0000ff;">short</span><span style="color: #000000;">)</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br>    Object sheet </span><span style="color: #000000;">=</span><span style="color: #000000;"> xSpreadsheets.getByName(name);<br>    xSpreadsheets.removeByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">Sheet1</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>    xSpreadsheets.removeByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">Sheet2</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>    xSpreadsheets.removeByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">Sheet3</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">    return</span><span style="color: #000000;"> (XSpreadsheet)UnoRuntime.queryInterface(XSpreadsheet.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, sheet);<br>}<br></span></div> <p> </p> <p>   接下来的Ҏ(gu)是如何将?sh)子表设为当前?sh)子表Q? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> XSpreadsheet getXActiveSpreadsheet(XComponent xSpreadsheetComponent,<br>    XSpreadsheet xSpreadsheet) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception <br>{<br>    XModel xSpreadsheetModel </span><span style="color: #000000;">=</span><span style="color: #000000;"> (XModel)UnoRuntime.queryInterface(XModel.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,<br>        xSpreadsheetComponent);<br>    XController xSpreadsheetController </span><span style="color: #000000;">=</span><span style="color: #000000;"> xSpreadsheetModel.getCurrentController();<br>    XSpreadsheetView xSpreadsheetView </span><span style="color: #000000;">=</span><span style="color: #000000;"> (XSpreadsheetView)UnoRuntime.<br>        queryInterface(XSpreadsheetView.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">, xSpreadsheetController);<br>    xSpreadsheetView.setActiveSheet(xSpreadsheet);<br></span><span style="color: #0000ff;">    return</span><span style="color: #000000;"> xSpreadsheet;<br>}<br></span></div> <p> </p> <hr> <p><strong>本文译自NetBeans.org中的文章,其中的代码也都经q译者测试。未完待l!Q!</strong></p><img src ="http://www.tkk7.com/tommyjian/aggbug/130460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tommyjian/" target="_blank">Tommy Jian</a> 2007-07-16 08:07 <a href="http://www.tkk7.com/tommyjian/archive/2007/07/16/130460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>译QOpenOffice.org API介绍Q一Q?/title><link>http://www.tkk7.com/tommyjian/archive/2007/07/12/129886.html</link><dc:creator>Tommy Jian</dc:creator><author>Tommy Jian</author><pubDate>Thu, 12 Jul 2007 09:36:00 GMT</pubDate><guid>http://www.tkk7.com/tommyjian/archive/2007/07/12/129886.html</guid><wfw:comment>http://www.tkk7.com/tommyjian/comments/129886.html</wfw:comment><comments>http://www.tkk7.com/tommyjian/archive/2007/07/12/129886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tommyjian/comments/commentRss/129886.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tommyjian/services/trackbacks/129886.html</trackback:ping><description><![CDATA[<h3>1.引言</h3>   <p>   许多商业应用E序允许用户在应用程序中生成Z某些数据的报表。电(sh)子表格特别适合用于生成q样的报表。电(sh)子表g仅可以将数据l格式化以后以结构化的Ş式展现给用户Q而且为用h供了快速且高效的数据处理功能。正如上面所说的QOpenOffice.org的API提供了大量的cdҎ(gu)以方便开发者将OpenOffice.org?sh)子表格的功能集成到他们自己的应用程序中。在应用E序中,单击某个按钮可以启动OpenOffice.orgq将应用E序生成的数据以自定义电(sh)子表格的形式展现出来? </p> <p>   新手可能p个开发领域很自然地提Z个问题:(x)“一旦开发者正地安装了所有需要的软g后,一个应用程序如何启动OpenOffice.org的新实例以及如何获取q接呢?”。这个问题得C需要的回答之后Q开发者还可能提出Q?#8220;现在用户应用E序已经获取了OpenOffice.org的连接,那么应用E序应该如何这些数据嵌入到?sh)子表格中呢Q?#8221;。在q篇文章中,我们首先着重满不熟?zhn)OpenOffice.org的API的开发者的两个基本的需求。我们将向开发者展C如何获取到OpenOffice.org的连接,如何应用程序的数据转化为电(sh)子表格Ş式的数据。接着我们讨Z些其他的主题Q这些主题包括以~程方式构徏和析构电(sh)子表根{设|电(sh)子表格的单元格的背景颜色以及单元D框的格式化。然而,q里需要注意的是我们只xOpenOffice.org本n的集成,Z代码的可L我们忽略了诸如错误处理之类的问题。在q篇文章的结,(zhn)将对OpenOffice.org的API处理?sh)子表格和如何在?zhn)自q应用E序中利用它们的相关知识有所了解? </p> <p>   q篇文章涉及的应用程序是ZSwing的应用程序,它通过使用OpenOfiice.org的API来访问OpenOffice.org的各U功能。当Ӟ(zhn)也可以使用C++或者COM/DCOM技术来q接OpenOffice.org。此cd用程序的代码q不一定必d于Swing来编写。这L(fng)应用E序可以使用C++、Java servlet、Java Server Page、JavaScript、VBScript、Delphi以及Visual Basic来编写。这文章中使用的基于Swing的应用程序将使用NetBeans IDE来构建,q且使用NetBeans Platform作ؓ(f)起始炏V尽Q何集成开发工具都可以被用来构建如此简单的应用E序Q但是用NetBeansq行开发具有两优ѝ首先,在NetBeans中我们可以充分发挥GUI构徏器(即MatisseQ的功能来构建用L(fng)面,GUI构徏器可以帮助我们快速徏立应用程序界面的原型。其ơ,我们的应用E序ZNetBeans Platform意味着我们不需要再重头开始,而且我们可以通过其提供的模块框架来增强应用程序的可扩展性。这个应用程序将生成如下图所C的不需要Q何后期处理的?sh)子表格文档Q? </p> <p style="text-align: center;"><img src="http://www.tkk7.com/images/blogjava_net/tommyjian/24065/o_intro-oo.jpg" border="0"></p> <p>   ?sh)子表格中的数据来自于JTablelg。在现实情况下,q些数据往往来源于数据库中。在上面q及的应用程序中Q我们将把数据硬~码在程序代码中Q这主要是因为数据的来源问题已经出本篇文章的范围了。无论数据是否是来自于数据库Q当用户已经完成了数据的处理后,应用E序把JTable中的数据转换生成?sh)子表格来呈现。除了数据之外,上面的图q展CZ以下几个元素Q这些元素将在下面的章节中述及:(x) </p> <ul> <li>  表头Q电(sh)子表格有一行用特D颜ԌpԌ标识的表头? </li> <li>  行颜色的交错Q电(sh)子表g的其他行的颜色是交错的,有的背景色是桔色Q而有的是白色? </li> <li>  高或者低的回复,最后一列展CZ某篇文章相关的回复数量,回复量比较高的行的背景颜色是l色Q而回复量比较低的行的背景颜色是红Ԍ另外Q在主表格的下方的两个单元格分别使用相同的颜色来标识高或者低回复文章的作者? </li> <li>  回复的LQ?#8220;Reply”列的最后一行的下方的单元格昄了d复数Q这个单元格的格式与其他的单元格不太一Pd复数是通过OpenOffice.org的API来用Calc的公式计得到的? </li> <li> ?sh)子表格名称Q在上面囑Ş的左下角Q?zhn)可以看?#8220;Javalobby Analysis”q样的名Uͼ而?zhn)q没有看到Calc打开时的默认的电(sh)子表Q名UCؓ(f)“Sheet1”?#8220;Sheet2”?#8220;Sheet3”Q,如下文所阐述的,?sh)子表的名称的更改和默认电(sh)子表的U除都可以用编E方式来实现? </li> </ul> <p>   q篇文章被分Z部分Q这三部分按序描述了开发的q程Q? </p> <ol> <li>  化重复的~码dQ这一节中我们了解OpenOffice.org的API中可复用的元素,而这些元素将在后面的章节中被集成到我们的应用E序中? </li> <li>建立用户界面原型Qؓ(f)了测试最后一节中的业务逻辑Q我们将构徏Swing应用E序的原型? </li> <li> 集成辅助性方法,应用E序的核心是辅助性方法和用户界面集成hQƈ且执行计,生成?sh)子表格? </li> <ol></ol> </ol> <h3>2.pȝ需?/h3> <p>   在开始之前,请先认以下的Y件已l安装好了:(x) </p> <ul> <li>OpenOffice.orgQ尽这文章中的代码也兼容Star OfficeQ但是因为我们用OpenOffice.org的API相关的JAR文gQ所以最好是安装OpenOffice.org。我们将使用在OpenOffice.org的安装目录下的四个JAR文gQ?zhn)可以在OpenOffice.org 2.0\program\classes文g夹中扑ֈ以下四个JAR文gQjuh.jar、jurt.jar、ridl.jar和unoil.jar? </li> <li>NetBeans IDEQ这文章关注的是OpenOffice.org的APIQ其中讨论的代码可以使用很多U编E语a描述Q可以供多种语言~写的应用程序用。如果?zhn)x文章中描述的基于Swing的应用程序,(zhn)就需要去下蝲NetBeans 5.0或者更高的版本? </li> </ul> <p>   注意Q这文章中展现的应用场景ƈ不需要用OpenOffice.org SDK。如果我们要使用SDK中的idlc或者javamaker{工P那么q个时候才需要SDK? </p> <h3>3.背景知识Q简化重复的~码工作</h3> <p>   当我们用OpenOffice.org的API工作Ӟ我们可能?x)重复地执行某些d。比如说Q我们设|电(sh)子表D头的颜色Q但是同时我们也需要设|其他各行的颜色。实际上Q我们经怺替地讄各行的颜Ԍq样可以使得?sh)子表格中的行更?gu)分L。如果某文章的回复数比较高Q我们会(x)对应的行设|ؓ(f)不同的颜Ԍl色Q,而回复数比较低的行也被设|ؓ(f)不同的颜ԌU色Q。行的颜色的讄需要编写用OpenOffice.org的API中的很多Ҏ(gu)的几行代码,而ؓ(f)了避免重复编写相同的代码Q我们将q些代码l织C个辅助性方法当中去Q在需要进行设|的时候,我们只需要将颜色作ؓ(f)参数传递就可以了。这可以使我们的代码易读性更好,更容易维护。下面我们将更详l地讨论q些辅助性方法? </p> <p>   误住,以下q及的辅助性方法可以用于Q何应用程序,q些辅助性方法ƈ不依赖于本篇文章里述及的应用E序。换句话_(d)(zhn)可以充分地利用q些辅助性方法,在需要的时候不需要对代码q行M修改可以将q些代码_脓(chung)到应用程序的Java文g中用。?zhn)也可以在?zhn)的代码中引用这些代码,像q篇文章中做的一栗? </p> <h3>  3.1 使用引导E序</h3> <p>   OpenOffice.org的Java API有自qҎ(gu)来引导OpenOffice.org。所?#8220;引导”OpenOffice.orgQ我们的意思是加蝲OpenOffice.org的启动程序。这通过Ljuh.jar文g所在的位置Q然后在q个位置或者上一U目录查找sofficeQ?exeQ来实现。这需要将juh.jar文g|于pȝ变量CLASSPATH所描述的目录中Q这h章构建的应用E序可以访问到q个文g。然而,q里需要将juh.jar文g随同应用E序一起分发,q种情况下,q种引导机制׃奏效了? </p> <p>   Z解决q个问题Q有两种可能的方法。首先,可以保Java随时都可以查扑ֈsofficeQ?exeQ,q可以通过包含可执行文g的目录加入到Windows的PATHpȝ变量中(在Mac、Unix和Linux中就是LD_LIBRARY_PATHpȝ变量Q。这U方法需要用戯行一些操作,而我们ƈ不希望这样做? </p> <p>   因此Q我们更們֐于推荐第二种Ҏ(gu)Q这U方法需要与讉K修饰W协同工作。在Sun的JDK中,ClassLoaderpȝcLURLClassLoadercȝ实例。这个类有一个私有方法addURLQ这个方法在Javapȝ开始的时候将被调用,从而将JAR文g以及其他相关资源d到系l环境中。通过反射机制Q我们获取一个URLClassLoader的实例,?dng)后使得addURLҎ(gu)辑ֈ可访问状态,然后再将包含可执行文件的目录d到URLClassLoader的URL栈中。这虽然昑־很晦涩,但是q种Ҏ(gu)很奏效? </p> <p>   但是Q它真的那么奏效吗?与系l类的访问修饰周旋L一件冒险的事情。addURLҎ(gu)被声明ؓ(f)protected型的Q自然有其理由。另外,谁能保证使用的一定是Sun的JDK呢?或者Sun可能在随后的版本中忽略这个方法?然而,Java规范对上q这些事情ƈ没有作出明确的声明,因此别的JDK在默认情况下q不是将ClassLoadercȝcd配置为URLClassLoader。正是这个原因,我们使用“loader instanceof URLClassLoader”q样的检查代码来保事情是如预期那样的。这也是我们在用h有用Sun的JDK的情况下保应用E序没有M异常情况而需付出的代仗? </p> <p>   关于q程中构建对象的更详l的信息请参考OpenOffice.org的开发指南《第6?nbsp; Office开发》? </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;"> Object simpleBootstrap(String pathToExecutable) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception <br>{<br>    </span><span style="color: #008000;">//</span><span style="color: #008000;">Get the executable from the incoming String:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    String ooBaseDirectory </span><span style="color: #000000;">=</span><span style="color: #000000;"> pathToExecutable.replaceAll(</span><span style="color: #000000;">"</span><span style="color: #000000;">soffice(.exe){0,1}$</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br>    System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Your ooBaseDir is: </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> ooBaseDirectory);<br>    ClassLoader loader </span><span style="color: #000000;">=</span><span style="color: #000000;"> ClassLoader.getSystemClassLoader();<br></span><span style="color: #0000ff;">    if</span><span style="color: #000000;"> (loader </span><span style="color: #0000ff;">instanceof</span><span style="color: #000000;"> URLClassLoader){<br>        URLClassLoader cl </span><span style="color: #000000;">=</span><span style="color: #000000;"> (URLClassLoader)loader;<br>        Class sysclass </span><span style="color: #000000;">=</span><span style="color: #000000;"> URLClassLoader.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">        try</span><span style="color: #000000;"> {<br>            Method method </span><span style="color: #000000;">=</span><span style="color: #000000;"> sysclass.getDeclaredMethod<br>                (</span><span style="color: #000000;">"</span><span style="color: #000000;">addURL</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Class[]{URL.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">});<br>            method.setAccessible(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br>            method.invoke(cl, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Object[]{</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> File(ooBaseDirectory).toURL()});<br>        } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Throwable t) {<br>            t.printStackTrace();<br></span><span style="color: #0000ff;">            throw</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> IOException(</span><span style="color: #000000;">"</span><span style="color: #000000;">Error, could not add URL to system classloader</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>        }<br>    } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {<br>        System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Error occured, URLClassLoader expected but </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"><br>        loader.getClass() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;"> received. Could not continue.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>    }<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Get the office component context:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XComponentContext xContext </span><span style="color: #000000;">=</span><span style="color: #000000;"> Bootstrap.bootstrap();<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Get the office service manager:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    XMultiComponentFactory xServiceManager </span><span style="color: #000000;">=</span><span style="color: #000000;"> xContext.getServiceManager();<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">Create the desktop, which is the root frame of the<br></span><span style="color: #008000;">    //</span><span style="color: #008000;">hierarchy of frames that contain viewable components:</span><span style="color: #008000;"><br></span><span style="color: #000000;">    Object desktop </span><span style="color: #000000;">=</span><span style="color: #000000;"> xServiceManager.createInstanceWithContext<br>        (</span><span style="color: #000000;">"</span><span style="color: #000000;">com.sun.star.frame.Desktop</span><span style="color: #000000;">"</span><span style="color: #000000;">, xContext );<br></span><span style="color: #0000ff;">    return</span><span style="color: #000000;"> desktop;<br>}<br></span></div> <p> </p> <p>   另一中方法就是用远E连接。在q程q接中,服务器名U和端口号作为参C递给q程q接Ҏ(gu)Q然后这个方法启动OpenOffice.orgq返回Desktop对象Q这个对象是利用OpenOffice.org工作的v炏V而且在远E连接的情况下,(zhn)可以让用户选择服务器和端口Q或者?zhn)可以在代码中使用pȝ讄来提供服务器和端口,q都看?zhn)的选择? </p> <hr> <p><strong>本文译自NetBeans.org中的文章,其中的代码也都经q译者测试。未完待l!Q!</strong></p><img src ="http://www.tkk7.com/tommyjian/aggbug/129886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tommyjian/" target="_blank">Tommy Jian</a> 2007-07-12 17:36 <a href="http://www.tkk7.com/tommyjian/archive/2007/07/12/129886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://ai-xian.com" target="_blank">ƷAV鶹</a>| <a href="http://moushengguigz.com" target="_blank">Aһ</a>| <a href="http://91haikala.com" target="_blank">߹ۿİ </a>| <a href="http://njyadi.com" target="_blank">˳ɵӰ߲</a>| <a href="http://cc58866.com" target="_blank">ˮƵ߹ۿѲŸ</a>| <a href="http://www-006688.com" target="_blank">ɫƵۿ</a>| <a href="http://yeyaweiban.com" target="_blank">޹ۺ91Ʒ鶹</a>| <a href="http://pjszlw.com" target="_blank">Ʒվ</a>| <a href="http://kaixininvestment.com" target="_blank">ڵaëƬѿ</a>| <a href="http://kimnote.com" target="_blank">AV˿߹ۿ</a>| <a href="http://90hong.com" target="_blank">ŷ߿ƬAѹۿ</a>| <a href="http://zzxngk.com" target="_blank">ŷ޾ƷƵѹۿ</a>| <a href="http://tv787.com" target="_blank">޾ƷþëƬҰ</a>| <a href="http://zhongxueping888.com" target="_blank">պƷƵѹۿ</a>| <a href="http://dnf1000.com" target="_blank">ŷƵ</a>| <a href="http://wwwzs88.com" target="_blank">ɫݺɫۺƵ</a>| <a href="http://kmp77.com" target="_blank">޸߹ۿ</a>| <a href="http://whdy888.com" target="_blank">޾Ʒպ?V </a>| <a href="http://www-554757.com" target="_blank">˾ƷƵҳȫ</a>| <a href="http://48eh.com" target="_blank">ëƬ߹ۿ</a>| <a href="http://1408600.com" target="_blank">þ޹</a>| <a href="http://acccx.com" target="_blank">ѹ˸߹ۿ鶹</a>| <a href="http://yuntuzy.com" target="_blank">ձѾþþþþþվ</a>| <a href="http://masfd.com" target="_blank">ƷؼһëƬѹۿ</a>| <a href="http://wwwby1378.com" target="_blank">4480yy˽ӰԺ</a>| <a href="http://333uy.com" target="_blank">ۺɫ¶</a>| <a href="http://yw323.com" target="_blank">Ů18ؼһëƬƵ</a>| <a href="http://www-474749.com" target="_blank">þ㽶߿</a>| <a href="http://ksp33.com" target="_blank">պݺݾþ͵͵ɫۺ</a>| <a href="http://shaolingtongluo.com" target="_blank">޹Ƶվ</a>| <a href="http://jufandev.com" target="_blank">ްv</a>| <a href="http://bjtjchem.com" target="_blank">Ѻܻƺɫ߹ۿ</a>| <a href="http://ahtxjk.com" target="_blank">߹ۿav</a>| <a href="http://074g8.com" target="_blank">պƷһ</a>| <a href="http://d8139.com" target="_blank">ҹҹҹҹƵ </a>| <a href="http://yuyang0752.com" target="_blank">츾AV</a>| <a href="http://zgbeian.com" target="_blank">ëƬһëƬ</a>| <a href="http://hkschooltv.com" target="_blank">һ߹ۿ</a>| <a href="http://jack-fx.com" target="_blank">ձѵһvһƬ</a>| <a href="http://dzyong.com" target="_blank">99ƵѹۿƵ</a>| <a href="http://xcdys.com" target="_blank">**ʵëƬѹۿ </a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>