星期二, 12月 30, 2014

「JAVAFX」簡單JAVAFX使用心得

記得在4年前曾經爲朋友需求用 javafx 寫過簡易的 WEB APP,
如今過了4年 重新再去接觸,感覺當時寫的不曉得是後來改變很多 還是記憶淡忘,
至此大部分都看不懂了。

首先javafx 有個簡易可以拖拉點選編輯LAYOUT的工具 Scene Builder,
這個工具就類似ANDROID 的LAYOUT編輯界面,但是感覺比較好用。

雖然說 javafx 似乎不怎麼被看好,不過對於快速開發簡易的工具,是很容易的,

使用 NetBeans 建立一個 fxml 的專案後,會自動建立 FXMLDocumentController
裏面抓取 fxml 的元件 fx:id="vText_filePath"
只要寫
@FXML
 private Text vText_filePath;
感覺蠻方便的,而BUTTON 的ACTION事件 也可以使用onAction= 來設定,

拖拉檔案至元件裏面 可以使用setOnDragOver setOnDragDropped
這可以參考: http://docs.oracle.com/javafx/2/drag_drop/HelloDragAndDrop.java.html

而在使用 TableView 裏面的 TableColumn欄位參數設定的時候,
不曉得我哪裏有設錯 他一直無法映射到我的函數
最後使用手動的方式取出 我自定的函數 getDataPath(),
而函數回傳格式 StringProperty  
變數設定 private StringProperty datapath =new SimpleStringProperty(); 
        vTableCol_path.setCellValueFactory(
                new Callback<CellDataFeatures<pathList, String>, ObservableValue<String>>() {
                    @Override
                    public ObservableValue<String> call(CellDataFeatures<pathList, String> param) {
change body of generated methods, choose Tools | Templates.
                        return param.getValue().getDataPath();
                    }
                });
而我在 tableView中 最右邊 有多一個刪除的按鈕
ButtonCell 是自定 extends TableCell<Record, Boolean>的物件
        vTableCol_btn_deletePath.setCellFactory(
                new Callback<TableColumn<Record, Boolean>, TableCell<Record, Boolean>>() {
                    @Override
                    public TableCell<Record, Boolean> call(TableColumn<Record, Boolean> p) {
                        return new ButtonCell(vTable_selectFilePathList, mlist);
                    }
                });
在 ButtonCell 中如果使用刪除的功能,會發現 資料有刪除但按鈕卻還是停留在畫面上
這時需要在 updateltem 中做修改
    @Override
    protected void updateItem(Boolean t, boolean empty) {
        super.updateItem(t, empty);
        if (!empty) {
            setGraphic(cellButton);
        } else {
            setGraphic(null);
        }
    }
最後不得不說 小的APP 編譯的速度不快10~30多秒

要開發小工具都可以輕易的完成,而且還是跨平臺。





星期一, 12月 29, 2014

「2014」END


  1.  第一次離職 
  2.  第一次獲得名片
  3.  2014年初 對於 html5 配上 jquery 做動態繪圖以及播放聲音的熟悉。
  4.  跑了人生第一次的馬拉松在高美。
  5.  人生第一臺 apple macbook pro
  6.  熟悉 win2008 架設環境
  7.  php 配上 java 做excel word pdf 輸出
  8.  第一把 cherry g80-1865 紅軸 鍵盤
  9.  爲前公司開發的php 框架滿2年
  10.  使用 剛推出不久 swift 開發爬蟲
  11.  臺中大坑景點幾乎跑片了
  12.  晚上8點上合歡山北鋒拍銀河
  13.  第一次日本東京行
  14.  使用 laravel 開發 個人履歷
  15.  使用 nodeJS 作爲伺服器 開發 android 個人平臺
  16.  建立公司內部專案 git server
  17.  瞭解 angularJS web 用法
  18.  ionic 用法
  19. 第一臺 iphone 
  20. 第2個個人網站