ともさんの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へ移植

広告
新着ページ

渋柿で柿渋作り  
新旧文化式とドレメ式原型製図を比較  
水棚の作り方  
DXFファイルの違い  
デジタル顕微カメラ  
萩の栽培、手入れ、増やしかた  
セミの飼いかた  
ダンゴムシの飼い方  
玉縁ボタンホールの縫い方  
柿渋  
ミシンでボタンを付ける  

他のサイト

3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

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