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

2014/07/05(土) 01:27:45.85ID:SKNQTnLZ
JavaFXについてのスレッドです
2015/04/16(木) 11:47:22.99ID:PkMvowGQ
標準なんだからこれからはJavaFXを使って行ったほうがいいっていうのが初心者の俺の意見なんだけどどうしてJavaFXはだめなんですか?
ちなみにパソコンのスペックが低いのでeclipseが重すぎて今は勉強してない
2015/04/16(木) 20:00:17.46ID:w2CLpnfg
>>82
低スペノートでchrome使ってるけどまとめサイト見る時画像がたくさんあると固まるので違うと思う
2015/04/16(木) 22:27:59.90ID:n/Sv94h6
>>83
JavaFXがどうというより、JavaでGUI自体もう絶滅に近いから
2015/04/17(金) 19:48:15.15ID:TBjJovNo
JavaFX Scene Builder 1.1
の頃にちょこちょこ触って今後のバージョンアップに期待と放置してたら、
いつのまにかOracleからのバイナリ配布無くなってるのね
オープンソースに任せたから欲しけりゃ自分でビルドしーやw
ってか?
OracleもうJavaFXに飽きちゃったん?
2015/04/17(金) 21:42:26.03ID:vRmsAur5
FXはもとから正式にOracleとライセンス契約してる法人向けという色が強い
2015/04/18(土) 00:19:16.39ID:g4wbtPHm
>>82
まだ、実装もこなれてない可能性が。
webviewだとすると、画面上に表示されてない部分をjsから操作して隠すstyle="display:none;"ことはできるのかな?
2015/04/19(日) 11:46:19.34ID:P2fhL6qH
<?import javafx.scene.shape.*?>
<?import javafx.scene.paint.*?>
<?import javafx.geometry.*?>

<Box fx:id="box" depth="60" height="50" layoutX="214.0" layoutY="158.0" width="50">
<material>
<PhongMaterial diffuseColor="red" />
</material>
<rotationAxis><Point3D x="1.0" y="1.0" z="0.0"/></rotationAxis>
<rotate>30.0</rotate>
</Box>

こんな3DシェイプのBoxがありまして...
2015/04/19(日) 11:51:20.46ID:P2fhL6qH
Parent fxml = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(fxml);
// Scene scene = new Scene(fxml, 600,600, true, SceneAntialiasing.BALANCED);
stage.setScene(scene);
stage.show();

そのままだと Boxの輪郭がジャギーなので、
Scene生成時に SceneAntialiasing.BALANCED を指定してみたのですが、
それをすると ButtonやListViewやらが反応しなくなってしまいます。
3DのShapeにアンチエイリアスがかかるようにするにはどうするのが正解なんでしょうか?
2015/04/19(日) 18:40:38.25ID:P2fhL6qH
3Dシェイプ組に関しては fxmlを分離してみたら表面上は期待通りになりました。
ただ、Controllerクラスはfxml毎に生成されるので
classのstaticフィールドを介してコントロールしてみたりと、ちょっと気持ち悪い感じです。

// class JavaFXApplication
public void start(Stage stage) throws Exception {
SubScene sub1 = new SubScene(
(Parent) FXMLLoader.load(getClass().getResource("FXMLDocument1.fxml")),
600, 600, true, SceneAntialiasing.BALANCED);
Parent sub2 = FXMLLoader.load(getClass().getResource("FXMLDocument2.fxml"));

Group root = new Group();
root.getChildren().addAll(sub1, sub2);
Scene scene = new Scene(root,600,600);
stage.setScene(scene);
stage.show();
}

// class FXMLDocumentController ...
@FXML
private Box box;
static Box _box;
...

public void initialize(URL url, ResourceBundle rb) {
System.out.println("Hi: " + this.toString() );
if (label!=null) _label = label;
if (box!=null) _box = box;
}
2015/04/20(月) 02:00:29.72ID:9Ogc4IaC
> ただ、Controllerクラスはfxml毎に生成されるので〜
この件に関しては解決しました。

