ともさんのHP >プロブラミング >JavaFX >JavaFX、Macへ移植


Macへ移植

フリーソフトで公開している「洋裁CAD」、JavaSwingで開発し、Windows用で出していました。
今回GUIをFXに差し替えてついでにMacでも動くようにしてリリースしました。
Macへの移植対応で気付いた点、つまづいた点をまとめてみました。
Mac版洋裁CAD

広告

使ったOS、 Java 楽天 は、
Windows10  Java1.8.0-161
macOS HighSierra Ver10.13 Java1.8.0-644
です。
Macは今まで全く使った経験がなかったのですが、この対応を目的に購入したものです。使い慣れてないので、基本的な操作もわからず、苦労しました。
いろいろ書いてますが、もしかしたら私の勘違いが混ざっているかもしれません。
Win→MacへJavaFXアプリを移行させる人の参考になればと思い掲載しています。

Mac用JavaFXの動作が怪しい

新しいからでしょうか、Windowsでは正常に動くのに、Macでは挙動が違ったり、フリーズしてしまうことがありました。

setAlwaysOnTopがうまくいかない

親stageを開いている状態で子stageを開き、子を常に前面にしておきたいので、setAlwaysOnTop(true)にしてもなぜかうまくゆかない。
いろいろやってみたところ、親をいったん最前面に設定したのち解除、その後子stageを最前面に設定するとなぜか動くいた。

全画面表示の不具合

親stageを全画面表示にすると、次に開く子stageもみんな全画面表示になってしまう。
仕方ないのでstageはすべて全画面にできないように設定することで回避。

Swingのダイアログを表示させるとフリーズ

FXでメッセージ等を表示するにはAlertを使います。Windowsの場合、FXのアプリ中でSwingのメッセージであるJOptionPaneを表示させても問題なく動作します。
Macで同じことをするとフリーズしてしまいました。FXでSwingを使うのがいけないのですが、メッセージも出ずにフリーズなので、原因を特定するのに時間がかかりました。

印刷の問題

一部の文字が化けてしまう。画面に表示させるときは問題ないのだけど、そのまま印刷すると化けてしまう。
なぜか半角ばかり化ける。FXのバグかなと思ったので、ここは解決できないまま。
用紙のサイズと方向をページセットアップダイアログを使わずに設定している。Winは設定どおり印刷するけど、Macは反映してくれない。
Macだと全部の用紙がA4になってしまう。仕方ないので、Macの場合だけ、ページセットアップダイアログを表示させ、そこでサイド設定するようにした。二度手間だけど仕方ない。

仕様の違い

WindowsとMacではOSレベルの基本的な差があるので、これも共通化するときの支障になりました。

フォントの大きさがWindowsとMacで異なる。

windowsは12Pt、Macは13Ptだそうです。
そのまま使うとMacだけstageからボタンなどがはみ出してしまいます。どちらも12Ptとなるように、すべてのNodeのフォントを設定することにしました。
Swingでのフォント統一はプログラム中で行いますが、FXはCSSファイルを用いて行うのが標準だそうで、CSSファイルを追加して設定しておきました。

マウス操作の違い

WinとMacではホイールを回したときの移動方向が標準では逆
Winはホイールの回転量と移動量が比例するけど、Macでは回転速度で移動量が増える。操作上Macの仕様では支障が出るので修正しました。
Macの場合はホイールをゆっくり回すと移動量0になってしまうので、この点ちょっと困る。

エンコードの違い

Eclipseを使って開発している間は気付かなかったのですが(Eclipseが勝手に調整してる?)、Jarファイルにして動かすとファイルIOでエンコードの差が現れてファイルが読めなくなってしまう。
ファイルの入出力時にエンコードを指定してなかったので、指定して保存、読み込みするようにしました。

最終更新日: 2018-02-08 09:46:06

ともさんのHP >プロブラミング >JavaFX >JavaFX、Macへ移植

このエントリーをはてなブックマークに追加
広告
おすすめ記事
新着ページ

書斎机  
須屋  
ラウンドアップを使って木を枯らす  
備中鍬の修繕  
薪ストーブの掃除  
普通のブラウスの作りかた  
竹の固縛  
あじさいの栽培、手入れ、増やしかた  
除草剤の特性  
ガゼボのDIY  
アロハシャツ(開襟シャツ)の型紙  

私の他のサイト

ともさんの箱庭(ブログ)
家庭菜園
3D-CAD
洋裁CAD

いいねなど

 RSS 
PageSpeedInsights
html5チェック

Author: Tomoyuki Ito

このサイトの文章・写真の無断転載を禁じます