[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 02/06 15:43 / Filesize : 197 KB / Number-of Response : 766
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java低速GUI Swing 5



1 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 11:50:09 ]
ハードウェアの高スペック化、JavaVMのホットスポットの高速化に伴い、
パフォーマンスの問題は徐々にですが改善されつつあります。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 4 (前スレ)
pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
pc5.2ch.net/test/read.cgi/tech/1062271447/l50

697 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:15:09 ]
去年JOGLは1.0がリリースされGLCanvasは現実的に使えるようになった
Windows版しかみてないが、ネイティブ版の8割くらいの速度で動くと思えばよい

1.0GHzで動いていたのと同じように動かすためには1.2GHzくらいが必要

Java3Dはかなり前に試したが、とにかく遅くて使い物にならないことや高レベルすぎるんじゃないかな
ゲーム以外ならJava3Dでいいのかもしれないけど

698 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:34:42 ]
>>697
なるほど。よく分かった。

699 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:37:02 ]
JOGLだとOpenGL専用で、どこでも使えるJavaっぽくないけど、
これ自体がオプションパッケージだから、依存性が強くてもいいのかもしれない。
Java3Dがまだこなれてないんじゃ、しようがないね。

700 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:38:25 ]
>>695 Image.getGraphics()がアンサポート例外出すのがやなんだけど

701 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:46:50 ]
>>699
OpenGLはWindowsやLinux、Solarisなどで動くオープンなAPIだよ
Java3Dは実装選べるけど結局OpenGLかDirect3Dかの二択だしプラットフォームはかわらんよ

sunが自前で全部実装ってのは無理
ビデオチップベンダとの協力が必要だから

702 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:48:51 ]
>>700
オフスクリーン以外で実行したらそれがでるのは正しい動作

それにImageなんて抽象クラスなんだから実装はさまざまだ

703 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:51:33 ]
開発者側で混ぜるな危険をなんとか言ってるのはJava3D/LG3D関係か?

てかJOGL1.0はもう古い。今は1.1.0。
java2DをJOGLのテクスチャに合成するutilが追加されてる。
1.0までだとここらへん自力でやらないとだめだったけど今なら
java2Dで描画できるもんならなんでもJOGLに持っていけるようになったからフォント描画も楽になった。

ビルボード上にテクスチャ貼ってスプライトさせるなら自分でやった方が効率よさそうだけど。

704 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:53:45 ]
>>703
1.0からできるっしょ?どっかかわった?

混ぜるな危険はSwingがでたとき、1.1時代からいわれてるよ

705 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:57:04 ]
>>699
何言ってんだ?JOGLもJava3DもOpenGL使ってるだろ。
それに両方、標準拡張。
万人が使うわけじゃないからJREから外されれてるだけ。
そこらのJNI使った拡張機能とはわけが違う。



706 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:13:53 ]
>>704
そうじゃなくてoffscreen renderingの問題だよ。どうにかなったのこれ?
昔から言われてるのは常識だろ。

>1.0からできるっしょ?どっかかわった?
javadoc嫁

707 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:49:41 ]
>>706
落としてきてあるのだけは確認した
com.sun.opengl.util.j2dパッケージが追加されたのか

いままでもJava2Dからのテクスチャ生成ができたけど、これは動いてる最中も反映されるんか?
毎回getTexture必要になるっぽくみえる

今週末久々にJOGLいじってみるか

問題は激しくすれ違いなことだがJOGLのスレってなかったか

708 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 03:07:03 ]
なるほど。ためになった。

709 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 05:49:39 ]
>>707
JOGLにしかない機能・作法が意外とあるのにどこいってもJOGL専用話してる所がないんだよ。
JOGL紹介サイトでもOpenGLの教本に書いてあることくらいしか書いてない。

jogl-demosのソースか洋書あたるのが近道。
国内はJava3Dだらけだ。

710 名前:デフォルトの名無しさん [2007/08/01(水) 08:39:42 ]
良スレの予感。

711 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 10:57:50 ]
>>709
JOGLって作りこみの部分に入るとOpenGLまんまだから迷うことはないけど
たしかにそのセットアップとかTipsとかそういう情報ゼロに近いね

一方JavaのゲームではJOGLしか選択の余地がないから非常に悩むところ
Java2Dのアクセラレーション範囲が狭いことに加え、アルファブレンディングの種類が足りなすぎる

おかげで2D描画もOpenGLが必須になるという・・・

712 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 11:05:22 ]
今気がついたんだが「LayoutManager2」なんてクラスがあるんだな。
本当にこんなネーミングで良いのか?

