Java低速GUI Swing 10
アポーがアップデート配信タラタラするからだろ 別に堅牢なOSでもないのにウィルス対策入れてないの多いし >>171 ,172 友人が先祖代々信者だがそういう連中はそういうの分かり切っててmacだからで諦めてるよ。 あれが出来ねーとかごちゃごちゃいってるのはにわかだから生粋の信者は文句ないらしいぞ。 開発するならwindowsとか言ってたし。 道具に接する態度としてどっちがいいかはなんともいえんな Macなんて所詮道具(キリっ) 道具が目的化したのがWindows(キリっ) アプレットでjava7に切り替えた途端、ネットワーク接続が以下のエラーで失敗するようになりましたが、 アップデートで何か気にしなければならないことはあるでしょうか? Caused by: java.net.SocketException: Permission denied: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79) >>176 -Djava.net.preferIPv4Stack=true IPv6がらみ。 JavaFXの姉妹スレはC++さんに荒らしされてるのでこっちでお聞きします。 metalがまだsteelのころに、metalworksだったかのサンプルでcolorがred,greenなど全体の印象を変更できたのですが、metal laf (steel,ocean)の時にそれらカラーなどをSystem.setPropertyなどのプロパのセットのやり方だけで設定することは出来ませんか? Containerクラスの以下のメソッドで、マウス下の部品を取ろうと思っていますが、 コンボボックス、テキストボックス、JTabbedPane、JScrollPaneなどは取れますが、ラベルがどうしても取れません。 なにかいい方法はないでしょうか? Component getMouseEventTarget(int x, int y, boolean includeSelf) { WindowsのネイティブアプリからSwingアプリにドラッグアンドドロップすると ネイティブアプリ固まるようになってね? Swingアプリを終了するまでネイティブアプリ操作できないし ネイティブアプリ領域にマウスポインタもってくとアイコンがドラッグアンドドロップ状態のままだから ドラッグアンドドロップの終了処理がないとかのミスだと思うが。 ドロップで受けたときにスレッドに処理を預ければいいんじゃないの?知らんけど パネルの指定した座標上にある最上位の部品を判断する方法はありますか? これの逆ギャックっぽいものを探しています。 SwingUtilities.getDeepestComponentAt アプレットとか考えなくて良いならgetWindowAncestorで取れんじゃないの? JTextArea のインスタンスについては setBackground(色) を使って普通に背景色を 設定できるんだけどなぜか JTextPane のインスタンスには同じ方法で設定できません (デフォルトの白のまま) 考えられる問題点とか対処方法について情報があったら教えて >>187 背景色指定されたHTML文書読ませた、とか? うちでは引数なしコンストラクタで生成したJTextPaneに setBackground()で背景色指定したら反映された。 >>189 読み込ませたのは通常のプレーンテキストです。単純な ttp://www.johnloomis.org/cpe101/notes/SwingGUI/JTextPane/diagnostic.html みたいな場合は問題なく背景色が設定されるんだけど少し複雑な構造になっているので おかしなことをやっているのかもしれない。JTextPaneの場合には色の設定方法にコツが いるみたいなのでJTextAreaへの変更も含めてもう少し検討します。どうもありがとう ボタンを押すと、GUIが配置される仕組みにしています。 JButtonやJLabelなどはこれができるのですが、JTabbedPaneだけ表示されません。 JTabbedPaneは何か特殊な仕様になっていますか? 自己解決しました それぞれのタブを全部可視化しなきゃならんのか Javaアップデートの準備ができました? って疑問形でタスクバーに表示されたけど、こんな風な聞かれ方だっけ? ( ´_ゝ`)フーン・・・ Σ (゚Д゚;)マジ? 念のため無料のアバストで全てのファルをウイルスチェックしましたが大丈夫だったぽいです。 public class main extends JApplet{ public void init(){ JButton 画像の描画スレッド } public void run(){ 描画スレッドの中身 repaint(); } public void paint(Graphics g){} } 画像を描画しながらJButtonを前面に表示するにはどうやれば良いですか? また、初期状態でJButtonが表示されずにマウスポインタをオーバーさせたら表示されます。これはどうしてですか? 2000年付近の数年はイントラ向けアプリでボロ儲けではないけど普通に。 今も仕事自体はあるけど段々他プラットフォームに移行してる 2000年っていうと、いわゆるWeb系の超初めのころだね。Strutsとかまだなかったんだよな・・ サーブレットとJSPとJavaBeansで頑張ってた頃。 単純にJTextAreaへの参照が正しく貼られていなかったのが原因でした >>189 さんありがとう 軽量の意味はOSの機能を使っていないという意味なんですよ。 速いという意味ではないんです。 だから、Swingは十分高速なんです。 今のスレタイに落ち着いた経緯をご存知ないということでしょう JavaFXスレと分離しているのはなぜよ? 向こうはもう完全にFXスレにしてまえばえーやん Java低速GUI Swing & JavaFX 10 http://toro.2ch.net/test/read.cgi/tech/1316592884/5 5 名前:1[sage] 投稿日:2011/09/21(水) 18:42:16.09 すまん・・重複だったみたい・・ macのJFileChooserのやる気のなさパねぇ いまはopenjdkベースだから開発者が少ないと実装が遅いでしょ macの開発できるならオープンソースコミュニティは喜ばれると思うよ。 jtableの最終行の色を変えたいのですが どうすればいいでしょうか? getRowcount()でレコード数がわからると思うのですが、そのあとがわかりません。 TableCellRendererについて調べるよろし >>8 って実は最近人気のフラットデザインなんじゃね!? 次のjavafxとswingにdate pickerが入るんじゃなかった? >>220 ないみたい。 こっちをFX共用にしとけばよかったのかな。 Swingは失敗したけど、FXは成功するでしょうか みたいな議論はどのスレでやればいいのでしょうか? JDK-6506617 : Keyboard-lock in swing program on Linux box という重大なバグを8年以上たった今でも解決する気がないみたいだけど、 どうしてなんだろう。 ちなみに限定的なバグじゃなくてあらゆるLinuxOSで100%再現する。 オラクルはケチで有名なので文句を言われなければ手間暇かけて直そうとしないからですよ >>224 それは本当にJDK側で解決すべき問題なのかい? YES.なぜならswingの領分で、他のコンポーネントにフォーカスを強制的に移して戻したら数回は直る。 そのときにクリックするなど一切せずLinuxへのメッセージはないからだ。 しかしクリックすれば確実に直る。 日本語入力の時に頻繁に発生するから最悪なんだよね VBOXとかの仮想環境で古いリナックスを使うことが多いけどそのバグが原因でスイングあぷりを使う機会はまずないね オラクルはウインドーズにしか投資しないつもりだからそのバグが直る見込みは絶対ないよ >>230 ネイティブ環境(非仮想環境)だと出ないん? まあ、仮想環境でもキーを連続で打てないのは痛いけど。 ちなみに、バグレポートではキー押しっぱなしが再現方法になってるけど 日本語入力だと、どうすると出てる? ubuntu 6.06 ltsだったけど実機でもよく出るよ 再現方法が少し違うから違うバグだろうけどx-window関連だから多分同じバグだろう 特にESCでダイアログを閉じたときフォーカスが戻って来ないのでキー入力がアスキーでも日本語でもテキストが入力されないバグだったかな ショートカットも効かなくなるからマウスでアプリを終了するしかない(再起動すれば最悪また戻る) このバグはぐぐると英語サイトがいつくかヒットするけど、swingのアプリは実質ウインドーズ専用と考えたほうがいいだろうね javafx8 (build 1.8.0-ea-b117)ももうするリリース近いのにubuntu 12.04では日本語入力がまともじゃないからjavafx8も結局ウインドーズ専用になると思う JavaFX jarファイルに固めてダブルクリックしても起動しないんですが仕様ですか? eclipseからは起動するのに JavaFXを含まないHello Worldレベルのを作って試してみたら? Swing、SWT、ともに起動します 何故かjre7.u45以前のVMを指定したらコマンドラインから起動できることを確認しました jre7.u45以降のではコマンドラインからも起動できない Swingや選んだのは失敗であった 日本語入力するときが不自然すぎる JavaFXもくそすぎわろた 同じように日本語入力が不便 せめて SWT を選んでおくべきだった・・・ OSXは知らないけど、WindowsではGoogleIME使ったときが、入力候補の出る場所がおかしい。 ウィンドウの左下に出る。普通、カーソルのすぐ下に出るだろう。 >>230 java 1.6 のソースコードを見るとログを仕掛けてなおそうと頑張ってた形跡がある。 そのログを見たいなら以下で取得可能。 public static Logger focusLog = Logger.getLogger("java.awt.focus.Component"); >>231 キー押しっぱなし→? Textボックスをマウスクリックでたまにキーフォーカスが死亡する。 ubuntu12.04+ibus+mozcですが、たまにテクストコンポーネントがキー入力を受け付けず、ascii,日本語とも入力できなくなる時が今でもありますよ しかもnetbeans7使っていても発生するのでswing,javafxを検討してみたり勉強しようと考えないほうがいいと思いますよ(java+linuxではそれぐらい終わってるバグです) ケチで有名なオラクルの技術力なんてのは企業買収で成り上がっただけなので底力なんてあるはずもなく実力は所詮こんなものです java.awt.im とかちゃんと使ってる人いるのか? Javaプログラマが日本語入力監視してやらないと、 入力バリデーションとかが期待通りに動かないことがまれによくある。 java1.6以上のJTextAreaなどJTextComponentのline-wrap方式は、 奇妙な位置で折れます。 これを1.5以下の方式に戻す方法があるか教えて下さい。 他の外国語でも同じバグがあるなら修正用ラッパ作る気にもなれるんだけどね… >>243 奇妙な位置で折れることを想定してプログラム書けば全て解決する話 それよりもそのことのためだけに今更1.5以下のJRE使えという方が非常識 たと えばこんな感じに折れます。 これを想定し て書くのはしんどいです。 なんだかんだ言ってMicrosoftの素晴らしさを再認識する Javaも大きく育てばもっとSunもOracleも開発に人材をさけたのかもしれん サンの時代ならまだ信用があったから起死回生もありえたけど、クライアント(ウェブ)やモバイルやデスクトップに興味がない今のオラクルじゃ何やってももう無理 >>246 てか、それ英単語の空白部分で折れてんじゃないの? そもそもそんな不自然な折れ方するバグがあったとしたら世界中の開発者が黙ってないと思うんだがな しかも1,6以上で出るんだろ? もし英単語空白部分で折れてんなら、それline-wrapの仕様だよ >>243 http://docs.oracle.com/javase/jp/7/api/javax/swing/JTextArea.html > JTextArea(Document doc) > 指定されたドキュメントモデルと、ほかの引数はすべてデフォルト (null, 0, 0) で、新しい JTextArea を構築します。 http://docs.oracle.com/javase/jp/7/api/javax/swing/text/Document.html > たとえば、前の図のようにドキュメントのコンテンツが「The quick brown fox」というシーケンスの場合、「The」の前の場所は 0 で、「The」の後とそれに続く空白の間の場所は 3 となります。 textコンポーネントってカスタム化したBreakIteratorとか指定できないのか GUIレイヤーにはHTML5/Google Chromeを使えばすべて解決 FX興味あるけどまだSwing主体で使うべきなんだろうな 今の時代、FXっていうと金融のほうの話にしか聞こえない なんかopenjdkにしたら直ったくさい。 CentOS(32bit) jdk1.7からopenjdk1.7にしたらOK Debian(64bit) open1.6でOK バグの再現方法が分からないのに直ったも糞もあるかよ jdk1.7でもawtのテキスト・コンポーネントってawt.useSystemAAFontSettings=onにしても汚いままだね java+linuxはやっぱり終わってる テキストじゃなくてリスト・コンポーネントだったか? とにかくオラクルはawt component全般で直す気もなければやる気ないんだから、awt,swing,javafxでguiをやろうと考えるのは茨の道に入るのに等しい [#JDK-6506617] Keyboard-lock in swing program on Linux box - Java Bug System https://bugs.openjdk.java.net/browse/JDK-6506617 コメントしまくってプライオリティ上げれば ナオト君とユリコさんしか文句言ってないんじゃあ直されるわけがない linuxデスクトップですらまともに使えないjava+awt+swingなんてのは結局のところwindows専用のguiフレームワークでしょ ていうかjavaがサンだった頃はまだ可能性はあったが、オラクルになったjavaってのはwindowsデスクトップともども静かに死んでいく運命でしかない awt,swing,javafxなんていうデスクトップやクライアントものは誰も相手にしないから、バグなんかもわざわざ報告してもらえるはずない Androidうらやまー。 TWLとかLIBGDXとかゲーム系GUIで良いのが出てくればよいのだが androidの寿命が思いの外長いみたいだから、embbed,mobileのjavafxのライセンスは主要なところはどこも買わないだろう オラクルが欲を出して裁判でグーグルに負けたあたりから、javaはswing,javafxが低速低品質であるだけでなく、desktop/client java自体が終息していたんだなあと思う Product Version JavaFX Scene Builder 2.0 (Developer Preview) Build Information Version: 2.0-b12, Changeset: 8bb7f8e4931d Date: 2014-01-30 08:10 JavaFX Toolkit = QuantumToolkit Pipeline = ES2Pipeline Hardware acceleration ENABLED Java 1.8.0-b127, Oracle Corporation Operating System Linux, amd64, 3.2.0-58-generic Copyright ? 2012, 2014, Oracle and/or its affiliates. All rights reserved. read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる