【Java標準GUIライブラリ】 JavaFX スレッド
みんなー、息してるー?
後発のguiツールキットはどれもいまいち普及しませんな
バインディングとかCSSとかやめたほうがいいんじゃないの >>260
してないw
言語の標準GUIに同レベルのライブラリがあるマルチプラットフォーム言語に
移住しようと思っているのだか、そんな言語ありゃしねぇwww SwingとかJavaFXやる人ってのは、グリッドとかちょっと複雑なウィジェットを使いたいんだと思うんだよね
でも世の中はシングルページとタッチ操作みたいなどんどん単純なほうに行ってる
先は明るくないですな お手軽タッチでなんでもお手軽かつ効率よく操作できるなら苦労せんわけで Electron触りたくないなー
てかjavascriptいやだ >>265
だよね。一貫してJavaで書けるのがJavaFXのいいところ。 MicrosoftのF#ですら、VisualStudioから外されてないというのに( ゚д゚)! javafxっていうよりセンスの問題なんだけど、
なんか作ったアプリの見た目がダサいっていうか纏まらないっていうか……。
gui部品の配置とかのセオリーみたいなのが勉強できるサイトってないかな?
機能はちゃんと実装してるんだけど使い勝手もいまいちだし、
定番的な配置とか知りたい。 Spring Bootに移住することを考えているけど、Spring BootってJavaFXより難しそう。 大丈夫も何も、致命的な脆弱性でもない限り現状放置でしょ
JavaFX自体が廃止されたのに何言ってるんだ
OpenJFXなんか形だけでほとんど活動してないし、もうとっくに死んでることをいいかげん受け容れなさい javaでGUIならjavafxという記事を見たのですが中々情報少なく困っています。
しかもこのスレ見ると近々なくなるというレスもあるようですがswingにうつるのが懸命ですか? >>274
JavaFXを外すというアナウンスには、AWTやswingも移管先を探すと書いてあったので、swingなら大丈夫というものでもない。
Springのようなフレームワークに移るといういのも手かもしれないが、アノテーションがいっぱい出てきてよくわからん。 マルチプラットフォームのGUIアプリの最適解がJavaFXだったけど
ここまでお先真っ暗だと流石に不安
だからといって乗り換え先も無いし…
思いつくのはPythonにtkが入ってるのぐらいだ
Golang辺りの言語にGUIツールキット内包してくれんかな もはやElectron以外の選択肢が無い
10年前はマルチプラットフォームの代表がJavaScriptになるとはだれも思わなかっただろうな
こんなJavaに誰がした なんでデスクトップアプリケーションまでJSとCSSで開発せなあかんねん… >>281
正直それはある
CSSはともかJS書くぐらいなら普通にJavaで書きたい Rails と同じ。
実行環境が、Node.js になる
Electron, VSCode と同じ。
jQuery, Vue.js なども使う
Ruby + JS または、Java + JS。
画面は、HTML, JS
Haxe も同じ トランスパイル文化が構築済みのJavaScriptならまだ許せるけど
どう書いても負債にしかならないRubyだけは簡便してくれ クロスプラットフォームを叫んでMSに中指立ててJavaへ行った連中が、
今やElectronでMSのケツを舐めながらクロスプラットフォームやってるんだもんな
時の流れは残酷である それ言ったら
最初からOracleが出してた言語だったら
誰もJavaなんかやってないだろ
買収で会社変わる度にそんな事言ってたらプログラマやっていけん >>288
Electronはgithubが作ったけど
MSにgithubが買収された github買収前からMSは最大のElectronユーザー(もちろんVSCodeな)で、Electronにもコミットしまくってるよ 移住先として Spring Boot と Electron と JavaFX を比べるのって、間違ってる? Oracleのスタッフは、Java8がサポート終了したらOpenJFXの開発を辞めて、そこでJavaFX開発終了? もとからフリーだから誰かやるんじゃねえか?やらんか? >>294
オープンだからやる人がいてもおかしくはないが、現実にやる人が出なければそこで終わってしまう。
そして、OpenJFXは現実に開発する人が十分出てくるには、そのプログラムの規模に比べて使用人口が少ない。 そもそもの話として、普通のJavaのライブラリの様にGradle/Mavenで追加するだけで使えるのか?
それができなきゃ普及の見込みは全くないな。 >>296
使えるけど、プラットホームごとに必要なファイルが違うみたい。
ttps://skrb.hatenablog.com/entry/2018/07/25/220530
write once debug anywhereとか、これはもうだめかもわからんね。 オブジェクト指向って何っておもってJavaに手だして
でもCUIだけじゃつまんないからGUIも一緒にってことでFXやりはじめてたけど
どうすりゃええの? 使ってる身でこんな事言いたかないけど
GUIやるなら他の言語にしときな
C#辺りならJavaから乗り換えるのもそんなに苦じゃないよ
JavaFXはディスコンになるからこれから勉強するには適さないよ
ほんと迷惑な話だよ・・・ >>300
切り離されることで、最新のJVMへのリリース日対応が保証されなくなる。
開発中止にならないという保証もなくなる。
少なくとも切り離されたことで、かなり扱いづらくなった。
jmodsとかどうしていいかわからん。 >>302
でもJDK同梱になるから配布したのが動かなくなるわけじゃないだろ?
GUI部分にセキュリティの脆弱性が発見されるというのも考えにくいと思うし、
最悪の場合、ずっと古いのを使ってればいいのでは。 >>297
これまでのJavaFXも内部でプラットフォーム毎に違うファイルを使ってたはず
そういったファイルがしっかり作られているという信頼がおけるから
プラットフォーム非依存だと言ってただけでしょ
とはいえ、個人開発者がボランティアでやってるような状況になったのは、懸念がある。
オラクルもJavaFXエンジニアを雇用してるはずだけどどうするのか。 scene builder最初使おうとしたけど結局コード直接書く方が楽だな
細かい事やろうとしたらコード書かなきゃならんし、全部コードでやる方が良い mavenでfxを入れると
開発環境のプラットフォーム用のライブラリがDLされる?
ここではwinライブラリしか出てきていない。
https://skrb.hatenablog.com/entry/2018/07/25/220530
ここもwinライブラリしか出てこない。
https://seraphy.hatenablog.com/entry/2018/07/27/175105
>maven-dependency-plugin で依存jarをmodsフォルダに出力するようにしているので、
この処理で依存ライブラリだけを見てるからか?
開発環境と異なるビルドをする方法はあるんだろうか。 >>304
OCAにサインしてOracleに無償の献身を誓った個人開発者、だぞ
今の体制のままならOracleが完全に手を引いたら絶対に確実に間違いなくJavaFXは消滅する https://aoe-tk.hatenablog.com/entry/2018/03/18/185144
この記事によると今後も大丈夫みたいに書いてあるけど
どうせどの言語もライブラリもプロジェクト消滅とか停滞のリスクはあるんだし
俺は今後も使うよ フリーなのが救いだな。誰もメンテナンスしなくなっても最悪自分でなんとかできる。できなくてもできる人にやらせる事が可能かも知れない。金掛かるかも知れないがな。
ブロブライエタリだど握りしめられたまま死なれたら終わりだ。本当に二度と使えなくなる。 >>307
Oracle完全撤退後は、もはや何もコミットしてないOracleに対して何故かソースを寄贈し続けなければならない謎プロジェクトになるんだぞ
そんなものに進んで協力する奴がいたらよほどのドMだな
OCAを廃止しない限り、OpenJFXはどう転んでもコミュニティプロジェクトとして成立し得ないよ openjfx本家死んでもgluonのhard forkに開発者移るだけだろう。
サポートされるデバイスが増えるだけ。 >>311
そのGluonの収入基盤がまた不安なんだよね。Gluon Mobileで開発なんて話まったく聞かないし。
表に出てこないだけで、それなりに売り上げているんだろうか。 Gluonは囲い込んで金取ることばかり考えてて時代錯誤な印象だわ
元々JavaFXにタダ乗りしてXamarinの劣化コピーを作ろうとしてただけで自分達で積極的にJavaFXコアの開発を推進する気はなさそうだし
現状のまま売り逃げして終わりだろうな
こんなものに期待するくらいならJava to .NETコンパイラでも作ってXamarin使ったほうが遥かにマシだな >>313
Gluon はどうやって収入を得ればよかったんだろうか。 そもそもビジネスモデルが間違っているからどうやってもダメだよ
モバイル向けの開発ツールキットはあくまでプラットフォームビジネスの付属品であり、単独では商売として成立しない
この手の最大手であったXamarinですらダメだったのに、なぜそれよりあらゆる面で劣るオモチャで儲けられると思ったのか >>315
JavaFXにはどうあがいても絶望しか残されていなかったということか。
得をしたのは開発中止という格好悪い方法を避けて体よくJavaFXを捨てることが出来たOracleだけか... クライアントサイドもできたほうがJavaユーザー増えると思うんだけど
JavaFX自体は良い感じ 反例 : 過去20年のJava
まあ、よく頑張ったよ
もう楽にさせてやろう でもクライアントサイドが作れませんとなったら
新たにプログラミングを学ぶ人が選ばないと思う >>319
プログラミング必修化で、業務でなく趣味でプログラミングする人も増えるだろうけど、
確かに趣味でやるにはWebフレームワークでGUIというのは負担が重すぎる。
かくいう自分も趣味でJavaFXから入ったくち。 確かに趣味でやるのにGUIがやりにくいでは
選ばれにくくなるだろうな
やっぱWindowだしてやりたいもんなあ xamarinxamarin言ってるやつは何しに来たんだ?xamarinが最大手?馬鹿抜かせ。
日本以外の世界の水道・ガス・パーキングメーター類、ハンディPOS、中身組み込み向けjavaだぞ。
BD-Jもjavaだしxamarinどこにあるんだよ。
gluonに間違ってるところがあるとしたら組み込みにjava seベースとその上で動くjavafxを選んだことだろ。
組み込みじゃフットプリントでかすぎるし、リソース食い過ぎるし、
組み込みにRIAみたいないちいちアニメーションするguiも必要ない。
そういうのは富豪環境のエンドユーザー向けでやればいい。
xamarinと被る領域なら最近は組み込みまでnodeじゃん。 >gluonに間違ってるところがあるとしたら組み込みにjava seベースとその上で動くjavafxを選んだことだろ。
GluonはJavaFXするための会社だから、存在を全否定するのはやめて差し上げろ。 FXやりたいんじゃなくて、やりたいのは金儲けでしょ
そもそもGluonってJavaFXにタダ乗りしてXamarinモデルで一儲けしようとしてただけで、
JavaFXの本体の開発を進めるなんて全く言ってないし実際やってもいないのに的外れもいいとこ >>325
一応JavaFXに関する貢献でDukes Choice Award を2015年に取っているから
何もしていないということはないと思うが、
GluonにJavaFXの開発をする体力はないだろうという点には同意する。 筋違いの期待をしてる人には気の毒だが、そもそもGluonは本体はオープンソースですらない
別にGluonを非難する意図はないぞ
そこらへんのたかが一中小企業に対して、どう頑張っても自社の独占資産にならないGPLソフトウェアに全力投資しろというのは無茶な話だ 話題にしたいのはGluonが金儲けをするためにはどうするべきだったかではなくて、
JavaFXが安定して発展するにはGluonがどうすればよかったかなのだが、
>>316で言ったように最初から無理ゲーだったということでおk? ニコニコ大百科見てないなら黙ってりゃいいのにでしゃばりかw >>331
言いたいことわからないとか本気でいってんのかよ
そんなんだから普及しないんだよバカ >>333
>>331が>>329の言いたいことがわからないことと、JavaFXが普及しないことに因果関係はないと思うんだけど。
>>333の頭の中身は大丈夫なのでしょうか。 いや>>333のバカってのはいわゆるツンデレというやつだろう。 >>334
言いたいことがわからないっていってるんだから因果関係もない
お前の頭が大丈夫なのか
そもそもJavaFXの関係ある話なの? JavaFXのスレでなに期待してんだろうなこのバカ >>334
わかったから
ニコニコ大百科での暗躍も実を結ばなかったな
JavaFX
https://dic.nicovideo.jp/a/javafx
で
何がいいたいかくらいわかれバカ >>350
言いたいことあるなら言ってみろ?オラ
ゴミレスしやがって >>351
マジレスするけどJavaFXの人気ないでしょ そもそも次スレ立つかどうかもわからんけど
次は標準が外れるんだな(´・ω・`) >>354
JDK11からなので、もう外れているとも言える。 誤解した。スレタイから標準の文字が外れるという意味か。 流行らせれば良いんだよ。そうすればデファクトスタンダードになってやがてISOとかに登録されて標準化される。 JDK8のJavaFX使うのむっちゃ楽だったのにな〜 >>360
まったくだ。
JDK11だとどうすれば使えるのかすらよくわからん。 ちょっとスレチだけどいい?もしかして、Java標準のGUIってSwing? まあ、最初からライブラリに含まれているので標準と言えば標準かな。 openjfx12からscenebuilder削除されたからgluonのハードフォークが名実ともにscenebuilderになったな。
プロパティファイル化けてんの直してほしいけど、今openjfxのスポンサーgluonだし、
openjfxの公式サイトがgluonでそこからダウンロード出来るのがgluonのビルドだし、
ただのミラーのはずだったgluonのportingのgithub issuesにopenjfx関連のissueあるしこのままjavafx乗っ取られたりしてなw
>>360,361,364
9以降にopenjfxの適当なdistroのモジュールパス通すだけよ。
gluonのsdkでも自分でビルドしてもビルドツール使ってもjavafxバンドルしたjre作っても何でも良いよ。
非モジュールのjavafxアプリをhogehogeするよりモジュール化した方が簡単。 corretto8入れて解決
足りないものがあるなら言えば入れてくれるだろ >>365が言ってるのは自己完結型だな
>>366はOS共通のJDKでJavaFXやる方法 >>366
言っても入れてもらえなかったぽい。代わりに
https://bell-sw.com/pages/java-8u212
なんてものがあるらしいが、問題は
BellSoftがマイナーすぎてOracleやAmazonほどに世間の検証を受けていないことか。 gluonのjavafxバイナリがマイナーチェンジする気まったくないな。
SceneBuilderは自分でビルドすればいいとしてopenjfxめんどくさいのがな。
Liberica JDKはopenjfxは12みたい。11の新しいリビジョンはソースからビルドするしかなさそう。 >>365 >>366
あのさあ・・・
JDK8時代と比べて何も違わんとか言いたげなのは明らかにおかしいだろ
そりゃ過疎るわ FXML使う価値ある?直接コード書いたほうが楽なんだけど >>371
SceneBuilderを使ってGUI上でFXMLを作成できるのが売り。
生FXMLを書くくらいならコードを書いた方が楽なのには同意する。 でもSceneBuilderだとすぐに限界に到達するんだが・・・。
JavaFXってのは迷走してるおかしなプロジェクトなのでは。
初期の頃何か独自スクリプトがあって廃止されて、FXMLとかSceneBuilderも微妙・・・。
性能もコード資産の量もSwingのほうが上だと言われてる。 そもそもなんでOracleはSwingを続けるんじゃなくJavaFXを始めたのか?
JavaFXはモバイル対応してるというけどSwingをモバイル対応させればよかったのでは >>374
どこまで本当か知らないけど、SceneBuilderみたいなGUIツールでデザインしてから
Swingのコードを生成するのは難しかった(実際にそういうツールはあるが不安定)
ので、XMLを導入することにしたとか聞いたことがある。
また、SwingにはBindingとかのReactive Programmingのような仕組みがない。
Swingもそれほど使われていなかったから、この際パラダイムごと更新してしまおうと思ったら
Swing以上に使われなかったというオチがついてしまった。 プロパティバインド使うとモデル側コードにStringPropertyとかの
JavaFX関連コードが出てきて嫌なんだけど?
どこがモデルとビューの分離なの?
それでどうやってビューを別のGUIフレームワークに自由に切り替えれるの? それはモデルじゃなくてライブラリが受け持つ話では? 例えば。
https://qiita.com/kenji-yokoi/items/5cd5f74865de7617cfb5
>public class Model {
>private StringProperty valueProperty = null;
https://docs.oracle.com/javase/jp/8/javafx/properties-binding-tutorial/binding.htm
>class Bill {
> private DoubleProperty amountDue = new SimpleDoubleProperty();
https://gist.github.com/aoetk/4363405
>public class Person {
> private StringProperty name = new SimpleStringProperty();
これらはすべてモデルにProperty系クラスが表れている。
でもPropertyはjavafxパッケージに含まれている。
モデルとビューの分離というなら、モデルをほかのGUIフレームワークでも使いまわせるように
クラス依存関係自体が分離されるべきだと思う。 >>376
自分も同じことを感じたことがあるので、言いたいことは概ねわかるつもり。
あるClass AModelの、あるフィールドAModel#fieldについて、Javaのお作法通りにしていれば
AModel#getField, AModel#setFieldをObjectPropertyを使って書けば、
AModelを継承したObserveableなModelクラスが出来上がるということなのかなと
解釈してそれ以上は考えないようにしている。
多分GUIフレームワークをJavaFXに一本化することを目標に開発されたので
他のGUIフレームワークでModelを使いまわすことは考えられてない。
Model作成の段階で最初からPropertyを用いるという前提だろうとは思う。
最初にも書いたように、他のライブラリやフレームワークと組み合わせようとすると
障害が大きいことには同意する。 JDKを作ってる人達なら
任意のオブジェクトの状態変更を監視するように作ることもできたんじゃないか?
オブジェクトの状態が更新されたらGUIも更新、
更新頻度が激しすぎるといけないから最速でも1秒に1回、とか。
それにしたってDB上で更新が発生したらどうするのかと思うけど。 >>380
できたとは思うけど、OptionalをObjectのスーパークラスにしなかったくらいだから、
そんな変更はできたとしても言語コンセプト的にもしなかっただろうと思う。
JavaFXがOptional以上に大事なものであればあるいいは...ないか....
DB上で更新検出はJavaFX以外でも難しそう。 プロパティバインドというアイデアは永続化されないモデルでだけ有効。
ゲームアプリならありそうだけど普通のアプリでは無さそうな気がする。
DBからオブジェクトを読み出す場合、読み出した時点のデータのまま変化しないし。
変化を検出できるのはもう一度DBから読み出した時だ。
最初独自スクリプトがあって廃止されて、プロパティバインドも微妙。
SceneBuilderやFXMLは一部の人達は使ってるのか知らんが俺には良さそうなものに思えないし。
JavaFXを設計してる人達の構想力まで怪しく思えてくる。
でもなぜかJavaFX好きではあるんだけど。 >>382
SceneBuilderはとっつきやすくて配置の微調整をやりながら構成するのに便利だったけど、
FXML内で反復(及び分岐)をしようとしたときと、動的に数値を変更しようとした時には絶望しか無いことには同意する。
まあ、コントローラー側と組み合わせてなんとかした。
プロパティバインドは、自分はゲームじゃないけどMVCで使っているうちにMVVMを再発明したw >>384
ありがとう。でもまだそれが存在しない頃の話だったんだ.... JavaFXが分離されてしまった今
JavaのGUIアプリは何を使うのが正解なのだろうか 自分で配布するjarファイルとかにはJavaFX含めても良いんだよな?
まあ多分俺はしないと思うが。 気晴らしに昔の話にレスしよう。
>>373
>性能もコード資産の量もSwingのほうが上だと言われてる。
newt並に低レベルなウィンドウ周りとレンダラのパイプラインが一段少ないからそれはないと思う。
ハードウェアもPS世代と固定機能世代だし。
>>374
>Swingをモバイル対応させればよかったのでは
初めからjava meで動く。CDC+AGUIでswing含む。
>>375
>また、SwingにはBindingとかのReactive Programmingのような仕組みがない。
SwingLabが開発しててJSRもあったけどsunがjavafxに注力するから全部白紙になっただけ。
SwingApp framework, beans binding, timing framework, SwingX, JMediaは白紙後全部javafxで同じアイディア実現したよ。
swing teamが協力したし。
swingにないのはコレクションベースのプロパティくらいかな。 JavaFXすごいなUIスレッドと別に描画スレッドがあるのか(WPFと同じ)
Swingでは描画もUIスレッドで行われていたから独自描画とか重いことするとキーイベントやマウスイベントが遅延してた
これがアプリが重いと言われる原因になることも多かったと思う
JavaFXでは描画スレッドが分離したおかげでUIスレッドが軽くなった
ただし中途半端な状態が描画されることもあるので実装には注意が必要
・スタイルクラス.blueを外す
・スタイルクラス.redを付ける
これだと色が青から赤に変わる前に一瞬デフォルトカラーが見えてしまうことがある(もちろん変更はUIスレッドでやってる)
・スタイルクラス.redを付ける
・スタイルクラス.blueを外す
といった工夫が必要 トランジション・アニメーションが描画スレッドだけで完結できないのが残念
プロパティ更新自体はUIスレッドで行われるから
マウスイベントハンドラなんかで重い処理をするとアニメーションがガタつく
結局、プログラマーが適切に非同期処理を実装しないといけないんだなあ SwingでもEDTで重い処理すんなってのは常識だと思ってたけど……
SwingUtilities#invokeLater(Runnable) とか…… ビジネスロジックをワーカースレッドで実行するのは当然分かってるよ
それでもUIスレッドでしかできないことってあるのよ 描画スレッド=UIスレッド=FXスレッドじゃないの?
描画スレッドとUIスレッドを別のものとして喋ってるのが良く分からん。
https://docs.oracle.com/javase/jp/8/javafx/interoperability-tutorial/concurrency.htm
トランジションあたりは良く調べてないけど、
その辺がスムーズに動かないならJavaFXベースのゲームエンジンは無謀なのかな。 JavaFXではUIスレッドとは別に描画スレッドがあるのよ
これがSwingとの大きな違い
UIスレッド=FXスレッド
描画スレッド=Prismスレッド
WPFも同様にUIスレッドと描画スレッドを持つGUIツールキットだ javafx+3dで描画軽くする方法ありますか?
大量にshape3dを表示すると重くて重くて
オクルージョンカリングなるものを実装しようにもjavaでの実例が見つからず厳しい やりたいことはこのように複数のBoxを組み合わせていきたい
https://imgur.com/p1mGbkc.png
ただ通常のBoxでは枠線が表示されないため現状1つのBoxにCylinderを12本くっつけて枠線として表示してる
他にはRectangleを6つ組み合わせて面表示しない方法
テクスチャ―を張り付けてそれっぽく見せる方法を試したけど今のところ一番良かったのがCylinderの手法
普通のBoxとワイヤーフレームを合体させる方法が一番軽量なんだけどTriangleMesh(三角形メッシュ)になってしまって見栄えが悪いのでNG
https://imgur.com/X6VrMC7
現状解決方法としてTriangleMesy→RectanleMeshにする
オクルージョンカリングを実装する
の2つが解決方法として考えられるがどっちも参考例がなくて厳しい
他の案でこんなのしたら解決できるのでは?とかこの案はこうすれば実装できる!とかあったら教えてほしい
質問スレチだったらすまん swing vs javafx自分の理解
メリット
・CSS
・prism。UIスレッドと分けられていて描画が停止しない。GPUが活用される。
・ラムダベースのAPI
・Scene Builderがある(個人的に便利と思わない)
デメリット
・バグが多い
・モデルとビューの分離がし辛い。StringPropertyとか使わない方が良さそう
その他
・ゲームエンジンも通常のGUIもjavafxで一本化できるかも
・標準から分離されたが、JDKと同じ範囲でサポートされるのか? >>404
まあそんな感じだね
Scene Builder不要は同意
ウィンドウリサイズに対応しようと思ったらHTMLのレスポンシブ対応みたいなのが必要になるから
FXMLでノードの入れ子構造を手書きするほうがいい
みんなHTMLは手書きするよね?ホームページビルダーみたいなWYSIWYG使わないでしょ
アプリの画面開発も同じ
JavaFXにバグが多いというのも事実だけどSwingと対比されるとちょっとなあ
だってSwingもバグ多くていまだにフィックス続いてるじゃない?いつ枯れるのよって
JavaFXはモデルとビューの分離も得意
プロパティバインディング使わないなんてもったいないよ! javafxで3dいじる人なんていないか…
悲しいなぁ >>407
javafx + java3dだ
書き方が悪かった >>408
自分も興味あるのでやりたいんだけど
資料情報が少ないしどっちも開発オワコンで・・・180度反転座標で混乱してるし
JavaFX 3Dは左上原点Y軸下方向+Z奥行+
2Dウィンドウと統合の為のブラウザ画面座標系
http://xiphia.info/wp-content/uploads/2014/12/fx_axis.png
Java3Dは画面中央原点でY軸上向き+画面手前Z軸+
一般的な3Dモデラーは右手座標系
http://xiphia.info/wp-content/uploads/2014/12/right_axis.png
2014で止まってる参考↓
http://xiphia.info/2014/12/08/124
JavaFXアーキテクチャ
http://xiphia.info/wp-content/uploads/2014/12/fx_arch.png
で、モデルの読み込みも自分で実装しなきゃいけなくて、
かつ、トゥーンシェーダーは無いみたいですね
これも自分で実装しろということみたいですね。
>>403でも2Dと統合してるのなら3Dのシリンダーで立方体の縁取りをしなくても
描画線幅のプロパティとかがありそうなもんですけどね
というかテクスチャ貼れるなら四角い「◻」画像貼った方が早そうな気がする >>409
プリズムエンジンがどういう動きをしているのか分かりませんが
OpenGLからJava 2Dに渡してシーンのステージを描いていて
ラインプロパティがCSSで変更可能なのか?どうかですね。 >>409
一応テクスチャで□画像貼り付けるやつもやったんだけど,シリンダーのほうが描画的には軽かったんだよね
自分のコードの問題かもしれないけど...
JavaFX3DのShape3DにBoxがあって一応線だけ(ワイヤーフレーム)表示がある
それと普通のBoxを組み合わせるとこんなんなるんだけど
やっぱり立方体だけど少し見栄えが良くない
でも数万個単位になるとシリンダー12個使うよりは当然軽いんだよねぇ...
https://imgur.com/3KfENIX.png >>411
根本的解決では無いけど
デフォルトで背面カリングされてるのかな
せめてシリンダー12個より細長くて黒い直方体12個のほうがポリゴンは減らせると思う >>411
>>412のJavaFX3Dをはじめてやってみたけどこんな感じ?
JavaFX_3D_Cube_Outline_Test
https://i.imgur.com/HY2x9vF.png >>412
背面カリングはデフォルトでされてるね!
なるほど
シリンダーじゃなくて直方体で試してみる! >>413
ポリゴンの数めっちゃ違うのね
そういうのも考えないと駄目だよな
軽くしたいって言ってるのに考えが足りんかった 最近書き込んでないけど3D軽くするアイデア募集してますよー
誰でもいいんだ…頼む… 別の 3Dでさ、軽くなるか重くなるかわからないけど
p5js の 3Dだとデフォルトで豆腐表示みたいですよ
輪郭の色とかも変えられた
https://i.imgur.com/7Y35cPf_d.jpg
https://i.imgur.com/CerH8PS.gif 40年近く前のアルゴリズム程度ならそんなに重たく無さそうだけどな
https://www.youtube.com/watch?v=co3ilmGNnTM
Java 3D Game from scratch - Stickman Sokoban (1982) 3D test Java - 3D Engine From scratch (with source code)
https://www.youtube.com/watch?v=co3ilmGNnTM >>418
案あざます!
ただjavafxで進んでるのでこのまま行きたいからちと厳しいです Java 3DもJava FXも情報少ないねー
別の質問なんだけどJava FXには
AndroidのWebViewみたいなブラウザ機能付けれないのかな?
WebGLで組み込めたりしないのだろうかと思っただけです。 >>419
>>420
わかりやすいのあざす!
gifサイズめちゃくちゃデカくて申し訳ない
やりたいことはこんな感じでいろんな立体を作れるんだ
1000個程度なら軽いんだが
数千になってくるとカクつき始めてしまう
数千個メモリにある状態でも描画を無くせば軽いので(見た目を透明にすれば軽いので)
描画処理に工夫出来ればと思ってるんだ
https://imgur.com/MMRc3G1.gif
否定っぽい意見で返すこともあるけど、こんなのはどう?って意見マジで助かるからバンバン欲しい
そこからアイデア生まれたりもするしね >>423
へーFX 3Dでここまで出来てるんだ面白そうだね
良いね👍
自分にはそれだけのプログラミング技術がないorz
ちなみにそれはシリンダーを直方体にしたら少しはマシになったやつのかな?
マイクラのはどうしてんでしょうかね?
インスタンスを 3D色ペンにしてるというより
objローダーか何かで読み込んでるのかな?
【MineCraft】 Mononoke hime Deidarabotti【でいだらぼっち】
https://www.youtube.com/watch?v=oVrPmdZ7oC4
プリミティブを毎度合成して作るくらいなら
3Dモデルを作って呼び出したほうが良いかもね もうひとつこっちは純粋なjavafxの質問!
質問ばっかでスマン
自由な形のボタンって作れますか?
透過pngの形に合わせてボタンの形と見た目も変わる感じ
わかりにくいgifだけどこんな感じでオシャレなボタンを作りたい
https://imgur.com/jRWHAuD.gif
例として矢印型のボタンを作るとか!
調べた限りボタンに画像を貼り付けるくらいしか近い資料はない
別の手法として2枚の画像を重ねておいてマウスが重なったら表示を変更する
この手法でボタンみたいにマウスが重なった際の見た目の変更を設ける
でその画像にクリックイベントをつけるってのが考えられるんだけどとてもスマートとは言えない
こっちもわかる人いたりしたらお願いします! >>424
シリンダー直方体にしたら多少良くなりました!
マジでその少しでもありがたい!
マイクラは凄いよねぇ
あの膨大なブロックの描画を可能にしてるんだから サポート終了だしJava FXやってる人少ないんだろうなー
自由形状ならペイントのポリゴンでポイント指定しまくって書けそうだけど
ボタンとなるとマウスの座標判定いるのかな・・・
https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/paint/ImagePattern.html >>422
JavaFXにもWebViewあるよ
エンジンはWebKit >>425
非矩形Nodeはclipすることで作れる
clip範囲外はマウスイベントも発生しない >>427
>>429
ありがとうございます!
こっちはいけそう!
お酒入れてしまったので明日やってみます! >>423
表現力高めようとしたら結局テクスチャーになると思う。
それとご存知かもしれませんが
JavaFXに移植出来るかどうかわからないけど
three.js のexampleにボクセルペインターってのがありますので
JavaScriptのソースコードが右下のアイコンから見れるので参考にしてみてはどうでしょうか?
既に参考にされてるのなら申し訳ない。
https://threejs.org/examples/webgl_interactive_voxelpainter.html 上の方でスレッドアーキテクチャの話出てたけどここに書いてあった
https://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm#sthref4
描画前(アタッチ前)のシーングラフはユーザーが作成したスレッドで構築(最後のアタッチだけrunLaterか)
描画中(アタッチ済み)のシーングラフはFXスレッドで操作する
描画自体はPrismスレッドで処理する
メディア処理専用のスレッドもある
FXスレッドをsleepさせると描画が停止するから、FXスレッドが描画しているのかと思っていた。
FXスレッドが停止するとパルスがスケジュールされないからPrismスレッドが描画内容を更新しないということか。
FXスレッドに重い処理をさせるとパルス遅延で60fpsでなくなるが
描画中のGUIの更新はFXスレッドでやれと。
コーディングに独特な意識が必要そう。
> This introduces a lot of issues,
AWTはスレッドアーキテクチャのせいで問題が多発していたとあるし
SwingはAWTを拡張したものとあるから恐らく同じ問題を抱えているだろうし
基本設計としてはFXの方が良いんだろうな。
ちょっとしたアプリならFXの出来合いのコンポーネントとライブラリで簡単に作れるし
jdkで勝手にクロスプラットフォームになるしかなり良さそう 自分用のツールをこれで作ってみようとしたら使えるようにするまでがとんでもなく面倒くさいな
できあがったものを他人に使わせるのも面倒だしjavaによるGUI実施はやる気なくなる >>435
GUIの実装はどれもそこそこ面倒な気がするけど、
AccessとかVBA+Excelみたいなミドルウェア系は別すれば何だと楽? C#じゃ答えになってないだろ
WinFormsとかWPFとかUIツールキットじゃないと VSでGUI作るのが楽
Eclipseじゃ勝負にならん ビジュアルデザイナーを使ったGUI作成って楽かなあ?
なんかホームページ・ビルダーでHTMLを作るようなまどろっこしさを感じるんだよね
HTMLなんて補完機能の充実したエディタで書く方が楽じゃん?
DOMの階層構造を把握しやすいから
GUIも同じじゃないかな?
XAMLとかFXMLをエディタで手書きするほうが書きやすい
ビジュアルエディターだと階層構造を管理しにくいし
なによりウィンドウリサイズへの対応がやりにくい
リサイズ対応しようと思ったら構造管理しやすい手書きのほうが楽と思っちゃう あのぅJavaFXってAndroidアプリ画面GUIに使えますか? >>442
https://gluonhq.com/products/mobile/
これを使えば出来るかもしれないが、したことはないし、
出来たという話は聞いたことがない。 >>443
ありがとうございます!読んでみます
> JavaFXPorts is the open source project that brings Java and JavaFX to mobile and embedded hardware, including iPhone, iPad, Android devices, and the Raspberry Pi. デスクトップアプリの開発でJavaFX使ってるからFXPortsをAndroidで動かすのに興味はある
だがパフォーマンスはどうなんだろうか?
それとAndroidとの相互運用はどうなんだろうか?
たとえばインテント投げようと思ったらActivityの参照を得る方法が必要だよね
FXPortsでそういったAndroidネイティブアメリカンに介入する手立ても残されてるといいのだけど
>>444 試してみたらいろいろ教えてね JavaFXの未来が暗いのでWebアプリ方式にしようかと思っているのだけれど、
ObservableList(とTable連携)がないことを知って絶望している。 最近Andoridでアプリ作ったけどうんざりしたよ
Androidフレームワークの設計ひどすぎるでしょ
特にAndoidXは未完成でGoogleが何度も後方互換性のないAPI変更を繰り返してる
それに比べるとJavaのAPI設計ってとても良く出来てる
新API追加に何年も検討しているのも無駄じゃないんだなって
Androidの開発でもJavaFX使いたいぜ FXPortsやってみようかな openjfxってjava8バージョンは何でmavenにないんだ? >>449
Oracle版 jdk 8に含まれていたときの名残かな。
OpenJFXのページにもOracle版に入っているからそっちを使えみたいなことが書かれたいたように思う。
相当昔の話なので記憶違いかもしれないけど。 最近Androidアプリ作ってて思ったんだがAndroidのデータバインディングってクソだな
ViewのメンバーがObservable/WritableValueになってないからバインディングクラスを自動生成して実現している
その自動生成クラスの定義をレイアウトXMLに書かねばならずレイアウトファイルにロジックが介入してしまう
こういう悪い設計を見てしまうとJavaFXがいかに優れているか良く分かる
JavaFXはすべてがObservableなPropertyとして設計されてるのが素晴らしい FXが標準添付から外れてしまったので・・・
そしてSwingの新刊が2020/6に出てるのにビックリした JavaFX:Web、PC、モバイル向けの1つのコードベース
https://www.infoq.com/jp/news/2021/08/javafx-web/
JavaFXはクロスプラットフォームアプリケーションの基盤を提供するが、
JavaScript/Webクライアントがはるかに一般的であるため、業界全体での使用率は低い。
同様のクロスプラットフォーム開発トレンドに関するStackOverflowトレンドレポートでは、
JavaFXがほとんど変わらないのに対し、FlutterとReact-Nativeの相対的な上昇が示されている。
直接、数を比較すると、JavaFXのUdemyの受講者は120,000人であるが、
React-Nativeの受講者は900,000人、Flutterの受講者は1,500,000人である。 Gluon FX Mobile は興味ある
ほんとに Android で JavaFX 使えるのかな?
Android には独自のアクティビティ・ライフサイル管理とかあるんだけど
そこと JavaFX の兼ね合いがどうなってるのか気になる
FX Mobile 使ったことある人いる? >>456
openjfxにパッチ当てたやつとgraal(おそらくこれもパッチ当ててる)のnative image。
androidがどれくらい動くかは知らないけど
これのgluonの話題が出てくるところから読むといい。
ttps://github.com/oracle/graal/issues/3036 すんません
sceneのキー入力イベントが特定のキーにしか反応しません(ctrlとかalt)
scene に貼り付けたTextAreaなら他のキーにも反応するんですがこういった選別はイベントのどこら辺で決められてるんでしょうか? JavaFXを利用したGUI
http://www.osaka-kyoiku.ac.jp/~fuji/lecture/keijis/lesson06.html まだ使ってる人いるのかな
Compose Multiplatformにいっちゃた? ∧_∧
(`・ェ・´) レスが少くても
0 0 気にしちゃダメ!
| | また次があるよ!がんばって!
∪∪ ワイはJNA経由でC#でこさえたUIつこてる
古いwin32システムコールも呼べるし
慣れると楽やで!