713 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 13:40:12 ]
クラスというかインタフェースだけどな
配置の制約情報オブジェクトをコンポーネントに関連付けるメソッドが追加されたLayoutManager
ネーミングについては確かに投げやりだな

714 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:48:14 ]
SAX2.0なんて2がつくの結構あるぜ

715 名前:デフォルトの名無しさん [2007/08/02(木) 01:26:14 ]
>>712

そりゃたしかに投げやりなネーミングだな。ひどい



716 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 04:06:22 ]
じゃあどんな名前ならよかったんだ?
- AdvancedLayoutManager
- ExtendedLayoutManager
- SuperLayoutManager
- LayoutManagerGreat
- 続・LayoutManager

717 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 04:23:15 ]
LayoutManager4.0
アナログ的に配置指示

718 名前:デフォルトの名無しさん [2007/08/02(木) 10:30:35 ]
>>716
続・LayoutManager に一票

719 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 11:29:00 ]
ボーランドのライブラリは2がつくのたくさんあったな

720 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:01:51 ]
Extended とか付けたら、もっかい拡張したくなったら名前に困るじゃん。
数字なら 3 とか 4 にすればいいだけで楽。

721 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:54:43 ]
10以上行くと
ソートした時に
XX
XX10
XX2
XX3
.
.
ってなりそう。

722 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 16:37:38 ]
Win32 API の 〜Ex は辛かった。〜2 もどうかとは思うが。
そろそろ Swing そのものを根本的に整理して欲しい時期だねえ。

723 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 17:58:03 ]
Swingで一番やってほしいのが
・定数のenum化
・コレクションフレームワーク利用
・generics利用
・OpenGLパイプライン有効

で作り直してほしいな
互換性とるのは無理だからパッケージをかえてな

724 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 18:15:14 ]
新パッケージ名はjavax.swing2だなw

725 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 18:43:39 ]
javax.続・swing パッケージで…



726 名前:デフォルトの名無しさん [2007/08/02(木) 19:09:32 ]
JOptionPaneのmessageTypeで指定すると表示されるデフォルトアイコン群は
他のクラスで利用出来ないものでしょうか?

727 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 19:51:01 ]
>>721
9の次はaにすれば、しばらく問題なし

728 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 19:55:47 ]
>>726
ひどい方法
class IconRevealer extends BasicOptionPaneUI {
public Icon getIcon() { return super.getIcon(); }
};
IconRevealer foo = new IconRevealer();
new JOptionPane(null, JOptionPane.INFORMATION_MESSAGE).setUI(foo);
//new JOptionPane(null, JOptionPane.ERROR_MESSAGE).setUI(foo);
//new JOptionPane(null, JOptionPane.QUESTION_MESSAGE).setUI(foo);
Icon icon = foo.getIcon();

JOptionPane#getIcon()やiconフィールドはsetIcon()で設定した時用だったんだな

729 名前:728 mailto:sage [2007/08/02(木) 20:21:29 ]
ソースを眺めるとこう単純にできるがさらにアンドキュメンティッドなひどい方法だ
String propertyName = "OptionPane.errorIcon";
//String propertyName = "OptionPane.informationIcon";
//String propertyName = "OptionPane.warningIcon";
//String propertyName = "OptionPane.questionIcon";
Icon icon = (Icon)sun.swing.DefaultLookup.get(new JOptionPane(), new BasicOptionPaneUI(), propertyName);

730 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 20:27:27 ]
UIManager.getIcon("OptionPane.errorIcon");

731 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 20:31:56 ]
素でUIManagerのことを忘れてたorz
BasicOptionPaneUIはUIManagerを介さずに直にsun.swing.DefaultLookupを呼んでるんだな

732 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:26:15 ]
UIManagerで使うキー文字列も明文化されていないから
変えられても文句いえないんだよな。
こーゆーところはpublicな定数なりenum(は増えるから無理か)を
使ってあれば安心して使えるんだが。


733 名前:726 mailto:sage [2007/08/03(金) 16:54:32 ]
ありがとうございます。
昨日は諦めてアイコンを作ってましたが
使わなくて済みそうです。

734 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:12:41 ]
あの辺のアイコンデータのライセンスってどうなってるんだろうね?
再配布可能なライセンスならアイコン自体もらってアプリに組込めば
明文化されてない使い方しなくてもすみそうなんだけど…

735 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:16:55 ]
java.sun.com/developer/techDocs/hi/repository/



736 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 21:39:54 ]
>>735
Thx!

737 名前:735 mailto:sage [2007/08/04(土) 00:38:56 ]
・・・でもよくみたらJOptionPaneのアイコンは入ってなかったね。ごめんよ。

