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

広告
新着ページ

AIを利用し、衣服のデザイン画から型紙を制作する方法  
2つのアパレル3D技術でひらくオーダーメイド生産の手法  
【洋裁型紙】前後身頃の肩の傾きは何故前身頃の方が傾いているのか  
電子追尾式天体写真撮影法  
日本ミツバチ巣箱の種類  
ドラフター(製図台)でソーイング  
日本ミツバチが逃亡  
カメさんの箱庭  
天体用デジタルカメラの構造と天体写真  
Javaで静止画像(Jpeg)を動画(Mov)に変換  
USBカメラをJAVAで制御  

他のサイト

3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

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