FXMLDocumentController controller = new FXMLDocumentController();
FXMLLoader loader;
loader = new FXMLLoader(getClass().getResource("FXMLDocument1.fxml"));
loader.setController(controller);
SubScene sub1 = new SubScene(loader.load(), 600, 600, true, SceneAntialiasing.BALANCED);

loader = new FXMLLoader(getClass().getResource("FXMLDocument2.fxml"));
loader.setController(controller);
Parent sub2 = loader.load();


この場合、fxml側では fx:controller 属性を指定してはいけないとの事
2015/05/18(月) 16:15:54.22ID:ODeJ8ObC
ChromeのNPAPIサポートが終わったらJavaFXも終了?
2015/05/18(月) 20:11:51.06ID:4bXcOge2
そもそも始まったことがないだろ
Oracleに大金を献上してる天上界の方々が組み込みに使ってるくらいで
2015/07/22(水) 18:41:29.94ID:HlNO1OSu
しかし個人レベルなら決して使い勝手悪くはないと思うんだよな
2015/07/23(木) 08:20:34.05ID:0SALeEZV
俺もそう思う
97デフォルトの名無しさん
垢版 |
2015/08/18(火) 13:19:37.94ID:g/qLQ8af
ボタン押して、処理を実行する場合
処理が終わるまでボタンを使用不可にしたいけどどうやって書くの?
2015/08/18(火) 17:22:51.64ID:wAgTK3R7
>>97
onActionでButtonをdisableにして処理スレッドを呼び出して、
処理の最後でイベントなりrunLaterなりでButtonをenableにすれば良いのではなく?
99デフォルトの名無しさん
垢版 |
2015/08/18(火) 23:07:21.10ID:g/qLQ8af
>>98
ありがとう。できました!このような感じに書きました。
private void ボタン_onClick(final MouseEvent aEvent) {
ボタン.setDisable(true);
Task<Void> task = new Task<Void>() {
@Override
public Void call() {
ボタンの処理();
ボタン.setDisable(false);
return null;
}
};
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(task);
}
2015/09/05(土) 09:06:37.00ID:XHbh3OBS
Stageが最大化したことを取得するイベントが見当たらなかったのですが、どのように実装すれば良いのでしょうか?
101デフォルトの名無しさん
垢版 |
2015/09/08(火) 17:48:08.43ID:VZxIJmd1
fxだとwebブラウザ作れるって言うから、マジかと思って今作ってる
マジで作れてるからfxって神だと思ってるよ
タブの入れ替えが出来ないっぽいのが難点だ
2015/09/08(火) 22:11:15.38ID:sosFruyq
そんなもん.NETでもQtでも昔から作れるよ
Swingがゴミすぎただけ
2015/09/08(火) 22:14:40.96ID:oK5RMRHa
へー
2015/09/08(火) 22:28:33.26ID:VZxIJmd1
swingで作れたら良かったのにと思ってる
何とかタブブラウザっぽくなってきたけど検索が問題のようだ
マウスジェスチャーは別ツールに頼る
105デフォルトの名無しさん
垢版 |
2015/09/10(木) 19:33:53.32ID:q6SXiyXu
今はSwingからFXのコンポーネント使えた筈…
2015/09/10(木) 19:49:54.20ID:yxh9znUn
FXって8で終わりそうなの?
開発続くなら触るが・・・
2015/09/10(木) 21:18:52.74ID:5OHKsqUt
レンダリングエンジンもってるのか
2015/09/10(木) 22:31:26.96ID:NaQAaAQJ
JREの一般提供がいつ打ち切られてもおかしくないレベルで
クライアントJavaは消滅しつつある
2015/09/10(木) 22:34:45.49ID:etHqWsfS
MSの工作員乙
2015/09/10(木) 22:37:34.49ID:VXtvD0Vx
残念ながらクライアントJavaを一番葬りたがってるのは他でもないオラクル様だよ
2015/09/11(金) 00:16:15.14ID:c63AsPh3
flashはセキュリティ面で、silverlightは新規開発終了で終わりが近づいて、javafx登場する間も無くhtml5に変わってくタイミングなのかね。
java appletはセキュリティ強化とfxの進化も続いて出番あるかなと思ったけど、applet自体がセキュリティ強化で既存のappletが動かなくなって馴染みがなくなってる感じがする。
せめてホワイトリストで動けばと思うのだけど、証明書の問題が回避出来ないようで。
2015/09/16(水) 05:21:49.92ID:5bHXrW5J
Fxでタブブラウザを作ってます
「ハイパーリンクをホイールクリックで新規タブにページをロード」が実装できないです
色々参考にしながら、ハイパーリンクのDOM取得してgetAttribute("href")で
href属性を見るようにしたのですが、普通のサイトは取れてもgoogleの次へリンクとかはnullが取れてしまいます
WebViewでハイパーリンクから、正しい遷移先URLを取得する方法ってありますかね?
2015/09/18(金) 14:34:13.76ID:K0k1zzGm
Scene Builderで多角形を作る方法が判りません。
デフォルトで三角形ができますが、そっからそういう操作で角を増やすのかが謎です。
知っているかた教えてください。
2015/09/18(金) 14:35:00.53ID:K0k1zzGm
×そっからそういう操作
○そっからどういう操作
2015/10/05(月) 16:31:34.39ID:ABZW4IbC
JDKを8u31から8u40に変えたらcanUndoメソッドとcanRedoメソッドが使えなくなった。
2015/10/05(月) 17:31:27.31ID:ABZW4IbC
ちなみにJavaFXでのこと。
2015/10/05(月) 18:26:21.89ID:ABZW4IbC
ここ、JavaFXのスレッドだったか。
2015/10/05(月) 20:13:50.49ID:8GS14qep
FXMLで簡単に似た目変えれるから好きなんだけどなぁ
ほんと趣味の領域だわ・・・
119デフォルトの名無しさん
垢版 |
2015/10/05(月) 23:14:39.90ID:olU7fFY4
各種要因でCanvasの再描画を行っていて、
これらがいっぺんに発生したときには、
再描画をまとめてやりたいんだけど、
アイドル時間に呼ばれる処理って定義できるんですか?
120デフォルトの名無しさん
垢版 |
2015/10/20(火) 08:33:29.05ID:xYr22qd8
少しずつだけど日本語のドキュメントが増えてるね。