738 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:47:39 ]
>>737
ほんとだ… インフォメーションアイコン(丸に"i"のやつ)とかあるから
同じかと思ったら別のアイコンだ…

739 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 08:56:15 ]
BufferedImage.TYPE_INT_ARGB
BufferedImage.TYPE_INT_ARGB_PRE

よく_PREってついてるのあるけど、どう違うの?

740 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:16:41 ]
それは premultiplied alpha 。
RGB 各成分に A 成分が乗算済みであるフォーマット。
例えば 70% の不透明度で描画するとき通常 result = dst * 0.3 + src * 0.7 とやるわけだけど、
_PRE は A 成分が乗算済みだから result = dst * 0.3 + src で済む (src が _PRE で dst がそうでない場合)。

741 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:31:43 ]
よくわかった。ありがとう。

742 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 20:45:36 ]
問題はSwingと関係ない話だってことだな

743 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 20:51:44 ]
まぁ、こっちで聞くのは正解な気もするがw

744 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 20:53:47 ]
AWTのスレってあったっけ?

745 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:00:13 ]
ない



746 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 10:15:44 ]
>>740-743
Sunのチュートリアルには無かったけど、そういう話(話題)ってどこを参照すればいいの?
できれば日本語で。

747 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 10:41:30 ]
Java2Dのスレを立ち上げる

748 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 11:05:27 ]
>>746
java.sun.com/javase/ja/6/docs/ja/api/java/awt/image/BufferedImage.html#TYPE_INT_ARGB_PRE
『このイメージのカラーデータには、アルファがあらかじめ乗算されています』

749 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:37:44 ]
>>748 その翻訳の「意味」が分からなかった。

750 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:41:38 ]
まぁわかりにくい表現だとは思うが
API以前に画像の基礎知識つけたほうがいいんじゃね?

GUIがわかってない人がSwingのマニュアル見てもわからないのと同じように

751 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:55:52 ]
画像処理というよりも、単に画像ファイルを読み込み、コピー、保存する程度。
ImageIOではなくて。

752 名前:デフォルトの名無しさん [2007/08/06(月) 19:25:43 ]
独自のポップアップメニューを表示するにはどうしたらいいのでしょうか?
たとえばExcelの色選択メニューみたいな。
枠ナシJFrameを使うとタスクバーに出たり、ウィンドウがちらついたりします。

753 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 19:39:27 ]
普通の JPopupMenu に独自のコンポーネントを add してみるとか。
単に JPopupMenu のレイアウトマネージャを変えてみるとか。

754 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 19:41:05 ]
glasspane使うのが正解じゃね?

755 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 20:39:15 ]
JWindowはどう?
(色選択ならJColorChooserからコンポーネントもってくれば)



756 名前:752 [2007/08/06(月) 21:35:43 ]
JWindowがよさそうですが、よそがクリックされたらウィンドウ閉じるようにするにはどうするのがいいんでしょう?
JFrameのときは、windowListenerのwindowDeactivatedでdisposeしてました。

757 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:45:37 ]
>>756
その「よそ」って何?
「よそ」が他のコンポーネントならそのコンポーネントのイベントを拾って閉じればいいじゃん。

758 名前:デフォルトの名無しさん [2007/08/07(火) 08:50:35 ]
>>757
最初の質問に書いたとおり、ポップアップメニューを作りたいので、よそというのはメニュー以外のことです。
では、元のウィンドウのタイトルバーや、プログラム管理外の領域がクリックされたときのイベントはどうやってとればいいでしょうか?

759 名前:752 [2007/08/07(火) 09:35:06 ]
プログラム管理外の領域のクリックは、元ウィンドウのwindowDeactivatedでとれました。
あとは、タイトルバーのクリックがどうにかなれば

760 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 09:58:46 ]
JPopupMenu popup = new JPopupMenu();
popup.add(new JColorChooser());
component.setComponentPopupMenu(popup);
でよくね?
# JPopupMenu isa JComponent

761 名前:752 [2007/08/07(火) 10:21:52 ]
>>760
それでいけそうですた。
>>753の言うことをちゃんと聞いてればよかった。

762 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 20:40:22 ]
DelphiでいうところのPaintBoxみたく
paintComponent(Graphics g) にクロージャを引っかけることができるような
カスタムペイントコンポーネントって、ないの?

今はふつー(??)に、JPanel の派生クラスをつくってる。

763 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 20:45:01 ]
ない。
ふつーは JComponent から派生する。

764 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 20:51:45 ]
PaintBoxとpaintComponent(Graphics g) は動きがまったく違うと思うのだが

765 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 21:42:32 ]
>>762
ないんだよねぇ。
それ欲しい。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<197KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef