2014年9月12日 星期五

JavaFX 3D (2) 基本3D物件

今天刊登於CodeData網站,有關JavaFX 3D的第二部份:

http://www.codedata.com.tw/java/javafx-3d-2-basic-3d-objects/

還有在JavaFX Coummunity上輪播。
© Chia-Hui Huang

12 則留言:

  1. 不好意思,又要請教您了…
    JBUTTON在移動時,是extends MouseMotionAdapter
    那在調整大小時呢?
    就像windows改變視窗大小一樣,用拖拉的方式…

    回覆刪除
    回覆
    1. 你是指Java Swing的JButton嗎? 查過Java SE API,並沒有針對JButton處理調整大小的事件Listener,不像JFrame一般有處理調整大小的事件Listener

      刪除
    2. 我也查過沒有,就…工作嘛,請教一下,java的GUI界面可以耶,它是用C++處理的嗎?

      刪除
    3. 不知道是那個Listener? 可否分享一下,或許可以寫出支援JButton的事件Listener,謝謝你

      刪除
    4. 您誤會了,小弟是說就是像javafx scene builder,專門簡化GUI製作,所以我想應該是做得到,但是應該不是用Java做的,所以目前查不到Listener可用…

      刪除
  2. 抱歉,又發生了一個問題,小弟想在ActionListener關閉MouseMotionListener

    jButtonRun[i].removeMouseMotionListener(new jButtonRunMouseMotionListener());

    回覆刪除
    回覆
    1. 試試看:

      JButton jbutton = new JButton();
      jbutton.addMouseListener(...);
      ...

      MouseMotionListener[] mouseMotionListeners =
      jbutton.getMouseMotionListeners();

      for(MouseMotionListener listener: mouseMotionListeners) {
      jbutton.removeMouseMotionListener(listener);
      }

      刪除
    2. 哈…小弟發現直接用Boolean值當開關就好了,把裡面的方法不要執行,看起來就跟關掉一樣…

      刪除
  3. 太感謝您的好書了,東抄抄西抄抄,小弟決定使用 JavaFX 2實做,可是…它的事件都叫handle(),小弟要如何才能簡化呢?

    以下是小弟的原始檔:

    https://mega.co.nz/#!Y0dmSJDQ!JukRh3U4Pxn4ev68jtF1oIWZ9Wiy6CNHdxpWEmVwggE

    回覆刪除
    回覆
    1. 這種寫法可以,但我比較喜歡如書上範例16-20的寫法,比較簡化,可以試試看:

      // 開始縮放
      imageview.setOnZoomStarted(new EventHandler() {
      @Override public void handle(ZoomEvent e) {

      zoomfactor = imageview.getScaleX();
      imageview.setEffect(new DropShadow());
      e.consume();
      }
      });


      另外若你用JavaFX 8,則可透過Lambda讓程式更簡化:

      // 開始縮放
      imageview.setOnZoomStarted((ZoomEvent e) -> {
      zoomfactor = imageview.getScaleX();
      imageview.setEffect(new DropShadow());
      e.consume();
      });

      刪除
    2. 請教一下,小弟看您的書上--fx2--的問題:

      好像沒有觸碰『雙擊、按住』的說明?

      setOnTouchStationary試了一下,會一直輸出耶,不像win有彈出窗視那樣…

      雙擊:是要使用『時間差』來做嗎?

      刪除
    3. 不好意思,一直打擾您…

      StackPane 跟 Group 有什麼不一樣嗎?
      查了一下下,說Group不能resizse?StackPane是FIBO?

      刪除