【Java標準GUIライブラリ】 JavaFX スレッド
JavaFXについてのスレッドです
MediaPlayerでどの環境でも再生できる音声フォーマットはmp3だけ?
FLACに対応してくれたらいいのに
JavaFXで碁盤のようなものを作りたいと思っています。
碁石には画像を使いたいと思っています。
どんなクラスを使えばよいでしょうか。
Imageクラス
2週間も長考してたのか
ふち付文字など、少し装飾の凝った文字を、Textのインスタンスを2つ使って表現しようと思ってるんですが
どのようにするのがスマートでしょうか
理想としては、Textのサブクラスのように振る舞わせたいのですが、
Textにinterfaceが用意されてないので悩みます
Textにinterfaceがあれば、適当なGroupと共に2つのTextインスタンスを包含して委譲することによって、
Textを操作するのと同じ感覚で、2つのTextを一つのコンポーネント(Nodeというべきかも)として扱えるのですが・・・
それと、Textを継承してメンバにTextを持たせるとした場合、
コンポーネントを2つ描画させたい場合は、eventDispatcherでメンバのも呼び出せばいいんでしょうか?
このあたり、どのように描画をしているのか全く見当がついてません・・
ちょっと待ってください
FXってjavaの「標準GUI」なんですか?
現実に使われていないものを標準と呼ぶのは無理があるよ
Javaの標準GUIはHTML
最近のJavaに標準搭載、ならOK
標準でネイティブのラッパーってかなり嬉しいと思うんだけど
流行ってないのは日本語ドキュメントがないから?
JavaFXってシステムのHIDと描画機能だけ使ってフルスクラッチでGUI作ってるんだが
ネイティブのラッパーって何のこと?
流行ってないのはSwingがクソなまま放置されすぎて誰もGUI作るのにJavaを使わなくなったからだよ
アプレット()と同じでブラウザで気軽に実行できなくなったのも×
標準だし、盛り上げていきたいね
企業がイントラで使うか組み込みで使うかくらいだね
いずれにせよオラクルに直接お布施してる方達が使うものであって
草の根レベルで盛り上げるようなもんじゃない
16 :
デフォルトの名無しさん:2014/09/15(月) 17:07:53.57 ID:GbCEgEkP
Javaは無料です。
「無料だから」なのか
「無料なのに」なのか
18 :
デフォルトの名無しさん:2014/09/16(火) 21:09:36.64 ID:hzlXvld1
ただほど高いものはない。俺は、Javaでいやって言うほど思い知らされた。
あと、JDK8はWindowsXPでつかえないから嫌だ。
XPを考慮しないといけない立場に親近感とともに同情を禁じ得ない
そのレベルの相手になるとJavaの扱いも本当にひどいんだよな・・・
Java SEが動くスマホとかあればなぁ
21 :
デフォルトの名無しさん:2014/09/17(水) 21:51:56.17 ID:WDyxrwZ3
逆に考えるんだ
歴代のJavaMEを搭載した数々のモバイル端末は
Javaだったから流行らなかったのだと
Write once, run anywhere という幻想
24 :
デフォルトの名無しさん:2014/09/19(金) 03:11:52.20 ID:7FCDfZaC
な〜んか、WPFと同じ道を辿りそうだね・・ というより、むしろWPFの方がましか。。
俺はMSより、Oracleの方が好きだから、頑張れ!Oracle。Swingは趣味でやってたけど
金は稼げませんでしたww
AndroidとiOSで使えたらいいのに
JVMを仮想マシンじゃなくて実機として搭載したパソコンや携帯が普及すればあるいは…
fxやろうとシーンビルだー使ってみたんだけど
これイベントのメソッドを自動で入れてくれないのかね
ないとやる気がでん・・・
>>27 後発のJVM言語ですらプログラマ的にじれったい言語が多いんで
ここらで新しいVM言語を・・・
FX触ってみてるけど
listviewの中身をシーンビルダーで自由に作れるるんだな
自分で描画しなくていいからおもしろくなってきた
けど流行らなそうだな・・・
流行らなそうというより、もう失敗して終わったと言っていいかと
でもswingが大失敗したから、awtかFXの二択なのは変わらないと思う
34 :
デフォルトの名無しさん:2014/10/30(木) 23:57:50.66 ID:H02odoB1
なんでawtが出てくるんんだよ?
>>34 javaが普及したときに騙されて学習した(させられた)人がたくさんいるから
スレッド制限するしクライアントアプリの描画ツールとしても弱い
>>33 2択?
JavaでGUIというとHTMLのことを指すんだよ
windowsとlinuxで動いてGUIをタグで記述して作れるってので
JavaFXを選ぼうかと思ったんだけどだめかね
htmlとかjava scriptはやりたくないからなぁ
39 :
デフォルトの名無しさん:2014/10/31(金) 23:30:07.59 ID:hP41p8uD
駄目じゃない
ってかJavaFXが一番真っ当なやり方
40 :
デフォルトの名無しさん:2014/11/01(土) 05:09:36.23 ID:qHHbwuvO
41 :
デフォルトの名無しさん:2014/11/01(土) 05:19:04.09 ID:/9f2fySD
専ブラでアフィ稼ぎでもやってんの?
>>24でもそれの話してるやん
QtかMonoでいいんじゃないの
名前が金融関係のアドオンのイメージしかない
しかもわざわざjavaを使った間抜け方面の
java関係の名前ってなんで毎回胡散臭いの
MonoでWPFができたら一番いいんだけどな・・・
もうQtもMonoもいらんだろ
Javascript + Node.js + webkitでいいだろ
Atom Editorがそうだっけ?成果には期待してる
Akkaと連携ってできるのかな
単純にFXのスレッド内でやるとフリーズするから
ServiceかTaskか、それともrunLaterでやれいけるのか?
runLayter使うのは英語の文献見つけたけど、結論部分の英語が
読めねぇから結局どーなんだよ!って感じ
楽しく組んでたんだが問題がおきた
ListViewでスクロールするほどメモリリークする
CellにImageViewとLabelおいてるだけなんだが・・・
updateItemで毎回画像読んでるわけでもないし、どこでリークしてるのやら
試しにメモリ少なくした仮想マシンでやってみたらOutOfMemoryでたわ
JavaFX ListViewでぐぐった最初のサイトにその原因として疑わしい記述あったで。
そもそもで胡散臭い動きしよるなListViewはんは・・・
50 :
デフォルトの名無しさん:2014/11/12(水) 14:21:30.83 ID:8LYL3KrX
JavaFXのUIは結局WebView主体の設計に落ち着くし、そうしたほうが絶対楽
ベースのノードに小分けしたWebViewオブジェクトをペタペタ貼り付けてそれぞれ独立したHTMLでデザイン作成もできるし、むしろSwingより楽で作りやすい
>>7の縁付き文字だけど、けっきょく白文字のTextインスタンスの後ろに、
4つの黒文字Textインスタンスを上下左右に1ドットずつズラシて実現したんだけど、
もっとスマートなのありますか?
Textクラスに影エフェクト適用すると薄めた墨汁をシャツにこぼしたみたいになる
画面間のデータの受け渡しは、どんな感じの作りが一番いいの?
JDK付属のサンプルのログイン画面のやつ、何だか変な作りしてない?
54 :
53:2014/12/06(土) 23:47:05.21 ID:/nyWZwJ1
つづき
子→親は、Observer パターンを使ってる
http://www.techscore.com/tech/DesignPattern/Observer.html 親画面コントローラを Observer、子画面コントローラを Observable にして、
child.addObserver(parent); しておく。
子画面コントローラ側で this.setChanged(); this.notifyObservers() を
実行すると、親画面側の update(Observable o, Object arg) が呼び出される。
良かったら参考にしてください。
>>53 S2Swingみたいな感じですかね?やはり、DIですか。
参照先のページ少し見てみましたけど、コントローラーとビューの関係をSpringでやる感じですよね?
MVCのモデルからビューへのデータ受け渡し部分って、シンプルかつ綺麗に出来たりするんでしょうか?
コントローラー、モデル、ビュー、どうしても何かしらお互いに依存する作りになりませんか?
一人で開発する分にはいいですけど、複数人、大勢で分業して開発するとなると、
この人にビューだけの実装を、あの人にモデルだけの実装、この人にコントローラーだけの実装みたいに、きれいな分業での開発を考えるのは、無理がありますか?
56 :
デフォルトの名無しさん:2014/12/08(月) 04:44:47.14 ID:vDft0UX9
>>55 MVCの要約
■コントローラクラスの仕事
1.すべてのインスタンスの作成はこのコントローラで行われる。
2.各インスタンス(モデルクラス)の操作(加工・参照・削除など)を行う
3.viewに操作後のインスタンスを渡す
4.viewクラスから必要とされるであろうアクションメソッドを提供する
5.アプリケーションの初期化処理やmainメソッド、などもここに配置する
■ビュークラスの仕事
1.ビュークラスはインターフェースを通してコントローラクラスを保持できるようにしておく
2.コントローラから渡されたインスタンスにもとずいて画面にデータ描画する
3.ボタン押下等の何らかのActionごとにコントローラクラスで用意された
アクションメソッドを実行するだけ
■モデルクラスの仕事
1.データベース、ファイル、またはネットーワーク上からのデータ入出力機能と、そのデータの保持
2.保持しているデータ加工、参照、削除などのメソッドのみの提供を行う
って感じで設計しておくと
view担当の人は渡されるインスタンスの仕様と、各アクションごとのコントローラのメソッドだけわかっていればコードが書ける
アプリケーション全体のことを知る必要はない。
モデルロジック担当の人はデータベースのテーブル構成や、ファイルデータの形式、ネットワーク上から送られてくるデータの形式のみわかっていればコードが書ける
何のアプリケーションかすら知る必要がない
なので分担が可能になる
MVPだな
58 :
53:2014/12/08(月) 22:37:27.23 ID:l0FIqSWq
>>56 さんどうもありがとう。全くその通りです
補足として、Java FX の具体的な話をすると、アプリ構成は
[FXML=Controller]--[Transaction script]--[Model] ===> (REST API etc)
--@FXML--|--@Autowired--------------------|
みたいな感じにしてる。
それぞれ DI で連携しているので、自然と疎結合になります。
Transaction 以降には JFX を持ち込みません。目安は JUnit で単体テストできるように
そんなに大規模アプリを作っているわけじゃないけど、
まぁ数人で git を挟んでうまく回ってます
「HTML5に対応したWebベースのビューをアプリケーションに組み込んだり、
3Dのハードウェア・アクセラレータを活用(中略)
SwingのコントロールをJavaFXアプリケーションに組み込めるようになった(中略)
Modenaは、従来のCaspianテーマに代わり、JavaFX 8からデフォルトとなったテーマです。
最新のOSデザインとの適合性を考慮して、クリーンでエレガントなデザインを採用しています。
このテーマもCSSでカスタマイズすることができます」
JavaFX 8──Web/3D/Embedded対応強化など、大きく進化したJava SEの標準GUIフレームワークを概観する
- builder by ZDNet Japan
http://builder.japan.zdnet.com/sp_oracle/weblogic/35058040/ 2014-12-19 16:00:00
>>59 だったら、最初からSwingでいいじゃんww
これほど全く魅力を感じない発表も珍しいなw
ずっと前からHTMLや.NETでできてることを今更…
どうしてもJavaじゃないとだめってひとには朗報なんかね
63 :
デフォルトの名無しさん:2014/12/22(月) 20:49:39.09 ID:qnnji8rr
Javaの汎用性はハンパない
Javaじゃないとだめっていうよりwebアプリ勉強でJava勉強してたらクライアント系も結構作り込めるしAndroidもいけるし最高だわって。感じ
俺はswingしらないからfxでいいかって感じで触ってる
Java,JVMに関係する言語も多い
Scala,Python,Ruby,Processing
androidでデスクトップアプリを作れるようにすればいいのに。
縦書きの文章を巻物みたいに右から左にスクロールさせるためにHBoxにLabelを貼りそのHBoxをScrollPaneに放り込んで
scrollPane.setHvalue(scrollPane.getHmax());
としてやれば画面初期表示時にスクロールバーが右端に行くと思ったらできませんでした
どなたか解決方法わかる方お教え願えませんか?
JavaFXでモーダルウインドウを作成した際に、そのウインドウをタスクバーに表示しないようにしたいのですが、どうすれば良いのでしょうか?
javaでオフラインのゲーム作るとしたら
fxで開発したほうがいいのかねえ
難しいねえ
どうもJavaFXは実装の詳細がかなり隠蔽されている印象でまどろっこしく感じた。
prism描画エンジン自体を直にたたきたい場合はどうすればいいのだろう?
SwingのGraphics2Dみたいな、描画はこのクラスが受け持っています、
みたいのはないのだろうか?
それが嫌ならJavaなんか使うな
Prismのソース見たけどいかにも内部だけで使う用の薄くて雑なラッパーで、
とてもじゃないけどパブリックAPIとして公開できるような代物じゃないね
3Dはハードウェアアクセラレーションが効かない場合は
自前のアルゴリズムで描画するのかな?
それともそんな機能はついていない?
3D+ソフトウェアレンダリングはサポートされてないし予定もないんだとさ
RORA(笑)
75 :
デフォルトの名無しさん:2015/03/01(日) 21:59:56.08 ID:YPGv4zkT
Swingに、今風の丸っこいスキンを付ければそれで良かったのに…。
windows mobileにしろ、携帯javaアプリ全盛期にしろ、舵取りに大失敗したツケはでかいのさ。
2DでLook And Feelを洗練してくれればそれで良かったのになぁ
3DやるならFXの方向性でいいんだけど、3D必要なクライアントアプリって普通の業務じゃあ無いよな
ゲームに特化するならそれはそれで需要ありそうだが
>>77 ハッキリ言って、swing以外、使う気にもなれないゴミ
事実殆ど使われてもいない。
空気未満の存在だわ、FXなんて。
swingですら製品として一切のバグが無くても苦情が来るレベル