ttp://docs.oracle.com/javase/jp/8/javafx/api/index.html
ttp://docs.oracle.com/javase/jp/8/javafx/get-started-tutorial/
ttp://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/
ttp://docs.oracle.com/javase/jp/8/javafx/fxml-tutorial/
ttp://docs.oracle.com/javase/jp/8/javafx/properties-binding-tutorial/
ttp://docs.oracle.com/javase/jp/8/javafx/events-tutorial/
ttp://docs.oracle.com/javase/jp/8/javafx/graphics-tutorial/
2015/10/20(火) 19:20:53.48ID:oM+8zZ4h

見ながらやってみるか
2015/10/26(月) 18:18:21.82ID:dhOM9I0V
ListViewをstaticで定義できないんだけど他のクラスからいじりたい場合どうすればいいの?
2015/10/30(金) 13:13:19.00ID:hAaoa/hc
もっと早く出てたら色々状況も変わっていたのかもしれないけど
後出しだから出せたものだろうからなあ
124デフォルトの名無しさん
垢版 |
2015/11/07(土) 22:42:58.14ID:j9yLVDix
ListViewメモリ食い過ぎ
2015/11/21(土) 05:34:06.30ID:1N1F4ORO
JavaFX propertyと組み込み関数インタフェースの相性はなかなかいいな
XY座標を取るBiPredicateをチェーンさせてフィルタとしてプロパティに設定とか別の言語触ってる感覚
126デフォルトの名無しさん
垢版 |
2015/11/24(火) 17:51:24.39ID:E6WyfuLQ
古いGPUだと実行できないようなんですが、GPUのチェックを回避する(?)とかして実行する方法はないでしょうか。
127デフォルトの名無しさん
垢版 |
2015/11/30(月) 15:26:00.55ID:XdLPFdTm
テキストを印刷する時にフォントを強制的にパス化する方法ってあるかな?
システムにインストールされていないフォントを印刷する場合はこれをやってくれるのだけど
システムにインストールされているフォントでも同じようにパス化してくれると可搬性が高くて助かるのだけど
2015/11/30(月) 19:33:29.31ID:XdLPFdTm
jfxtrans-labsに以下の一行を発見して無事解決。地味に凄いなJavaFX

