Java低速GUI Swing 10
JavaFXが死んでこっちは盛り上がっているかと思ったが、そうでもないんだな。 向こうのスレから転載 An Oracle White Paper March 2018 Java Client Roadmap Update https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf Swing and AWT AWT has been an integral part of Java SE since its launch in 1996. Swing was introduced shortly thereafter as a separate library and finally incorporated into “J2SE 1.2” in 1998. Both toolkits are still part of the Java SE Specification and core to many other toolkits and applications that build on top of them. Oracle will continue developing Swing and AWT in Java SE 8 and Java SE 11 (18.9 LTS). This means they will be supported by Oracle through at least 2026. > This means they will be supported by Oracle through at least 2026. オラクルがこういう言い方するときは要するにまだ何も決まってないってことだぞ。 未来のことに触れてると見せかけて現状を説明しただけっていういつものやつ。 GNU LGPL3で立ち上げたいけど、 Javaのオープンソースでもいける? 一応GNUにメールはしてる 大丈夫だろうか、あまりGNUライセンスにする傾向じゃないプログラムで、 ただ、他に向いてそうなライセンスが見当たらないんですよね。 メールはしたから返事まちかな、、 OSDN > ソフトウェアを探す > マルチメディア > サウンド/オーディオ > ミキサ > Extended MIDI Mixer Yahoo知恵袋の宣伝目的NGに該当するので、こちらで伺います。 Swingなのでこのスレを見てました。 ビクビクしてますが、、 MidiDevice用のINはスレッドをAPIが立ち上げてるのか 一応対処しました。 ひょっとしてOUTも? あとOutputのバッファオーバーを知るAPIがないから それは勘弁な 0.93リリースです。 予想通り過疎ってるwww 独り言落としてくね! Win版OpenJDK使用のアプリで、タッチパネルピンチ操作イベントをマウスホイールイベントとして拾えないバグ、報告されたの5年前なのにずっと放置w もう本家もやる気ないんだろな。 FXですらMac版のスレッド実装問題でdndで落ちるバグ放置されてるし。 仕方ないので、前者はJNA使ってイベント拾う実装を書いてる。 ピンチ検出までできたからもう少しでインかアウトの判定に辿り着けそう。 というわけで未だにswingでマルチプラットフォームアプリ書いてるわけだけど、 WindowsのUWPはオワコンになったし、 なんだかんだで業務用アプリ書くには悪くない環境ですよswing は。 動作もjavascript頼みのマルチプラットフォームフレームワークより軽いと思う。 では、数年後スレが残ってたらまた来ます。 >>451 >なんだかんだで業務用アプリ書くには悪くない環境ですよswing は。 これは大収穫のお言葉、詳しく教えてください!! プログラミングモデルは好きだけど look & feel は不完全な模倣になってて ネイティブのラッパーの方が 実用的だなと思った わしも! 非同期処理の実装しやすいし androidとかフレームワークによってはダイアログ表示と結果取得が非同期だったりするしw swingアプリにJFXPanelのwebkitブラウザ実装したUIキメラ作ったったw これでjsベースのエディタとかビューのモダンなUIフレームワーク使える ブラウザ内のjsエンジンから発生したイベント拾ってJava側でハンドルする ただswingとjfxのスレッドが別だから 初期化時の同期と相互にinvokeLater()使うことに注意必要だけど 男は黙ってJEditorPane サシャナゴンの方が好きだ >>451 本業の合間にやってたから今頃なったけど、Windowsでピンチ操作拾えないバグの回避実装に成功した~ JNAでWin32のローカルメッセージハンドラフックしてピンチイベント検出できた VC++の構造体の内部資料が無くて 色々なソースから類推するのが大変だったけど勉強になった >>452 亀レスすまん 流行りのWebのvue.jsとかreactとかより 設計がシンプルだからデバッグしやすいなど実装が楽ってだけ 業務用はuiのカッコ良さより安早楽が大事でしょ? あとビジネスロジックにおいてJavaは高機能ライブラリが豊富なのも有難い MSの.NETほどにフレームワーク設計しくじってぐちゃぐちゃになってないし 逆に今どきのおしゃれインターフェースにしたいならjs系がいい そういやスレタイでswingを低速言うてるけど JavaFXのほうが初期化しめちゃめちゃ時間かかってもっさりしてるんだけど… そしてmacでは未だにスレッド競合解決してない swnigよりオワコンな気がする スタンドアロンアプリ自体が絶滅しようとしているんだ… クラウドが大規模障害起こして復旧目処立たなくなったとき 人々はjavaアプリの偉大さを噛みしめることであろう swingは死なず、ただ去りゆくのみ JavaでGUIするぐらいならウインドウにHTMLでええやん… まあハードウェアアクセラレートあってもHTML/jsのUIがもっさりしてるのみんな慣れてきたしね GUI表現としてHTML/CSSは十分なんだけどロジックをJavaScriptで書くのはつらい ビジネスロジックは鯖側のnode.jsで書けるしスタンドアロン系も同じnode.jsで動くフレームワークあるよ ただマルチスレッドじゃないから似非非同期による安定実装めんどくさい サーバー側のnode.jsだってJavaScriptじゃん それに昔と違ってビジネスロジックはサーバーサイドが担当するって考え方も今は通用しない SPAが流行しててクライント側で動かさなければならないロジック(JavaScript)が昔より増えてるのだ ビジネスロジックとUIロジック整理しないで実装してるから開発管理破綻してるのでは? フロント/バックエンド部隊の連携、運用保守まで考慮した設計できないならSPAは採用すべきでないと思うけどなぁ 俺のvue.jsとlambdaの開発リーダー経験からの話だけど next.jsあたりはもっと進歩してスッキリしてんのかと思ったが違うの? ビジネスロジックをサーバー側に閉じ込めようとすると SPAではクライント/サーバー間の通信回数が増えてレスポンスが低下したりするのよ だからクライントでビジネスロジックを動かすようになってきてる そうなのか、そんなファットになると 遅延読み込み使ってもロード&jsコンパイルのせいでキャッシュ前は凄く重そうだ そんならアプレットやActiveX時代のほうがよほど合理的だよねw 4年くらい前は鯖と無駄な通信しないように同期対象データを複数のグループにまとめてパフォーマンスと操作性のバランス保ってたけど いまだにフレームワークで鯖と自動差分同期も出ないんだ… というわけで、アプレットはダメでもswingアプリ復活の方向でめでたしめでたしw Ruby on Rails 7 からは、Hotwire に変わった。 HotwireはHTML Over The Wireの略で、 SPAの開発において、JavaScriptのコーディングを極力必要としない。 脱node.js, webpack JSONではなく、HTMLベース。 サーバーサイドでHTMLを生成し、WebSocketでWebブラウザへ送信する https://techblog.gmo-ap.jp/2022/07/05/rails-7-hotwire/ https://zenn.dev/shita1112/books/cat-hotwire-turbo/viewer/abstract SSRていうやつけ? Rails嫌いではないがすっかりオワコンイメージだなあ いやほんとにファットなアプリケーションをHTML/JSで実装しようというアプローチ自体が間違ってたんだなぁとしか思えない そんならアプレットやバイナリ配信してキャッシュさせるアプローチに戻したほうがいい Rails 7 のHotwire, Elixir のPhoenix もLiveView で、 websocket によるリアルタイム通信に変わった。 これはHTTP2 で通信速度が速くなったから ここ数年、SPA でReact に奪われたシェアを回復すべき戦略。 JSON を送って、ブラウザ側で組み立てなくても良い Webフロントエンドは成熟しないねー 次々と新しい技術が登場してきて大変 いま最新技術を選択しても数年後には「まだそんなの使ってるの?」と言われちゃう 日本の客も開発者も要件整理苦手だから泥縄で作るじゃない? そういうやり方の場合SPAは実装ぐちゃぐちゃで使い勝手も悪くメンテも困難になる レガシーなページ遷移あったほうが自然とトランザクション整理されるからお似合いと思うけど そういう意味ではswingとかスマホでスタンドアロンアプリ作るのも日本人向きじゃないと思う >>478 >レガシーなページ遷移 Ruby on Rails では、turbolinks を使って、pjax になる ajaxとhistoryAPI(popState, pushState)を利用して画面遷移する。 js, cssの読み込みを初回時に行い、次回以降の読み込み処理を省略することで高速化する いまではPCのスペックが上がって、遅くもなんともない。 JAVA SWING のボタンはお洒落だからカワイイから JAVA SWING はボタンはカワイイくてお洒落だ swingアプリメンテしてて困るのは 最近は横4000ドット近くあるノートPCで アイコンやフォントが小さすぎる問題 古いフレームワークだからそういうの想定したスケーリング機能がない 結局自分でcontainer内のフォントサイズを再帰的に設定するメソッドとか作ったが 何十個もあるダイアログ全部まで手が回ってない… 逆に>>481 の言うように、スピードは全く問題なくなったね >>482 かわいいっていうか ちっさすぎて見えなくなったよ SwingってHiDPI対応してないの? Swing で作られてるらしいIntelliJ IDEAはHiDPI対応してるっぽいけど? >>485 標準のL&Fは対応してないよ 対応しているように見える実装は独自L&F実装してる OS側の強制拡大スケーリングはうまくいかないこと多いし やはり時代遅れ そうなのか ちなみにJavaFXはHiDPIに対応してた >>483 そんな高解像度のまま使っているのがおかしい jfxはmacOSで致命的ハングするから 代替にならないんだよなぁ ところでJavaFXにあるような カレンダーによるdatechooserいいの無い? 名前忘れたけど有名どころのやつは HiDPI対応してないうえにフォント拡大も パネルサイズ変更も対応してないので つかえないんですよ read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる