鍵盤上的舞者

          像寫情書一樣Coding...
          隨筆 - 20, 文章 - 0, 評論 - 15, 引用 - 0
          數(shù)據(jù)加載中……

          2010年4月25日

          Node的屬性改變后通知屬性表單(Propertites Sheet)更新

          Node API提供了一個方法在Node屬性集變化時通知注冊在其上的監(jiān)聽器更新。
          protected final void firePropertySetsChange(Node.PropertySet[] o, Node.PropertySet[] n)

          如圖,精靈動畫就是一個自定義的Node,當(dāng)使用鼠標(biāo)將Node從A點拖拽到B點時,Node坐標(biāo)已經(jīng)改變,可以調(diào)用Node的firePropertySetsChange()方法通知屬性表單(Propertites Sheet)更新顯示。


          因為firePropertySetsChange()是個受保護(hù)(protected)的方法,如果需要在Node的外部調(diào)用,還可以包裝在自定義的公共(public)方法里。
          public void notifySheetChange(){
              firePropertySetsChange(
          null, Sheet.createDefault().toArray());
          }

          posted @ 2011-03-06 22:15 陳維 閱讀(1260) | 評論 (1)編輯 收藏

          使用TopComponent群組

          TopComponent群組的作用是在打開一個TopComponent組件的同時,打開其他相關(guān)的TopComponent組件。例如,當(dāng)打開或者激活GUI編輯器的時候,“組件面板”、“屬性”窗口和“檢查器”窗口都會出現(xiàn)。當(dāng)需要一個組件同時伴隨著很多其他類似于組件面板窗口的時候,利用TopComponent群組可以輕松實現(xiàn)一個組件的激活引發(fā)其他組件被打開或者被選中。

          定義群組涉及到2XML文件。首先是wsgrp,它代表“窗口系統(tǒng)群組(Window System Group)”。它定義了“窗口系統(tǒng)”的群組,系統(tǒng)根據(jù)它的定義查找對應(yīng)的目錄,它也定義了群組是否應(yīng)該在啟動時打開。另一個文件是wstcgrp,它代表“窗口系統(tǒng)TopComponent群組(Window System TopComponent Group)”,這個文件通過ID識別單態(tài)的TopComponent組件,同時還定義了一些群組的打開和關(guān)閉屬性。

          TopComponent群組編程實例

          首先創(chuàng)建一個模塊項目TopComponentGroup然后新建2個窗口組件(TopComponent),命名為EditorTopComponentSatelliteTopComponent,就像窗口的名字所表示的那樣,SatelliteTopComponent將會隨著EditorTopComponent的打開和關(guān)閉一同打開和關(guān)閉。

          首先新建一個名為EditorGroupWsgrpxml文件,這個文件里定義了名為EditorGroup的編輯器窗口群組。
          <group version="2.0">
              
          <module name="org.jqueen.nb.topcomponentgroup" spec="1.0" />
              
          <name unique="EditorGroup" />
              
          <state opened="false" />
          </group>

          再新建一個名為SatelliteTopComponentWstcgrp的xml文件,在這個文件里可以通過ID識別出SatelliteTopComponent組件
          <tc-group version="2.0">
              
          <tc-id id="SatelliteTopComponent" />
              
          <open-close-behavior open="true" close="true" />
          </tc-group>

          編輯模塊的layer.xml文件,在系統(tǒng)文件系統(tǒng)中的Windows2目錄添加一個Group文件夾,將名為"EditorGroup"的群組添加進(jìn)Group。
          <folder name="Groups">
              
          <file name="EditorGroup.wsgrp" url="EditorGroupWsgrp.xml"/>
              
          <folder name="EditorGroup">
                  
          <file name="SatelliteTopComponent.wstcgrp" url="SatelliteTopComponentWstcgrp.xml"/>
              
          </folder>
          </folder>

          編輯EditorTopComponent內(nèi)容,重寫TopComponent類的componentOpened()和componentClosed()方法,在EditorTopComponent被打開和關(guān)閉時打開和關(guān)閉名為"EditorGroup"的群組。
              @Override
              
          protected void componentOpened() {
                  TopComponentGroup group 
          = WindowManager.getDefault().findTopComponentGroup("EditorGroup");
                  
          if (group != null) {
                      group.open();
                  }
              }

              @Override
              
          public void componentClosed() {
                  TopComponentGroup group 
          = WindowManager.getDefault().findTopComponentGroup("EditorGroup");
                  
          if (group != null) {
                      group.close();
                  }
              }

          至此,就完成了一個TopComponent群組的編輯。執(zhí)行模塊項目,當(dāng)從窗口菜單中打開EditorTopComponent時SatelliteTopComponent會自動打開,EditorTopComponent被關(guān)閉時SatelliteTopComponent也會自動關(guān)閉。

          樣例程序下載

          posted @ 2010-08-07 22:46 陳維 閱讀(1596) | 評論 (0)編輯 收藏

          JavaFX進(jìn)行HTTP Basic認(rèn)證

          最近用JavaFX寫一個應(yīng)用調(diào)用Internet上的開放API時需要進(jìn)行HTTP Basic認(rèn)證,JavaFX提供了一個類HttpRequest用于發(fā)送Web服務(wù)的請求,類HttpHeader顧名思義就是用來表示HTTP請求的"Header"了。HttpHeader提供了一個很方便的方法用來創(chuàng)建HTTP Basic認(rèn)證需要的用戶名和密碼"Header":
          public basicAuth(username: java.lang.String, password: java.lang.String) : HttpHeader
          下面就看一下如何使用JavaFX編寫進(jìn)行HTTP Basic認(rèn)證的代碼:
          // var user = "user";
          // var password = "password";
          HttpRequest{
              location: 
          // url
              headers: HttpHeader.basicAuth(user, password)
              
          // 
          }.start();

          posted @ 2010-04-25 02:49 陳維 閱讀(1520) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 自贡市| 泾源县| 饶平县| 永兴县| 克山县| 台前县| 科尔| 平顺县| 张家口市| 曲麻莱县| 广宗县| 云林县| 白玉县| 垫江县| 广德县| 阿荣旗| 金沙县| 菏泽市| 上虞市| 汉源县| 蚌埠市| 清涧县| 江都市| 扎囊县| 江源县| 贵州省| 栾城县| 通城县| 搜索| 石台县| 潼南县| 嘉义县| 长春市| 卫辉市| 蒙山县| 中江县| 宾川县| 永登县| 乌鲁木齐县| 武鸣县| 潍坊市|