Path path = (Path) Shape.subtract(text, new Rectangle(0, 0));
129デフォルトの名無しさん
垢版 |
2015/12/14(月) 00:40:04.08ID:TBvoHfDM
俺が始めたからアゲ
2015/12/15(火) 22:28:36.32ID:7A5/Ndls
よし
盛り上げてくれ
2015/12/15(火) 22:38:20.68ID:QtUVTFLl
よし、ハゲてくれ
2016/01/10(日) 09:57:50.79ID:YJX3CxHj
オラクルってなんで Scene Builder のインストーラ配布やめたの?
なんかソースコードで配布してるみたいだが
2016/01/10(日) 10:11:21.10ID:jKn5h2Is
誰も使わないからでしょ
フェードアウトさせていきたいんだよ
134デフォルトの名無しさん
垢版 |
2016/01/10(日) 12:14:14.26ID:e/6zdqSA
>>126
-Dprism.order=j2d
2016/01/10(日) 12:59:13.04ID:1ZDRgoMO
FXMLのリファレンスが無い時点でやる気ないの見え見え。
もうGUIはHTMLで、クライアントをFXのブラウザコントロールで作ろうと思ったら、ブラウザコントロール自体が旧式だったでござる。
2016/01/10(日) 17:36:25.59ID:YJX3CxHj
WebKit って旧式なん?
新式になるためには何サポートしてればいいの?
2016/02/23(火) 23:31:24.22ID:MBXrRoTm
MediaPlayerのチュートリアル試してみたんだが、最後まで再生した後の挙動が変だね

再生終わった状態で再生ボタン押しても反応なし
スライダー少し戻してから再生ボタン押すと一時停止して
更に二度押すと先頭から再生を始める
http://docs.oracle.com/javase/8/javafx/media-tutorial/playercontrol.htm
2016/06/12(日) 19:13:58.23ID:PA50JpJO
TreeViewでcellFactoryをnullに設定した時の既定のTreeCellの定義はどこで確認すればいいでしょうか?
APIは追いきれなかったのですが、単純にTreeCell<T>()を使用している訳では無いようなのです
解りづらい質問で申し訳ないです
2016/06/13(月) 21:34:59.89ID:xZcBDkZ+
java dayの資料見てみたけど
まだjava fxやる気はあるんだね
2016/06/14(火) 21:23:30.06ID:9Cxqkr8S
tooltipが表示されたところにちょうどカーソルあったら表示と非表示繰り返してしまいます
回避方法ありませんか?
2016/07/03(日) 22:26:35.55ID:AzA8asek
まじ使ってるひといなそうだな・・・
2016/07/08(金) 07:30:13.22ID:jZEWBpdO
開発終了しないのが不思議なレベル
オラクルのSI部門や大口顧客が使ってるんだろうな
2016/07/09(土) 17:56:01.05ID:amqmKLxV
>>142
国際宇宙ステーションの管理ソフトは
JavaFXらしい
2016/07/10(日) 13:23:08.12ID:Pu5zhpFc
飛行機がJavaなんか使ってたら、その飛行機には絶対に乗らないけどな
それとも、業務向けのJava環境とか作って内緒で使ってるのかな
145名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2016/07/10(日) 17:01:14.16ID:Pg8qYW3c
何れ飛行機も計器類が全部まとめられてタブレットに表示されてそれで操縦するようになるんだろうなあ
2016/07/10(日) 19:35:44.78ID:vClNR34Z
そして飛行機に乗る時にタブレットやケータイを全員取り上げられる
2016/07/17(日) 21:18:54.43ID:35UaP9b8
>>144
スペースシャトルの航空管理システムもJavaだぞ
2016/07/25(月) 21:18:13.23ID:Oy0UZRX6
>>147
OracleのJDKじゃなくて、何千万円もするようなjava開発環境つかってるんだろうな…
2016/08/20(土) 23:54:37.12ID:caLOsDcn
>>148
ところがどっこいOracleのJDKなんだよなぁ・・・
2016/08/22(月) 02:10:07.72ID:KXXznEJ6
外からハッキングされて落ちるわけだ
2016/10/01(土) 17:20:54.04ID:ptS7sjp8
>>132
超亀だけどアーカイブの中にあるな

