【Java標準GUIライブラリ】 JavaFX スレッド

1デフォルトの名無しさん2014/07/05(土) 01:27:45.85ID:SKNQTnLZ
JavaFXについてのスレッドです

182デフォルトの名無しさん2017/05/16(火) 14:42:40.34ID:jHwvBExt
Videoカードのバグじゃね

183デフォルトの名無しさん2017/07/18(火) 23:57:29.14ID:WjMqTc/k
FXMLのImageViewでクリック処理しながら
TimelineでGraphicsContextをループさせるには
どういう風に組んだらいいんだろう

group = new Group();
scene = new Scene(group);
stage.setScene(scene);

canvas = new Canvas( WIDTH, HEIGHT );
gc = canvas.getGraphicsContext2D();
fx = FXMLLoader.load(getClass().getResource( ファイル ));
group.getChildren().addAll( canvas, fx );

timeline = new Timeline( new Key〜
handle(ActionEvent e){ 別javaへ(fillRect( x, y, 100, 100 ); x++; など) }

クリックで画面遷移(FXMLの変更)

stage.show();

こんな感じで別クラスに渡そうとするとエラーになるんすよね…

クリック範囲・画面遷移=FXML
細かいループアニメ=Graphicsという発想がそもそもダメなのか…

184デフォルトの名無しさん2017/07/19(水) 01:28:09.25ID:wHmuM9lY
fillRect とか、描画関数は、
canvas・ディスプレイなどの情報(グラフィック・コンテキスト、GC)を持っているだろ

悪い例なら、GC をグローバル変数にすれば、どこからでもアクセスできる

YouTube にある、T Umezawa の動画を参照

【Java】ゲームプログラミング超入門 Part01
https://www.youtube.com/watch?v=FsRHdL_r0pE&list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt

1851832017/07/19(水) 06:23:08.54ID:tbZraLat
>>184
Umezawa氏はFXに乗り換える前にメチャクチャお世話になりました。
モンストにアレンジしながら勉強してたいい思い出っす。

>>183の書き込みがかなり言葉足らずで申し訳ありませんでした。

表示自体は問題なく、クリック(FXMLの変更)時のエラーが出ているので
遷移時の間違い・インスタンスの生成ミス・
変更時にTimelineやMediaの停止が必要かもしれないなど
少しずつ問題点が見えてきたような気がします。

複合処理の解説ページがなかなか見当たらないので
「出来ない事はない」とのご教授を頂けて少し安心しました。
ありがとうございます。

186デフォルトの名無しさん2017/07/19(水) 08:13:44.93ID:wHmuM9lY
T Umezawa の動画で、関数化したら、GC が無いから、エラーになって、
ひとまず、GC をグローバル変数にしておくとか、

そういう悪い例を、見たような気がする

187デフォルトの名無しさん2017/07/19(水) 09:17:56.98ID:C1zxEpCQ
gra = Graphics g; みたいなのは見ましたが多分違うやつかな

>>183無事解決出来ました、1ヶ月悩んでたのでめちゃ嬉しいっすw

どこを直したのかイマイチ分からなかったですが
Main getInstance(){ return iMain; }する時は
最初にiMain = thisしときなさいよ!ってことだった模様…

やっと中身に突入出来る… 3月から始めてapplet→FXの道は長かった…
>>184さんご教授ありがとうございました

188デフォルトの名無しさん2017/09/14(木) 13:04:48.54ID:mT2kraSX

189デフォルトの名無しさん2017/09/24(日) 23:40:57.69ID:bq1UbxKR
scenebuilder8.3.0 をwindows10マシンにインストールしたけど、起動すらしねえ
インストール先をcドライブ直下にすれば起動するけど、デフォルトのままにすると起動すらしない

ユーザー名を2バイト文字にしてるとアウトって言うオチか?

190デフォルトの名無しさん2017/09/25(月) 00:32:44.34ID:yRn++/+5
今時ユーザー名やフォルダ名が多バイト文字とかありえん
空白なしのアスキーのみが基本だ

人類は退化している

191デフォルトの名無しさん2017/09/25(月) 09:23:06.53ID:4z1dj5k1
内部でUNICODEだったりしたら2バイトまたは4バイトかも知れんけどな

192デフォルトの名無しさん2017/09/25(月) 09:52:16.53ID:MVEwzvIO
Win10 の、program files フォルダは、セキュリティが厳しいから、ダメだろ

193デフォルトの名無しさん2017/09/25(月) 10:14:54.41ID:Hbv9Bgjh
マックを買う

1941892017/09/26(火) 01:06:45.24ID:ISXp+bwe
解決した

ユーザー名を日本語以外にするのはなんかムカついたので、この方法を見習って解決した

日本語パス名でコケる場合の対処法
https://ogacha.wordpress.com/2013/10/22/

外国製ソフトの一部がバクを抱えているというだけで、安易に日本語ユーザー名を捨てられねえな

ちなみにnetbeansとかとの連携で気をつけなきゃいけないのは、scenebuilderに渡すfxmlファイルのパスも日本語を含んでたらアウトってこと

195デフォルトの名無しさん2017/09/26(火) 02:19:41.47ID:8E9hjYW6
あー。シンボリックリンクか。昔からUNIX系OSでは当たり前のように使われてるな。

196デフォルトの名無しさん2017/09/27(水) 10:55:51.01ID:JN7Norlj
しつもーん
言語学ぶためにキーボードで動かす「メイン画面とサブ情報画面」というかんたんRPGっぽいゲームを作ってます
2つの画面をBorderPaneの左右で持ってるSceneにonKeyPressedを仕込んで全部のキー入力をとってたのですが
「アイテムウィンドウをListViewでサブ画面に開いてフォーカス渡す」ということをしたところ、アイテムウィンドウで各種キー押すとメイン画面が普段通り反応します
メイン画面のキーイベント取得は止まっていて欲しいのですが、どうするのが普通なのでしょうか

197デフォルトの名無しさん2017/10/09(月) 16:55:19.81ID:rOjJRXoG
もしかして、scenebuilder自身には、fxmlをコード表示する機能ないの?

198デフォルトの名無しさん2017/10/09(月) 21:42:36.58ID:G+acWYD1
>>197
作った物保存したことある?

199デフォルトの名無しさん2017/10/09(月) 22:40:21.72ID:rOjJRXoG
セーブすれば当然出来上がったfxmlファイルの中身がコードになってるのは当然知ってるよ
つか、拡張子「fxml」の中身がコードじゃないワケないじゃん

何を勘違いしてるの?

200デフォルトの名無しさん2017/10/09(月) 22:52:10.12ID:WJvY/TnF
>>199
君の書き込みが曖昧だから伝わらないんじゃね?

201デフォルトの名無しさん2017/10/09(月) 22:57:25.42ID:rOjJRXoG
197を読んで意味が理解できない人なんているのか

世界は広いな

202デフォルトの名無しさん2017/10/09(月) 23:02:20.75ID:WJvY/TnF
「テキストで表示」とか書いてあれば通じていたかもね

203デフォルトの名無しさん2017/10/09(月) 23:04:59.65ID:kKYMaHZG
質問を分かりやすく書くのはお前の責任だろ

204デフォルトの名無しさん2017/10/09(月) 23:24:04.64ID:JpyT3If0
つか、マジでどう勘違いしたのか気になるわ

205デフォルトの名無しさん2017/10/10(火) 15:07:26.05ID:wIfLhEYc
このスレ見てる人いたんだな
JavaFX使ってるの世界で俺だけだと思う位誰も使ってないから
ちょっと安心した

206デフォルトの名無しさん2017/10/10(火) 15:24:41.48ID:8V61cfLq
kotlinが有名になってからはデスクトップGUI用としてちょっと注目されてると思う
それでも「おっそろしく全然使われてねーな」という感想しか出ないが…
まあJavaでデスクトップアプリケーションなんて修行か苦行のどっちかだからさもありなんって感じではあるが
どうせする苦労ならAndroidでやりたい

207デフォルトの名無しさん2017/10/10(火) 16:35:24.98ID:V7F64sUT
GoogleがPCで動くAndroidのエミュレータの超高速なやつ作ってくれればそいつと一緒に配布して解決w

208デフォルトの名無しさん2017/10/11(水) 13:52:17.18ID:rDStqhBV
超高速じゃなくてもよくね?

209デフォルトの名無しさん2017/10/11(水) 15:36:53.76ID:Ys/lPH2g
俺はGtK+とQtとJavaFXをこよなく愛している。

210デフォルトの名無しさん2017/10/11(水) 21:57:40.60ID:965RNSUn
一番有名なFXアプリってなんなの

211デフォルトの名無しさん2017/10/11(水) 22:01:40.02ID:ndlR7i+y
asciidocFX(嘘)

212デフォルトの名無しさん2017/10/12(木) 02:15:18.53ID:zzYoq+oB
>>208
遅いのなら既にAndroidの開発ツールに付いている

213デフォルトの名無しさん2017/10/12(木) 09:03:18.22ID:fTkEvokp
実際さあ、Linux系統から生まれたGtk+とQtはかなり設計が洗練されてスマートだよね。

で、JavaFXもオープンソース系とOracleが組み合ったからいい感じになってる。

真面目にVisualBasicとC#は嫌いだよw

214デフォルトの名無しさん2017/10/12(木) 13:28:29.73ID:oigZBoOs
QtはともかくGtk+ってスマートかな?

215デフォルトの名無しさん2017/10/12(木) 22:36:11.71ID:aCahvBGw
scenebuilder9.0って、java9に対応した以外に進化した点ある?

216デフォルトの名無しさん2017/10/17(火) 00:50:08.99ID:+myAY4Oq
見栄えの指定はCSSでやれってのはよくわかるのですが、見栄えの動的な変更ってのはどうやるんでしょうか
オブジェクトのプロパティを直接変更していた頃はそれこそ直接変更していたので楽だったのですが…

217デフォルトの名無しさん2017/10/18(水) 00:58:20.11ID:Ufoa6F5I
個人としてはJavaFXに無理に傾倒せずandroidのほうがいいような気がしてきた
ってかJavaGUIでコード+FXML+CSSの分離ができてステキだということを学んでいつでも使えれば充分なのでは…

218デフォルトの名無しさん2017/10/18(水) 04:35:04.61ID:AGJwpgKf
ハゲドゥ

219デフォルトの名無しさん2017/10/18(水) 09:26:27.34ID:vxuVZTaZ
最終的にパソコンGUIアプリを作るのが目的なら他のたとえばC#でもUnityでもいいわけだしな
業務だとかで「ともかくもとりあえずは絶対にJavaでなければならない」なんて縛りがある人がJavaFX選ぶもんだ
あとはこういうので絶対うっかり変なの掴んじゃう癖のあるまぞい人w
とにかくGUIしたいって場合に開発環境のダウンロード量が少なくていいというのは人によってはメリットかね…

JavaFX自体は悪くないよ!きちんとしてるよ!

220デフォルトの名無しさん2017/10/19(木) 07:54:29.48ID:0W8Mbz+A
デスクトップアプリケーションをUnityで作る事とかあるの?

221デフォルトの名無しさん2017/10/19(木) 14:19:20.70ID:ZPzh5gN2
うむ

222デフォルトの名無しさん2017/10/19(木) 14:42:55.34ID:2/grSLZk
むぅ

223デフォルトの名無しさん2017/10/19(木) 16:56:51.72ID:ymhc97rd
Qtは日本語がな。

224デフォルトの名無しさん2017/10/25(水) 18:41:39.56ID:87s3bYCT
>>219
JREインストール不要のネイティブアプリを作る。
https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/
JigsawとAOTでElectronはぶっ飛ばせると。

225デフォルトの名無しさん2017/10/29(日) 23:05:33.63ID:HFwKzEaT
kotlinでもjavafxが使えるなら、これから盛り上がるかな?

226デフォルトの名無しさん2017/10/30(月) 07:18:20.91ID:8j40TmoM
来年はJavaFX元年になりそうだね

227デフォルトの名無しさん2017/10/30(月) 19:21:25.53ID:QLuKdclD
>>225
使えるんじゃないか?たしか前にググった時に試した人の書いたページ見つかったと思ったぞ。忘れたけど。
探してみ。

228デフォルトの名無しさん2017/10/30(月) 19:25:11.44ID:rszNICd5
>>227
俺もみたよ
だから、kotlinが流行ればjavafxもツられて流行るかも!
って思ったんだわ

229デフォルトの名無しさん2017/10/31(火) 01:26:58.32ID:TMBeGW2t

230デフォルトの名無しさん2017/11/08(水) 23:43:37.36ID:PcntYuJQ
FXML使った書き方がぜんぜんわかんない
FXML文法自体は別になんともないんだけど
そもそもFXMLに置き換えてもコントローラーってのが動かないしこれがいつ何をやってるのかもよくわかんない
とりあえず破綻するまでCSSと適当なクラス分けで行こうと思うの

231デフォルトの名無しさん2017/11/22(水) 01:22:25.05ID:UHY5KrLj
>>230
よしっ!お兄さんと一緒にトレーニングだ!

1)scene builder起動->適当にコントロール配置->右ペイン->Code->
fxidに依存性注入するためのidを入力->メニューのview->show sample controller skeleton->
"Full"と"Comments"にチェック->"コピー"押してソースに貼り付け。
2) 左ペイン->Document->controller->Controller classに貼り付けたソースのcontroller classのFQNを入力。
3)Ctrl+SでFXML保存してxmlの中身のコントローラ周り確認。
4)scene builderに戻って右ペイン->Code->さっきfxidを入力したフィールドの下にハンドラを登録するテキストフィールドが
並ぶから好きなハンドラに適当なハンドラ名前を設定。
5) 4)で設定したハンドラと同じ名前のメソッドをコントローラクラスのソースに書き込んでFXMLアノテーション付ける->
この時メソッドの引数はハンドラの対応するイベントの型にすること(javadoc嫁)
6)scene builderに戻ってメニューのPreview->Show Preview in Window->さっき書いたハンドラに対応する操作で動き出す
7)メニューのPreview->Scene Style Sheet->add a Style Sheet...でアプリケーションスタイルシート設定->
スタイルシート側を書き換える度に見た目が反映される
8)メニューのView->CSS Analyzer->適当なコントロールを選択->下にスタイルが設定できるCSS一覧が出てくる
9)メニューのPreview->118N->Set Resource...->プロパティファイル選択->適当なコントロールのテキストフィールドのギアアイコン->
Replace with internationalized String->テキストフィールドに%が付いたらプロパティファイルのキーを入力
10)メニューのFile-> New from Template->末尾に" - Localized"の付くテンプレート選べばコントローラ以外のスケルトンを事前に吐いてくれる
先にコントローラークラスにハンドラ書いてから2)をすると4)でハンドラ設定する時補完する。
ハンドラは特権コードで取得するからメソッドのアクセス修飾は気にしなくていい。
scene builder使って出来ることほぼ全て説明した。FXML直接書かないとできないこともある。
FXML使ったjavafxアプリケーションの書き方がわからないならサンプル嫁。

232デフォルトの名無しさん2018/01/28(日) 03:06:51.07ID:7McxjqDu
javaEEのリスナーってjavascriptみたいなonclickとかできるの?

新着レスの表示
レスを投稿する