リンクはちゃんと直して欲しい
2016/10/01(土) 22:13:08.40ID:ptS7sjp8
現在はここです。念のため
http://www.oracle.com/technetwork/java/javafxscenebuilder-1x-archive-2199384.html
2016/10/02(日) 07:53:45.10ID:M4e1p4R9
最新版のビルドはここか
http://gluonhq.com/labs/scene-builder/
2016/10/02(日) 08:15:35.10ID:M4e1p4R9
最新版落としてみたけどどうも挙動が変だな
アーカイブの2.0に戻した
2017/01/14(土) 21:21:51.36ID:Z4YPx582
TextFieldでアンドゥがキャレットの移動まで記録しちゃうんだけど、
文字列の更新だけ記録させることって出来ますか?
2017/01/14(土) 21:26:31.37ID:Z4YPx582
Ctrl+ZやCtrl+Yを押したときに、文字列が更新されるまでundo()やredo()を繰り返し呼ぶとかやってみたけど、
適当にアンドゥ→キャレット移動→リドゥしようとして出来ずに(´・ω・`)
157デフォルトの名無しさん
垢版 |
2017/01/18(水) 10:48:47.25ID:A+XqqRn6
ある程度使ってみたけどよく出来てると思う
ウインドウもかなり低レベルで描いてて本気を感じる

>>156
アンドゥ実装あるけど貧弱だよな
継承もできないし
2017/01/20(金) 22:27:38.74ID:YYVwGK9Y
Linuxでも動かしたいためにJavaFXやってみるわ
159デフォルトの名無しさん
垢版 |
2017/01/21(土) 15:51:04.86ID:IpoNsIX7
久しぶりにTornadoFXのサイト見たらドキュメント含めて以前より充実してたので、
IntelliJでサンプル動かしてみたけど、これすごくいいね。
scalafxからこっちに乗り換えることにした。
2017/01/21(土) 17:14:31.53ID:LFvCw0cQ
宣伝乙
2017/01/24(火) 01:15:21.00ID:LaS/fHVF
いまいち流行らないね
2017/01/24(火) 14:04:28.78ID:Hze+AB3k
そこそこ好きなんだけどな
2017/01/27(金) 19:09:28.14ID:9J/zbc1M
みんなどうやってテストしてる?
2017/03/04(土) 02:49:33.74ID:D3aEnBv5
printf
2017/03/04(土) 02:52:23.51ID:xxL575qx
ボタンを押す
2017/03/04(土) 08:35:41.98ID:IIB6SCJa
guiのテストは手動、目視だわな
2017/03/04(土) 09:21:23.24ID:mnWA8+jF
新人に押し付ける
168デフォルトの名無しさん
垢版 |
2017/03/17(金) 13:44:52.11ID:pN7rjSre
Spinnerを使おうとしたら、ユーザーがEnter押すまで値が代入されなくて困ってます。
Spinnerでユーザーが値を変更したら動的にそれを受け取る方法ってありますか?
2017/03/17(金) 17:18:41.08ID:91LKoVYa
SpinnerのvaluePropertyを適当なものにバインドすりゃええんとちゃうん?
2017/03/24(金) 05:10:17.89ID:P+Gq0AUT
javafx.scene.image.WritableImage に文字を書く方法を知りたいです。

下記のように BufferedImage に対して Graphics2D を用いて行うようなことを、javafx.scene.image.WritableImage に対して行いたいのです。

BufferedImage image = new BufferedImage(1024,1024,BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = image.createGraphics();
graphics.drawString("Hello, World!", 0, 512);

javafx.scene.canvas.GraphicsContext に Graphics2D と似たような機能があるは分かったのですが、Canvas ではなく、WritableImage に直接文字を書く方法が知りたいです。

なんらかの代替案でもかまいませんので、教えていただけると助かります。
2017/04/04(火) 22:18:07.16ID:AXNnTF9c
PrinterJob.createPrinterJob().showPageSetupDialog(new Popup());
でキャンセルボタンを押した時の戻り値が、
Linuxではfalseだけど、Windowsだとtrueになるみたいなんだけど、自分だけ?
それとも誰もこんなもの使っていないから、気づかないだけ?
2017/04/05(水) 17:27:24.83ID:aON2fmDg
そういやPrinterJob使ったことないな…
2017/05/03(水) 20:29:13.06ID:TnqFB826
NetBeansからFXML開くのにSceneBuilderがエラー吐いてて悩んでたけど
Desktopにプロジェクト置いていたのが問題だと言うことが分かった
なんでやねん・・・
FXなかなかいいと思うんだがなぁ・・・
2017/05/03(水) 23:37:57.16ID:zkWNfzXl
誰も使ってないんだから開発環境が糞なのは仕方ない
2017/05/06(土) 00:51:26.28ID:WjpUlC2z
覚えるためにWPFで作ったのを移植してるけど
なんというか逐一躓く
WPFの方が作りやりやすいわ
まぁjavaの仕様が分かってないのもある・・・
2017/05/08(月) 18:58:57.66ID:naSGcbWP
Windowを画像で切り抜いてて驚いたけど
Windowsならデスクトップ解像度以上の画像で切り抜きできるね
LinuxのUbuntuだとデスクトップ解像度までになった
2017/05/08(月) 20:01:57.15ID:zqCx33pk
そんなことはない
178176
垢版 |
2017/05/09(火) 14:51:02.23ID:hTTaxzLo
Linux詳しくないからよく分からないんだけど
起動時だとウィンドウをデスクトップ外にはみ出すことができない(マウスドラッグでウィンドウ移動できるようにしてる)
このままだと画像がデスクトップ内に切り取られる
Alt押しながらでウィンドウを移動してデスクトップからはみ出る状態にしてるときに画像をセットし直すと切り取られない
ウィンドウマネージャの仕様なのかいな
解決方法あるんだろうか・・・
transparentしないタイトル付きのウィンドウならそんなことはならないけど・・・
179デフォルトの名無しさん
垢版 |
2017/05/09(火) 15:13:50.32ID:fjUlBZmQ
xwdでもはみ出してるとだめなんか?
2017/05/12(金) 21:18:01.55ID:sM1A0EGQ
TableViewの指定行のTableCellってとる方法ありますか?
2017/05/16(火) 14:11:29.04ID:PJHVD3ti
>>179
xwdしても切れたままですね
Alt押しながらでウィンドウを移動してもはみ出してた部分はなくて切れたままです、これをxwdしても切れたまま
そのあとFileChooser表示してキャンセルで戻ったりすると表示される・・・
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という発想がそもそもダメなのか…
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況