1 :
デフォルトの名無しさん :
03/08/31 04:24 そんなSwingとやっていくみんなのスレッドです。
2 :
デフォルトの名無しさん :03/08/31 04:25
超高速で2(σ・∀・)σゲ ッツ
3GHz の CPU ならそんなに遅くナイヨ
まあ、なんだ Swingの質問はなんかやたらと最近多い 自分のやりたいことやるのに結構苦労するよな。 まず、描画に関してスレッドの理解。 JTreeも使いこなそうとすると、結構難しいし テキストコンポネなんか結構奥深いし・・・ 自分も仕事でJavaやってますが GUIに関しては、レベル低いですね多分。 というわけで、ネタっぽいのだが Swing質問の需要はあると思われ 良スレとなることを期待します
6 :
デフォルトの名無しさん :03/08/31 07:32
全然遅くはないんだけど、時々引っかかる感じがする。 そんなのない?
>>6 イベントディスパッチスレッドで馬鹿な処理をするとそうなるな。
分かってない奴にイベントリスナを記述させるべきでないんだよな。
>>6 あるね、引っかかりが
(Pen4 2.4GHz メモリ512MB)
SunONE4とか、ああいう重めのアプリの場合
かなりはっきりわかる。
同一パネル上のコンポーネントを
そっくり取り替える処理が非常に遅く感じる
昔はメニューとかの描画のゴミが酷かったけど
今はほとんどなくなってきている
マターリ進化してくれているだけでもうれしいが
あと、前から気に食わないのが
JTableの中の文字編集する時
カーソルが最初表示されない。
クリックして編集モードに入っているはずなのに
カーソル表示されないのでわかりづらい
コンボボックスとかJTableに挿入するのも
かなりメンドクサイし・・・
つい最近、SpringLayoutを大体使いこなせるようになってきた
なんかあったら質問してくれ
低速ねえ。 GUIの中で最も低速?
Swingは遅さよりもその独自色の強さに敬遠
なんかJavaつまんなくなってきた
俺も。 Swingの代わりにSWTが入ってたら大分違っただろうけど。
そんなあなたにJ# & Windows.Form
そんなあなたにDelphi & CLX
15 :
デフォルトの名無しさん :03/08/31 23:04
Swingでも、ビックリするぐらい、早いものもある。 技術力次第ってことか。
>>8 >同一パネル上のコンポーネントを
>そっくり取り替える処理が非常に遅く感じる
これは、組み方が悪い。
17 :
デフォルトの名無しさん :03/09/01 00:00
SWING はちょっとな、あのクラスローディングの長さはいかんともしがたい。
だから、せめてアプレットにはSWING使わないでくれといいたい。 フツーのアプリケーションにならいいが。
19 :
デフォルトの名無しさん :03/09/01 00:07
20 :
デフォルトの名無しさん :03/09/01 00:19
Celeron 400MHz のマシンを使ってるけど Swingは重たいなぁ
Swingじゃなければ何がいいの?
22 :
デフォルトの名無しさん :03/09/01 00:29
業務でSwing使おうって決まるのって何が決め手になる場合?
>>22 他の選択肢はAWTとSwingしかないので、それらとの比較になるわけです。
AWT -> Widget少ないので仕様を満たせない
SWT -> Java標準じゃないし配布が面倒
なので消去法でSwing。SWT使いたいんじゃー!!
SWTの配布が面倒ってどういうことなんだろう。 アーカイブで配るときは共有ライブラリいれておけばいいし、 WebStartでも配置できるよね。アプレットくらいじゃないの、 SWTが全然使えないのって。
>>25 誰が面倒だって?
jarとdllを一緒に配ればいいんだよ
何も難しくない
ライセンスにもまったく引っかからない
そうだよ、難しくないんだよー。 だからうちの上司説得するの手伝ってくださいマジで。理由はよくわからんけどSWTは気にいらんらしい。
つーか、SWTのコンポーネントって全て知らないんだけど そのOSで用意されている(って言うのかなんていえばいいのかわかんないけど) コンポネは全て使えるのか? あと俺の疑問としては テキストコンポーネントのカット&ペーストなどの動作は どうやって実装するのか? Swingなら楽だがSWTはどうやってるのか
31 :
デフォルトの名無しさん :03/09/02 23:02
OSネイティヴのコントロールならカット&ペーストは標準で(OS依存で)ついてるんじゃないの?
>>31 いやだから、それを操作するようにプログラミングする必要があるのかと思ったのだよ
AWTと同じと思っていいのか?
>>23 俺も同じように真っ先にSwingを選んだ。
これ後でこまるってことは内科ね?
いまんところGUIには力を入れていないんでそんなに困ることも無いわけだが。
>>23 上司にしてみれば
なぜワザワザSWT使う必要があるのか?と思ってるんじゃないの?
>>34 SWTにして利益があるのはプログラマと顧客だけで、
会社や上司にはメリット無いからなー
36 :
デフォルトの名無しさん :03/09/03 07:11
プログラマと顧客にメリットがあるって説得すればいいじゃないか というかここはSwingスレだよみなさん
>>36 でも、そのメリットって言うの説明できる?
どう考えたって、現状ではSwingの方が浸透してるし
そくどが早いって言うのが、それほどの説得材料になると思えない
>>36 で、結局 SWT を使うメリットって何なの?
「当分は」Swingより速い。だけでしょ。 だけといっても、それが重要なんですが。
Swingが爆発的に遅いわけでもないのでその理由は却下だろ?
むしろSWTの方が爆発的に遅い場合がある。
すみませんでした。 知ったかぶりしてますた。
43 :
デフォルトの名無しさん :03/09/03 22:43
45 :
デフォルトの名無しさん :03/09/03 23:05
騙る番号間違えてないか
46 :
デフォルトの名無しさん :03/09/03 23:25
>>42 > すみませんでした。
> 知ったかぶりしてますた。
この騙りの手口はJBuilder9スレにいた香具師と同じ手口だ。
.netのGUIとどっちが早い?
Swingで使い物になるHTMLコンポーネント出ないかなあ。 JEditorPaneでAAのスレ開いたらいつまで経っても 固まりつづけて、VMごと落としたよ。
swing1.4系が1.3系と比べてどれくらい速度が向上したのか、 詳細な比較情報ってないですか? 体感だと30%くらい高速化してそうに思えるんですけど。
>>48 AAに使われてる文字はJavaSwingのTextコンポネ
では文字化けしやすい(文字探してる)から
処理が非常に重くなる
>>50 すみません、教えて。
内部的にはUNICODEなんだし、AAで使われてる文字だと重くなるって
よくわからないんだけど・・・
扱い的には漢字とかと同じじゃないの?
52 :
デフォルトの名無しさん :03/10/02 00:57
AAは妙な機種依存文字が使われてるんじゃねーの? 普通はまず出ないようなやつが。
53 :
デフォルトの名無しさん :03/10/02 22:39
まだSWTに移行しない香具師がいるのか? ヴァカ?
まだ、Swing (1.4.2) で十分って、気づかない奴もいるのか(笑) SWT はあくまで、Eclipse を作るためのものさ! Swing で何の問題もない!
55 :
デフォルトの名無しさん :03/10/02 23:21
まだSwing1.4.2で十分なんて思っている奴もいるのか(爆笑) このペースでいくと、 3年後にやっとパソコンのスペックがついてきて 6年後にやっと十分な機能とインターフェイスが提供される・・といったところか それまでJavaが生きていればの話だが
かといってSWTに移行するのもバカ Swingがダメだと気づいたら クライアントは素直にネイティブ言語つかえっちゅーねん 今はC#とかもあるんだし
57 :
デフォルトの名無しさん :03/10/02 23:24
C#は微妙にネイティブとは呼べないなあ
58 :
デフォルトの名無しさん :03/10/03 01:02
結論:MFC最強
結論:VCL最強
結論:AWT最強
ここでボケて(AA略)
62 :
デフォルトの名無しさん :03/10/03 21:34
MFC>Swing>AWT>SWT>>(超えられない壁)>>>VCL
>>64 なるほど。
しかし C# をあのように作ったのだから、MS も自覚はあったんだろうね。
MicrosoftはOfficeで使ってるフレームワークを公開していれば最強だっただろうに
Swingほどしっかりとモデル化されたGUIコンポーネントは他にはないよ。 優れているかどうかはまた別だろうけども。
特にGUIのようなパフォーマンスにセンシティブなライブラリにおいては OO的な設計の良さはしばしば欠点に数えられる。
Visual Component Library 最強
70 :
デフォルトの名無しさん :03/10/05 23:27
Swing!Swing!Swing!Swing! Hey! 二 木 ! Swing!Swing!Swing!Swing! 二 木 ゴ ル フ ♪
普通、マウスイベントを駆使して自作GUIクラスライブラリ作るだろ。
何厨房装ってんだよ
73 :
デフォルトの名無しさん :03/10/11 05:07
>>73 SWTの上で動かすAWTの次は、SWTの上で動かすSwingですか。
Swingの上で動かすSWTもあるし、なんでもありだな。
75 :
デフォルトの名無しさん :03/10/11 15:01
屋上屋を重ねるとは正にこのこと。
じゃあさ、SWTの上で動かすSwingの上で動かすSWTの上で動かすSwingの上で SWTを動かすってのはどうだろうか? あ、いま俺いいこと言った?
AA(ry
ごめん。SwingWT で NetBeans が動くわけじゃなかった。 SwingWT のライブラリを import しないといけないので、 Swing と完全なソースコード互換ではないです。
>>56 そうもいかんさ。共同作業だから。
c++で組めば速いに決まってんだけど
c++がきちんと書けるPGってほとんどいないし。
81 :
デフォルトの名無しさん :03/10/13 05:47
>>80 SwingがきちんとかけるPGのほうが更に少ないと思うのだが、、
SWTなんかだと、ほとんど誰も書けるPGいないだろうに
C+SDK からの移行なら、SWTの方が簡単にくめるね! まぁSwing の方が簡単だろうけどね。
83 :
デフォルトの名無しさん :03/10/13 11:54
Y 恥ずかしい丘
>>81 自称C++PGの大半は文法理解できてないですよ。
だからC++PGはぐんと少ないと思いますよ。
実際、自称C++プログラマほとんどがオブジェクト指向も理解できないCオンリープログラマだったりするんだよな。
C++はオブジェクト指向言語じゃないし・・
87 :
デフォルトの名無しさん :03/10/13 14:17
なんでここでC++話になるんだよ場をわきまえろ
88 :
デフォルトの名無しさん :03/10/13 14:53
私は Java で GUI プログラミングをしたことがないのですが(AWTすらしらない)、 いまから GUI プログラミングをするには、何にしたらいいですか? SWing ? SWT ? やっぱり基本ってことでAWT? ちなみに Java、オブジェクト指向の基本は抑えているつもりです。
89 :
デフォルトの名無しさん :03/10/13 16:27
Swingは簡単だよ。 javax.swing.* 以下のJavadocを全部読め。
>>88 C+SDK 経験者なら、断然 SWT が簡単
経験無ければ、本も情報もいっぱいあるので、Swing で コピペプログラムがよいのでは?
>>89-91 レスどうもありがとう。まずは Swing に手をつけてみます。
オブジェクト指向の設計としては Swing はよくできているらしいので
(そうでないという意見の人もいますが、とりあえずここではそれはおいとく)
>>91 C+SDK はやったことがありません。
自分の GUI プログラミングの経験といえば、Unix で emacs + gcc で、生Xlib でいくつかツールを
作ったぐらいです。
93 :
デフォルトの名無しさん :03/10/14 00:45
>>92 Xlib 生で自分でライブラリー作ってきているなら、SWT が楽かも
まぁそれぐらいのスキルがあれば Swing も問題ないだろうけど。面倒って感じるかも(1週間ぐらいは)
95 :
デフォルトの名無しさん :03/10/14 20:57
SWTとSwingなら、スキルに関わらずSwingが楽でしょう。
96 :
デフォルトの名無しさん :03/10/25 03:33
Swing好きなんでage。 やっぱSwing人気ないな。 使いこなすと本当に無理が効くいいライブラリだと思うんだが、 いかんせん速度と見た目がねえ。
>速度 ・イベントディスパッチスレッドを理解する。 ・応答性が必要なとこでちゃんとマルチスレッド化する。 上の二点に気をつければ遅くないよ。
慣れないと開発速度が「遅く」なりそうだよな
仕事で超リッチなクライアント作ってるが
最長一ヶ月ぐらいあればなんとなくどんなクラスがあるか覚えるだろ。
マルチスレッド非対応ならだが。
EJBの反応が悪いので(w GUIの遅さはよくわかりませんと言う感じ。
>>98 何だろうが最初から慣れてる奴なんかいない
100 :
pyスレから来ました :03/10/25 05:42
Swing はJython 使うと perl/tk 以上に使いやすい (体感開発速度が上がる)感じがした。 どうせ遅いんだしJython使っちゃおう。
101 :
デフォルトの名無しさん :03/10/25 05:58
>>98 慣れても開発が速くならないMFCというのもあったな。
Swingは開発が進むと、クラスという形で「慣れ」が残っていく。
>>100 Javaじゃないものを組み合わせると
リファクタリングツールなんかが効かなくて不便かなと思った.
XSLみたいな比較的独立したものならいいけど,
メソッド起動とか絡むとね.
でもちょっとしたツールであれば,スクリプト系は良いね.
Jythonはスクリプトと言う扱いなの?
いえ。殺人鬼です。
お、返事付いてる。
>>97 俺はイベントディスパッチスレッドもマルチスレッド化がなぜ必要かも
理解しているつもりだよ。
ただ、微妙なモッサリ感とか、しばらくほったらかしてから
ウインドウを前に出したときに数秒間グレーののっぺらぼうウインドウが
表示されて反応なくなったりすることとか、直接Swingと関係ないけど
JPEGデコーダーの性能がため息出るほど悪くて
使いものになるグラフィックビューアなんて絶対に書けないこととか、
ちょっとは愚痴りたくなるよ。
ただ、造りが理論的に綺麗だから、理論的にこういう事できそうだな、
と思って実装するとほとんど間違いなくちゃんと動いてくれるのは
すごいと思うよ。
>JPEGデコーダーの性能がため息出るほど悪くて >使いものになるグラフィックビューアなんて絶対に書けないこととか、 速いJPEGデコーダーを自作すればいい。
107 :
デフォルトの名無しさん :03/10/25 15:43
JPEGデコーダから自作しなきゃならんライブラリか…。 開発効率悪すぎだな。話にならねー。
jniの魔法を使って最速のJPEGデコーダIJLを召還・・・・・できるのか? しかもWindows専用という罠が待っている
109 :
デフォルトの名無しさん :03/10/25 16:27
結論としては、MFC最強?
WTL最強
111 :
デフォルトの名無しさん :03/10/25 17:47
Swingってスレッドセーフじゃないってマジですか?
マジです
>>97 >>105 Jpeg デコーダは dll なので、そんなに遅い感じはしません(Pentium 4 なら)
十分使用に耐えますけど。。。
IJL以外のほとんどの実装の場合、 最速で連続表示すると実用に耐えない PC3200 DualChannelとAthXP3200+を使っていても。
115 :
デフォルトの名無しさん :03/10/25 18:06
「最速で連続表示」?
とりあえず1.5に期待
>>114 113 の者です。
マジレスで。。。表示時間よりHDDの時間が遅いんだと思います。。
連続で最速での表示なら。。。。
時間をあけるんなら、別スレッドで読み込みましょう!
(賢い Viewer はみんな やっているんでしょうから。。 CPIC なんか驚異的にはいですけどね。。
ほかの、おもちゃの Viewer 程度なら。。 Java+Swing で十分なのでは?)
118 :
デフォルトの名無しさん :03/10/25 21:21
AWTでも使ってろ
>>113 自分のメインマシンは2年前のB5ノートなんだけど、
この環境では文句無しにHDよりデコード速度のほうが遅いよ。
もちろん「速いマシンに買い換えろ!」というのももっともだと思うけど、
Java以外じゃそんなに不足感じてないんで、買いかえるのにけっこう悩む。
あと、画像ビューアの場合、少なくとも次画像の事前読み込みは必要だと思うけど、
でかい画像を開いたときに、それが全部ヒープ領域に入るから、
ヘタにでかい画像を連続表示するとOutOfMemoryErrorで落ちたりする。
切ない。
デフォルトの64メガヒープを128メガにでもすれば大丈夫だろうが、
たかだか画像ビューアでそれは贅沢すぎるんじゃないか、と思わないかい?
>>119 >AWTでも使ってろ
あんなやっつけ仕事で作られたライブラリはさすがに勘弁。
121 :
デフォルトの名無しさん :03/10/26 04:10
>>120 はVCでMFCでも使ってなさいってこった。
122 :
デフォルトの名無しさん :03/10/26 05:59
SWTつかえよ
>>120 う〜ん 作りかたが悪いんだろう(笑)
私のは大丈夫。。。。。
まぁ正直 遅いCPUは知らん(笑)
Z-80 から、こんなことやっているが。。。
先を見ないと!
>>108 ここはひとつJNIの魔法を使ってSDLを召喚
マシンを買い換えてから、 以前まで毛嫌いしてたSwingが使えるレベルになった。 でもわざわざJavaでクライアントアプリを作る理由が見出せない。 Delphiでいいやん。
127 :
デフォルトの名無しさん :03/10/27 02:25
わざわざ今更Pascalで何かを作る理由が(r
128 :
デフォルトの名無しさん :03/10/27 03:00
ネイティブのJavaとネイティブのswingがあればいいのでわなかろか。 continner.add(Integer(1))なんて見るとJavaよりC++の方がいいんだが、 周囲がC++を嫌うしなぁ。
Swingはネイティブにするのは無理だろ。 あれは最後の描画以外全部Javaの中でやってるのが特徴で、 拡張性の元になってるんだから、 ネイティブにしたらSwingじゃなくなっちゃうよ。
130 :
デフォルトの名無しさん :03/10/27 03:19
Javaで拡張できればいいということなら、 ネイティブなJavaでコンパイルされたswingでもだめかな?
JavaにGUIなんか要らないよ。
>>132 最近ではServletのことも組み込みって言うんですね。
Write once, run anywhere を生かしたものでないと あえて Java を使う意味がないような気がする
GUIなしのプログラムならC++の移植ってそんなに大変じゃないです。 C++でCGI書くのもつらくないんです。 むしろGenericsが標準になってないJava言語には魅力がないんだよね。 メリットはswingだけ。
>>130 ネイティブコンパイルは多少パフォーマンスは上がるけど、
それで問題が全部解決するってのは幻想だよ。
Swingは良くも悪くも全部Java(コンパイルされてもね)の上で
描画されてるんだから、ネイティブコンパイルしたからって
JButtonがネイティブのボタンになるわけじゃない。
>>135 俺はJava厨だからよくわからないんだけど、Genericってそんなに必要なの?
Collectionで使うなら便利かもな、とは思ったけど。
C++ユーザーがJava使うと激しく落胆するのはGenericsが標準でないこと。 ため息出てくる。でもswingは好き。パネルレイアウトとかgtk+より進歩的。 C++のGUIクラスライブラリをswingと同じ設計でやってほすい。
Genericsは、プログラム書くのと同じくらいドキュメント書くのに精力尽くさないと、 他の人(半年後の自分を含む)が再利用どころかメンテナンスできないものになっちゃうよう。 実際、他の人たちはどうやって上手にメンテナンスしてるのか知りたいわ。専用スレ逝ってきます。
140 :
デフォルトの名無しさん :03/11/01 16:49
Swing無知の私です・・・ GUI画面を作ろうと思ってるのですが、調べてもさっぱりわからず・・・ソース 書いても思惑通りならず・・・。 JBuilderとかEclipsみたいな、セパレートされたGUIを作成したいのですが、 どこか参考になるソースやらサイトって、ありませんか? 何を使ったらああいうビジュアルになるのか・・・
141 :
デフォルトの名無しさん :03/11/01 16:53
セパレートされたGUIってなんじゃ
142 :
デフォルトの名無しさん :03/11/01 16:58
すいません、言い方悪かったです。 ツリー領域やら、テキスト編集エリアや、エラー情報など、 縦横に分割されていることをいいたかったのです・・・。
143 :
デフォルトの名無しさん :03/11/01 17:48
それはスプリットペインと呼ばれるものだ
146 :
デフォルトの名無しさん :03/11/02 12:07
スプリットペインというのですね チャレンジしてみます。ありがとうございます。
>>140 もしかしてレイアウトマネージャについて理解してないんじゃない?
もしもそうなら、BorderLayout, FlowLayout, FridLayout, GridBagLayoutで
ググってみ。
うわ、じじくさ
151 :
デフォルトの名無しさん :03/11/03 11:29
L&Fごときで、GPLに感染するのはちょっとなぁ。
ちょっと、というか全然ダメダメ
153 :
デフォルトの名無しさん :03/11/03 11:52
JTabbedPaneに、コンポーネントを追加したんですけど、 タブ部分に、そのコンポーネントの取り消しボタンを設定するには どうやればいいのでしょうか・・・
154 :
デフォルトの名無しさん :03/11/03 20:40
まず、そんなアフォなUIは考え直そう。
155 :
デフォルトの名無しさん :03/11/03 20:50
>>154 Eclipseなどファイルごとにタブができるエディタや
ページごとにタブができるブラウザ… アフォなUIですかね?
ファイルやページを閉じるときにタブの×を押す。直感的だと思うけど。
SwingのL&Fならまずあきらめろ
159 :
デフォルトの名無しさん :03/11/07 19:51
SWTスレ落ちた?
SWINGのL&Fいいじゃん。
メタルだけは、鈍臭くて好きになれん。
Windowsで、GTKLookAndFeelって対応してる? 切り替えるとなんかおかしくなるんだけど。
>>163 WindowsXP Pro + build 1.4.2-b28 の SwingSet2 で
LookAndFeel を GTK にしたけどパっと見てそれほど変なところは無かったような。
なんかおかしくなるって具体的には?
>>165 1.4.2-b28 で GTK LookAndFeel に変更した時と
GTK LookAndFeel から他の LookAndFeel に変更した時に確かに変になるね。
>>167 ま、L&Fに凝りまくられるより、速度とかに力入れてくれるほうがありがたいですしね。
実際速くなってるし。
>>168 とりあえず、自分の環境だけという訳ではなさそうなので、WindowsではGTKLookAndFeel
は、使わないことにしときます。
170 :
デフォルトの名無しさん :03/11/10 01:21
GTKすらまともに実装できないとは…やっぱクライアントサイドのJavaって糞だな。
170は何もわかってない予感
swingで質問です。 今、Linux上で複数のWindowを表示するアプリ作ってるんですけど、 Windowを移動させようとするとWindow同士が(正確にはPanel等も) ぺたぺたくっついて、動かしづらいのですがなんとかならないんでしょうか? WindowManager?の設定は変えたので、Java以外のアプリ(Ktermとか)は くっつかないようになったのですが。 環境はRedHat Linux7.3でGNOME使ってます。
173 :
デフォルトの名無しさん :03/11/10 22:17
Windows XP + VC++ + MFCに乗り換えるのはどうだろう。
互換性に期待してJavaアプリを組んでるやつは wxWindows/WideStudio/Qtに流れたほうがいいかモナー。 ランタイムの互換性がたいした事ないから、いっそ 再コンパイルを通したソース互換の方がいいじゃん。
おそらく Swing のせいだと思うんだけど JRE がどんどん肥大化してるね。 JRE1.4.1 で 9MB だったのに JRE1.4.2 になったとたんに 15MB とは…。
ほんとだ。増えてるね。 でもswingだけで5MBも増えるとは思えんが...
>>175 正直互換性目的だけでJavaを勉強しはじめましたが
そうかもしれません・・・。でもJavaは日本語ドキュメントが
多いので短期間で習得できるのです。。。
>>176 年々ハードディスク容量も増えてるからいいんじゃないの?
180 :
デフォルトの名無しさん :03/11/12 22:39
そういえば、SWTって結局殆ど流行らないまま消えそうだね。
そもそもクライアントサイドのJavaが(ry
>>181 略すな!!
でも、Javaアプレットくらいは生き残ってホスィ・・・
1.4以上のJREを前提にしたアプレットって、作っても使ってくれるかね?
183 :
デフォルトの名無しさん :03/11/12 23:42
アプレットこそ風前の灯じゃないか
1.4以上でないとホイールマウスも機能しないしイヤン。
1.4以上を対象にするのなら、アプレットでなくともJavaWebStartで…。
>>185 同意。
少なくともJavaWebStartはいまだにFlashとかに対する
アドバンテージ持ってるからね。
思うんだが、もしもアプレットのセキュリティの縛りがゆるくて、
ローカル資源にアクセスできたら(ただし確認ダイアログが出る)、
あれってもうちょっと普及してたんじゃないかな。
アプレットには安全だけど役に立たないってイメージあるんで。
187 :
デフォルトの名無しさん :03/11/13 00:52
共用のデータベースやWebベースのグループウエアの GUIとしてSwingアプレットはちょくちょく見るけどな。 事務系ではなく、開発・設計などだからクライアントの スペックが比較的高めだからかもしれんが。
> 思うんだが、もしもアプレットのセキュリティの縛りがゆるくて、 >ローカル資源にアクセスできたら(ただし確認ダイアログが出る)、 そうそう、それで、カチューシャ的な専用ブラウザを アプリケーションでシコシコ作る羽目になる。
189 :
デフォルトの名無しさん :03/11/13 01:16
セキュリティ解除のプログラムを配れ
マイクロソフトの自動アップデートで1.4.2うpできるようになるのは いつ頃ですか??
191 :
デフォルトの名無しさん :03/11/13 01:43
>>191 Microsoft が Java を独自拡張しようとして Sun に訴えられた裁判での話で、
Sun の 「WindowsUpdate で Sun の JRE を配布すれ」とゆー要求が通って、
裁判所による仮処分命令(?) だったかが出た事があるんよ。
その仮処分命令(?)は結局無効になったはず。
193 :
デフォルトの名無しさん :03/11/13 04:31
>>186 iアプリみたいな感じだね。
Flashは、アプリケーション版も出すって話ない?
>>192 (こんなことわざわざ言う必要もないのだが)
190の発言
「1.4.2うpできるようになるのは 」
この「うp」というのがアップデートの意味ならわかるが
通常は「うp」といえばアップロード
そう考えると190の発言の意味は
「WindowsUpdateで1.4.2をアップロードできるようになるのは いつ頃ですか?? 」
というように意味が通らなくなる。
俺が言いたいのは「アップロードではなくてダウンロードだろ?」と言いたいだけだ
「うp」自体正式名称ではないんだし、それにわざわざ突っかかるようでは 人生で他に他者より優越する機会が無いのかと憐れみを持たれるだけなのでは?
(こんなことわざわざ言う必要もないのだが) そうだよ
(こんなことわざわざ言う必要もないのだが) 2chにわざわざ書く必要があることなどなにもない。
198 :
デフォルトの名無しさん :03/11/13 08:46
(こんなことわざわざ言う必要もないのだが) ↑これは空気的にお約束で付加しないといけないのですかね?
(こんなことわざわざ言う必要もないのだが) そうだよ
おれは
>>190 をさらっと読んで、
「マイクロソフトが、SunのJavaVMをマイクロソフト自身のWindowsアップデート用サーバに、
アップロードしておくことができるようになるのは、いつ頃だろうか」と解釈。
>>186 そういえば、ネットスケープやIEはともかくとして、たしか最初にJavaアプレットを実装した
SunのJavaで作られたブラウザは、ローカルな資源も扱えたような気がする。
>>186 については、俺も同感。
まあもちろん、ホームページにアニメーションや音を加えて華やかにしたい、 というだけの需要は、その後登場したフラッシュによって置き換わっていっただろうけれど。 もしアプレットがローカルな資源をいじれたら、もっと色々な利用方法があっただろうに。
IBMのダウンローダーアプレットなんかローカル資源 さわりまくりだし、Sunの啓蒙が足らんかったって話だね。
JFileChooserのフォントが太くて見にくいので細くしたいんですが どうやったらいいんでしょうか?内部のボタンとか触れませんよね?
署名すれば、ローカル資源扱えるでしょ? 警告メッセージがでるけど。
205 :
デフォルトの名無しさん :03/11/13 23:04
ローカルな資源触れたらって・・・ 触ることできるじゃん パーミッションの問題です でも、なぜかそういうことすることは難しいことだとあきらめている風潮がある デフォルトで有効にすると問題があるので制限してあるだけだ。
206 :
デフォルトの名無しさん :03/11/13 23:18
署名しなくてもユーザーが許可すればローカル資源にはさわれる
>>206 その
> ユーザーが許可すれば
って部分があまり知られていないので、
いちいち説明すんのが面倒くさいんだよね。
Sun の文書もイマイチわかりにくいし。
AWTとSwingってどっちが軽快に動きますか? 何か本とか見てるとSwingはLightWeightで、AWTはHeavyWeightなComponent って書いてありましたが。 Java(というかプログラミング)の研修で簡単なGUIを作成するのですが、 低スペックなPCしか用意できないのです。
「用意できない」って言葉を使うってことは、研修で教える側だよなあ・・・
低スペックってどれくらい?
まぁ正確には教える人の相談役って感じです。 PCとか使えないCOBOLerの人たちを再教育するらしいです。 で、そのために社内で無数に余ってるペンII300メモリ64MBとかのクラスの PCを再利用して研修を行うらしいです。 マジで正規の担当じゃなくってよかったです。
213 :
デフォルトの名無しさん :03/11/14 01:22
いまさらSwingの研修を受けさせられる方もかわいそうだなぁ。
そのスペックルではどっちも激重だと思うなり。AWTにしとき。
メモリがつらいよな。 単にGUIってんならDelphiのpersonalを勧めたくなっちゃうくらいだけど・・ JavaでGUIで64Mは・・・ いくらレイヤが下のAWTでも・・・・ OS次第では使い物になるのかな・・・・・ っていうかむしろVJ++・・・・・・
>>209 AWTのほうが軽く動く。
けど、いまさら勉強する価値はない。
PCを使えないオヤジを再教育するならeclipseかNetBeansを使え。
使い方が簡単なのはNetBeansのほう。
でも、192MBはメモリが必要。
>>209 COBOLerクビにして
外注か派遣にしたほうが100倍まし
>>218 その首になったCOBOLerが派遣になるだけ(w
awt最強って言ってた奴は今何をしているんだろうか
221 :
デフォルトの名無しさん :03/11/14 04:00
野郎ども、おはようございます。
多くのレスありがとうございました。
>>215 さん
Delphiは言語がマイナーで業務系であまり使われないので駄目だとのことです。
だからと言ってJavaのクライアントサイドにしなくても、とは思うのですが、
何しろ、知っている言語名がJavaとC言語くらいしか無いらしいので。
>>217 さん
NetBeansをそのPCで動かしてみたのですが
(JDKと一緒に配布されてたのでインスコが便利だと思ったので)
起動するだけでカップラーメンが作れるくらいに待たされた記憶があります。
>>218 さん
近日中に私の方が首になりそうです(自主的に)
まぁ結論としては放置安定ということですな。
224 :
デフォルトの名無しさん :03/11/14 13:22
>>223 Eclipseは
「おうちにインストールしたいんじゃが?」
って質問が来たら、めんどくさいことになる。
NetBeansなら、JDKからTomcatまで、ひとつのインストーラーでOK。
ねぼけておった・・・
226 :
デフォルトの名無しさん :03/11/14 14:41
>>209 >SwingはLightWeightで、AWTはHeavyWeightなComponent
これは処理が重いとか軽いとかのことを言っているわけではない
>>226 (同じだけコンポーネント使ったら)
HeavyWeight のが OS の GUI リソースを使うんだよね?
>>227 でもLightWeightのが、メモリ・CPUリソースを使う。
CPUリソース
MacOSXのL&Fって無いの?
>>230 Windows環境から使う場合は
SunのHPからDLするんじゃなかったっけ?
>>230 Appleが「漏れのGUIパクるなゴルァ(゚Д゚#)」と言うので、
Mac OS X版JavaのSwingにしか搭載されません。
233 :
デフォルトの名無しさん :03/11/14 19:56
アポーの偏狭さがこんなところでも露呈した訳で
234 :
デフォルトの名無しさん :03/11/14 20:26
意匠権侵害だぞ
>>233 MSだって同じなのだが・・WinLook&FeelはWinでしか使えん
アイコンの著作権問題でね。
ところでMacでJavaやってるやついるか? どうだAquaUIは
239 :
デフォルトの名無しさん :03/11/15 04:39
JListは、トヨタistの宣伝にでないんですか?
240 :
デフォルトの名無しさん :03/11/15 08:30
つうかおまえ等はしらんだろうが 1.1.8時代はMacルックつかえたんだよ
242 :
デフォルトの名無しさん :03/11/15 10:51
おい、JFrameってマウスでリサイズ中に表示が更新されないんだけど、 なんか方法あったら教えてください。リサイズ後は勝手に更新されます。 以下のイベントを試したのですがこれもリサイズ後なのでだめでした。。。 JDK1.4.2 JFrame f = new JFrame("hoge"); f.addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent ev) { f.validate(); //これもちゃうのか? paint? repaint? } }); 重くなりそうだけど。
245 :
デフォルトの名無しさん :03/11/15 15:32
>>244 あくまでもcomponentResized(過去形)だからね
windowClosedとwindowClosingがあるように
componentResizingなんてのがあればいいけど・・・
でも 『ドラッグ中にウインドウの内容を表示する』って環境依存じゃないの?
>>224 おいらはそういう人向けにインストールガイドまで作った。
研修のサンプルプログラムもセットで。
247 :
デフォルトの名無しさん :03/11/15 16:41
>>246 読んでくれないんだよ・・・
教えるときは、「教えられる人は文章をよまない」という前提でやる必要がある。
絵は見るんだけどね。
248 :
6ヶ月目素人 :03/11/16 08:02
現在JTableを使ってコピー&ペーストをしたいと思い
↓下記のページのコピー&ペーストを使っていたのですが。
ttp://www.javaworld.com/javaworld/javatips/jw-javatip77.html いざ、HTMLに載せようとしたら、↑のコピー&ペーストを使うとHTMLにAppletが表示されません。
↑のclassを使わないと表示されるので原因が↑の物だとわかっているのですが
これを解消するにはどうしたらいいのでしょうか。
JTableでのコピー&ペーストについてどなたか実装されてる方は居ませんか?
8月からいろいろ探してるのですが、↑のページしか見つからず、先が見えません。
どなたか、ご指導いただけませんか
249 :
デフォルトの名無しさん :03/11/16 08:43
クリップボードも、クライアントのリソースになるのでアクセス制限されてるのかな?
今、Cutだけ実装したのアプレットを作ってHTMLにAppletとして乗っけようとしたのですが プロンプトからは開けるのですが、HTMLには乗ってくれませんでした。 自分にはどこをいじったらいいかわからず、解決できそうにないです。 クリップボード制限あると、、、HTMLには載せること出来ないのでしょうか。
251 :
デフォルトの名無しさん :03/11/16 09:44
>>250 とにかく、エラーがでているはずなので
IEのメニューからJavaコンソール を開いてエラーメッセージを載せてください
そうしないと解決には向かわない
252 :
デフォルトの名無しさん :03/11/16 09:44
>>250 というか、HTMLに載せるという表現はやめろ。
253 :
デフォルトの名無しさん :03/11/16 09:46
>>250 さらに、コンソールからじゃなくてアプレッツビューワだろ
255 :
デフォルトの名無しさん :03/11/16 10:15
HTMLに映す、か。 面白い表現考えるね。 でも、やめろ。
256 :
デフォルトの名無しさん :03/11/16 10:24
>>254 今確認しました
やっぱり、クリップボードのアクセスでjava.security.AccessControlException
がスローされています
ちょっと待っててください。
>>248 8月からそのページ見ているのに、なんでそのページの
サマリーくらい読んでないんだろ。アプレット署名しないと駄目だよって
ちゃんと書いてあるのに。高々850wordsだよ、それ。
>>257 Note that, since the system clipboard is not accessible to unsigned applets,
this functionality will not be available to those Java programs.
unsigned appletsをsignありにするには、どうしたらいいのでしょうかね。
HTMLでは使えないってことですかね。
これを解決する方法は、どこをいじれば良いのでしょうか。
>>256 さん、ありがとうございます。
>>258 (1)J2SE SDK日本語ドキュメントの一番最初のページを上から下まで
眺めてみる。
(2)signed appletでぐぐる。
もちろん、htmlからの呼び出しでも署名付きアプレットは使える。
261 :
デフォルトの名無しさん :03/11/16 18:21
HTMLはあくまでWebページを記述するための規格であって
それを表示するためのプログラムにはまた別の名前がついているので
「HTMLに載せる」とか「HTMLに映す」という表現は意味不明
これから先は自分で調べて考えてきてね
あとあれをアプレッツビューワと言う人は
>>253 くらいだと思うので
みんなどう言ってるかも自分で調べてきてね
262 :
デフォルトの名無しさん :03/11/16 18:28
>>261 おい、失礼なこと言うなよ
>プロンプトからは開けるのですが、HTMLには乗ってくれませんでした。
これに対して
「さらに、コンソールからじゃなくてアプレッツビューワだろ」
と言ったまでだ、どこに疑問があるんだ?appletviewerだろが。
プロンプトを自分の脳内でコンソールに変換してしまったがな
263 :
デフォルトの名無しさん :03/11/16 18:39
>>261 ま、半可通は黙ってなさいってこった(藁。
264 :
デフォルトの名無しさん :03/11/16 19:12
265 :
デフォルトの名無しさん :03/11/16 20:02
266 :
デフォルトの名無しさん :03/11/16 20:03
267 :
デフォルトの名無しさん :03/11/16 20:38
>>265 >>254 が真にうけてるから言ってみたんだけど
ネタなら
>>262 でそういってくれればよかったのに
変なツッコミ入れるからつい本気かと思ったよ
268 :
デフォルトの名無しさん :03/11/16 20:40
>>267 >
>>254 が真にうけてるから言ってみたんだけど
あ、ほんとだ。
ネタはこどもがマネするといけないから、ほどほどに。
int型はデータ型ではない。
269 :
デフォルトの名無しさん :03/11/16 20:42
int型などを参照型に対してデータ型というのはよくない。 ネタに捕捉カコワルイ・・・
データ型はよそのスレでもう終った話題だから(w
えっと、
>>260 は自分じゃないです。あしからず。
signの方読んでなんとかします。(これから)
書き込むついでに、もう一つ質問していきます。
HTMLでアプレットとして動いてるJTableからサーバーに値を送って計算
計算結果をJTableに返してくるということをやりたくて、考えていたのですが
ttp://cgi.io-websight.com/index2/uploarder/img/hare6501.bin ↑こんな感じに、アプレット⇔サーブレットのサンプルをいじってるのですが
//TableModel m = table.getModel();
//Object x = m.getValueAt(0,0);
//int amount=Integer.parseInt((String)x);
↑の//をはずして、//int amount=3;にしても、データサーバーに飛ばしてくれません。
どこをいじっていったらいいのでしょうか。。。
>>272 何度も何度も繰り返し「HTML」というのが出てくるから、思わず、
「ぐわぁぁぁ もう二度とHTMLなんていうなぁぁぁ」 と、がきんちょのように
床にゴロゴロころがって泣きたくなってしまった。
>>271 とりあえずHttpURLConnectionとHTTPについて参考書か何かで
勉強したほうがいいと思うよ。リクエストメソッドとはなにかとかも。
そのコード見てるとサーブレット側でdoPostなどをちゃんと実装して
いるかどうかもなんか怪しい気がする。
あと既にSwingの話じゃないのでこれ以上この場所での質問はどうかと。
(こんなことわざわざ言う必要もないのだが) 言葉の定義でそこまで突っ込んでやらんでもいいだろうに。
>>274 そうですか。swingじゃないですかね。
int amount=Integer.parseInt(bookFld.getText());
ではできるのに、
TableModel m = table.getModel();
Object x = m.getValueAt(0,0);
int amount=Integer.parseInt((String)x);
こっちだと動かないので、問題はTableModelかな?って今調べてます。
一応、httpURLConnectionは↓みたいに書いてあります。
極意そのままなのですが、これじゃダメなのでしょうか
ttp://cgi.io-websight.com/index2/uploarder/img/hare6504.bin
>>275 言葉の定義は大切だ。
ようするにそこに勘違いが含まれてるわけだから。
でも誰も正しく説明できない罠。
JListにはなんでsetVisibleColumnCountがないの?
282 :
6ヶ月目素人 :03/11/19 10:46
ageます。
そのページのサンプルはそのとおりやってみて動くんだよね? 自分の作った例のテーブルがダメなんですか?
284 :
デフォルトの名無しさん :03/11/19 11:09
Javaでゲーム作る人って、Swing使うの? ノベル系のゲームくらいなら何とかなるような気がするんだけど。
>>283 すいません、できました>w<
自分のPC上ではできたけど、これをネットで公開した時の不具合が心配ですが、
一応解決しました。
コピー&ペーストのところで著名が必要だったのですが
jarの使い方そのものからやり直してみたらできました。
煮詰まっても、いいこと無いですね。。。ここに書き込みしたことで一回冷静になれました
スレ汚しすいませんでした。
>>284 使います。
Swing使ったらJava2Dが使えないということはない。
>>286 284はswingだと重いと思ってるんだろ。
swing でも描画は重くない (どころか 1.4 ではめちゃくちゃ速くなった) のに。
「速くなった」と「速い」は違う。(Swingは好きだが)
289 :
デフォルトの名無しさん :03/11/20 00:33
1.2と1.3の糞加減ですっかり「Java(Swing)=遅くて話にならん」が定着したな。
ゲームならAWTで足りるんじゃないの?
ボタンとか、設定ダイアログとかはSwingでいいんじゃない? JFrameにCanvas置いてフルスクリーンゲーム作ってもいいし。
VolatileImageでWindowsリソースに直接かきこめるし、 BufferStrategyでフル画面のページフリッピングもできるから、 WinAPI直描きと比べて大きく遅れをとることはない・・・と思うよ。
ほっといてから、アクティブウィンドウにすると 再描画まで、ものすごくまたされるのなんとかならんかね。。
namcoはJ-PHONE用のリッジレーサーを作る時に まずプロトタイプをJ2SEで作った。 ・・らしいのだが、本当にJ2SEでリッジレーサーが作れるものだろうか? というか、よくJ-PHONEのKVMであれが動いてるよな・・
>>294 描画をJNIでネイティブでやるようにすればいけるのかも。
プロトタイプなら、ふつうにJava3Dでもいいのかもね。
そのプロトタイプで遊んでみたいもんだ。 公開してくれないかなあ・・・
297 :
デフォルトの名無しさん :03/11/23 11:00
>>294 そのプロトリッジレーサーが具体的に
どの程度のクオリティかわからないけど
意外とそういったゲームはさくさく動きますよ(J2SE)
Appletとかでも、これJava?なんていうのありますし・・
プロトって言ったってWindows版のMascot Capsule使ってるんだろうから, J2SEとかあんまし関係ないものと思われ.
ネイティブAPIでガシガシ書いてんだからJavaとか全然かんけーねー。あほか。
300 :
デフォルトの名無しさん :03/11/24 17:05
「ガシガシ書く」という言葉を好む香具師は低脳の法則
リッジレーサー普通に動くんじゃないのか? だって例えばエミュ使ってJ-PHONEリッジレーサーをPCで動かしたら やっぱりPC上で携帯以上のパフォーマンス出るんだろ? iアプリ出はじめはPCと実機での速度は比べ物にもならなかったんだけど 最近はどうなんだろうね
>>301 スクラッチパッドのアクセスは、あほほどおそい。
Swingを使ったアプリを作成し、売上げている方に質問 お客の要求はどのようなものだったんでしょうか?
>>303 MacとWindowsで動くものを安く早く。
>>304 互換性低いじゃん。MacOSX上でソース互換でgccを使ったほうがヨサゲ。
旧マックってJavaですらダメじゃん。
>>305 ウィンドウ表示とか、入出力とか、それぞれ勉強するのが・・・
307 :
デフォルトの名無しさん :03/11/24 22:57
お客の要求はともかく人材的にJavaしか使えないって言う場合が多いと推測
>>306 勉強しなくてもできる程度のソフトなら値段つかねぇよ。
素人に作れないものを売ってナンボ。
正直、プロとしてちゃんと仕事するんだったら、 GUIは環境ごとに作り直すしかないよ。 wxWindowsなんかもダメダメ。
納期、値段、操作性でネイティブGUIとウェブアプリの中間辺りだな。
>>308 勉強してたら安く早くつくれないだろ。
Windows用・Mac用を別々に作っても同じ。
>>311 ゴミ屑Swingの勉強に費やした費用はどうなってんの?
Swingの質を上げるしかないな
>>309 wxWindows はダメダメだけど Qt は違うよ。
Photoshop Album 見ればわかるって。
>>308 別に素人が作れない技術で作るのが売り物じゃないよ
仕様を精査して
納期を守って
ドキュメントを納品して
保守契約を結べば
技術力の高いアマチュアが作るようなソフトでも値段はつく。
問題はどのくらい客の手間を軽減できるかだ。
>>311 参入の壁が低くなると価格破壊、結局利益が出なくなって、
その分野から撤退。
簡単にできるようになったらビジネスとしてはおしまい。
もっと難しい分野に進出しましょう。
>>307 あ、そうか。それなら納得。
Javaしか使えないソフトウェアも何だかなぁ。
実際にそんなとこあるのかな。
318 :
デフォルトの名無しさん :03/11/25 00:03
↑×ソフトウェア ○ソフトウェア会社
>> 簡単にできるようになったらビジネスとしてはおしまい。 >> もっと難しい分野に進出しましょう。 簡単にできる道を見つけるのがビジネスなの。
簡単・確実・迅速が一番だ。 コードの量なんか少ない程いいよねぇ。書かないでお金は行ってくるなら最高。 1stepいくらで食ってる人たちはどうだかしらないけどさ。
>>320 最初はいいけど、他社と値下げ競争が始まって、
次は人件費の圧縮。
>321 >319の書いたの読んだ? 他人がやらない方法で手を抜くのが他社との差別化さ。 その役に立つならSwingだろうが、VBだろうが、COBOLだってアリアリ。
>>322 確かに
インスタントラーメンを出すラーメン屋も
レンジでチンだけのレストランも成立する。
ノーパンのウェイトレスが出てくれば客は入る。
でもねぇ、そういうアプローチは風俗の手法だよねぇ。
(ノーパンシャブシャブは比喩だからね)
ラーメン屋というからにはすべてのメンを自家製にする必要があるかといえば、そうではない。 ファミレスでパスタゆでて、値段があがるのも本末転倒。 一般的な操作ができればいいのであればSwingで十分。
>>324 でもそれだと本職のコックをリストラしてアルバイトとパートを
増やす世界。本職のソフト屋が生存可能な世界じゃないね。
>>325 > 本職のソフト屋が生存可能な世界じゃないね。
なにか問題でも?w
>>326 問題はない。健康保険も年金払えなくても幸福はあるさ。
読んでないけど、それって、Swingを前提にコーディングしたものを一発でSWTに変換、とかそういったモノ?
330 :
デフォルトの名無しさん :03/11/26 02:10
SWTをベースにしたSwingってことじゃないの?
SWTをSwingでラップ?
退化したのか進化したのか
古いワインを新しい革袋に入れて売るようなもんだろ
新しい革袋を古いワインに入れて売るようなもんだろ
338 :
デフォルトの名無しさん :03/11/26 23:26
SwingのトロさとSWTの機種依存を兼ね備えた力と技のV3ってとこか。
SwingWT試してみました。一発変換は無理です。 イベントモデルはSWTベースでSWTとSwingに合わせた感じでしょうか。 WindowEventがない点に最初はとまどいました。 だからJFrame.setDefaultCloseOperation()もありません。 他にもイベントモデルによる違いがあり、 例えばこんなコードを書くとプログラムが一瞬で終了します。 public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(100, 100); frame.setVisible(true); } デモプログラムによるとこう書くらしい。 public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(100, 100); frame.setVisible(true); frame.dispatchEvents(); frame.dispose(); } あと、私はjavax.swing.BoxLayoutを多用するのですが、これが SwingWTではAWT以下に移動した上に別物に変わってしまってました。 期待しすぎた俺が浅はかだった…寝よ寝よ
342 :
デフォルトの名無しさん :03/11/29 03:43
GCJだとswing使えないのでもしかしたらGCJに使えるかもと思ったのですが(というかそれが目的で作った・・・?)
>>339 見る限りではまだまだみたいですね・・・
>>339 At present, the following items are working:
・Majority of the AWT Event Model
だなんて言ってるのにね。
漏れも非常に期待したのだが・・・。
なにわとまれチャレンジャー精神に感謝。
344 :
デフォルトの名無しさん :03/12/04 02:22
まぁ放って置いてもハードがどんどん高速化していくから、 多少の速度差よりも高機能をとるよな。 つか、1.4は別段遅くないし。
Javaで快適に動くようなハードウェア上では ネィティブではより快適に動作する。 競争に勝てるソフトにはならん。
>>345 ネイティブでは10msで済むがJavaでは50msかかる、
というくらいになれば、人間にはほとんど違いは分からないから良いと思うんだが、
ハードが高速化しても、その頃にはSwingがさらに重くなってる可能性もあるわけで・・・。
>>344 ちなみに、おいらも1.4.2のレスポンスの速さには文句はないのだが、
しばらく最小化した後の復帰時にどえれー時間がかかるのが気になる・・・。
なんとかプログラム側で回避する方法はないのか、どなたかご存知?
347 :
デフォルトの名無しさん :03/12/04 16:47
>>346 >しばらく最小化した後
描画領域って時間が経つとGC対象になるのかな?
(常にどこかが描画オブジェクトを参照しているわけではない
なんか起きるたびにただ書き直してるだけ)
実際、そうとしか思えないような動作をたまにする
スレッドセーフでないウェジットが多いのもそのためでしょうか?
>>346 Windowsなら、最小化したアプリの使ってるメモリから
優先的にスワップアウトさせるようだけど、それとちがう?
レスさんくす。
個人的には
>>347 が理由ではないかと思ってた。
SWTだと起きないし、同じく独自のウィジット使ってるMozillaさんも、
しばらく最小化させた後は復帰にどえらく時間かかるので。
>>348 はどのアプリでも起こることなので仕方ないと思うのだが、
>>347 だけでも回避する方法はないものかなーと。
>>349 OS変えたら?
2000からXPにしてから同じアプリでもその現象がでなくなったような
"気"がするので・・・。
351 :
デフォルトの名無しさん :03/12/06 00:25
ううむ。やはりプログラム側ではどうしようもないのか。 ネイティブと並んでSwingなGUIアプリが普通にデスクトップに登場する日を願ってage。
SwingをQtみたいにマルチプラットホーム、マルチ言語で ネイティブにすればいいのに。それならハナシは簡単。 ライトワンスなんて意味ねぇよ。
あなたが意味ないと思っても多くの人は write once の恩恵には大いにあずかってる
Javaでミドルウェアとか書いてると、二度とwrite onceじゃない環境で書きたくないなーと思うよね。
356 :
デフォルトの名無しさん :03/12/07 02:27
せめてネイティブコンパイルさせてくれ。
>>356 ネイティブコンパイラは色々ありますが何か?
貧乏人はgcjでも使ってなさいってこった
Swing使っててもネイティブコンパイルできるコンパイラってある? 別途JREが必要とかそんなんじゃなくて。
>>358 多くのAOTコンパイラでGUIアプリにJREが必要ってのは、ネイティブコンパイルが
出来ないからじゃなくてネイティブコンパイルしても配布/実行時にJREに含まれて
いるGUI周りのネイティブライブラリ(dll)やリソースが必要だからじゃなかったっ
けか。それでJOVEとかJETとかはJREが必要ないGUIアプリを作るのにSWTに走ったと。
http://www.xlsoft.com/jp/products/jet/jetswt.html SWTの本家IBMはSWTの上にAWTを再実装してAOTコンパイラと一緒に出荷してる。
でもJ2ME向け製品だからSwingはやらないだろうね。
>>359 サンクス。そういう訳だったんですね。
>>339 のSwingWTが一発変換に近くなってくれるのに期待。
363 :
デフォルトの名無しさん :03/12/10 02:10
>>362 JOGL と Java Desktop System と何の関係が?
JOGL は Sun の OpenGL Java binding だと思ったけど…
やっぱ技術力としては IBM > MS > Sun となるのかな。
技術力というより(能力×人数)って意味での開発力なら そんな感じかも。
能力×人数なら MS > IBM になる気がする MSは巨人かヤンキースみたいなイメージがあるのだけど。 どっちにしてもSunには越えられない壁がある。
>>368 OSに限っていえばそのとおりだけど
IBMのほうが商売手広いイメージがある
MSも意外といろんな分野に手をだしてるけど
370 :
デフォルトの名無しさん :03/12/10 19:57
おまえら、IBMは巨人ですよ。 MSなどまだまだ新参の成金。
アメリカの特許の年間出願件数の一位は長い間IBMが とってて、そのかなりの部分がソフトウェア特許って ことを考えるとMSなんかたいしたことないきがする。
企業の規模。 IBM>MS>SUN しかし得意なもの、主要な顧客が微妙に違う。 MSはプロセッサ作ってないし、 IBMはJavaや.Netのような大きな処理系作らない、 それに企業端末弱い、OS/2は負け組。
>>372 端末はね。
でもAS400とか勝組み。
374 :
デフォルトの名無しさん :03/12/11 21:17
「汎用機」といえばIBM製とその互換コンピュータを指す。
>>374 PCといえば、IBM製PC-ATとその互換コンピュータを指す
376 :
デフォルトの名無しさん :03/12/11 23:44
現在店頭に並んでいるPCはPC-ATとの互換に欠ける罠
377 :
デフォルトの名無しさん :03/12/13 15:17
AWTXってどうよ? Swingは結局アレなんかい? 再びAWTが復活するわけね?
>>377 AWTXって
http://scand.com/jp/products/awtx/のこと? なんか妙にアプレットにフォーカスした文章で、Swing駄目って
いってるけど、そんなにJavaPluginを使ったJREの自動インス
トールって駄目なのかなぁ。htmlconverterがあまり使われてない
現状ってのはあるけど。
そいや一昔前はKFCとか軽量コンポーネントあったけど
最近話をきかないね。Swingでみんな満足ってことなのかな。
まあ実用で使っているJavaアプリケーションってうちではEclipse
だけだし、なんでもいいや。
379 :
デフォルトの名無しさん :03/12/14 22:31
Swingでデジタル時計を作りたいのですが 1秒後とに表示を変えていくにはどうすればいいのですか?
あー.... あなたはスレッドって聞いたことありませんか?
381 :
デフォルトの名無しさん :03/12/14 23:49
sleep。これ。
>>380 そんな処理にスレッドを勧めるなんて・・・
javax.swing.Timerだろ。
383 :
デフォルトの名無しさん :03/12/15 10:41
>>383 その記事大丈夫か?
メタデータの使用例とかいって generics と auto boxing のサンプル出したりしてるし、
例内のコードは list が List だったり、list.add が list add だったり間違いのオンパレードだ。
>>383 > AWTXってどうよ?
> Swingは結局アレなんかい?
> 再びAWTが復活するわけね?
お前は何も分かってない。
AWTXねぇ もうSUNのやる事には何も期待できないわけですが
388 :
デフォルトの名無しさん :03/12/21 21:49
一番手前に表示されるような ウィンドウを作りたいのですが どうすればいいのですか?
Windowsでよくある"常に前面に表示"みたいなやつなら coreAPIだけじゃできない。nativeありならAPI2,3行でいけたはず。
>>388 同一 VM のウィンドウの中で前面に出たいなら java.awt.Window#toFront()
他のネイティブアプリより前に出るのは Windows だったら
JNI 使えばできるかも知らんが他は知らん。
391 :
デフォルトの名無しさん :03/12/23 01:16
>>389 Windows nativeでいいので
やりかた教えてください
Javaって死滅しちゃうの?の1より >Javaの理想も破れ、貧弱な言語と重いGUIという印象だけが残った。 >のろのろと改良を目指しているがその内容は某言語のパクリである。 >SUNの洗脳から解かれた人民は某言語にシフトしている。 まんまやね。
> 某言語のパクリ 頭悪そうだな。
395 :
ミルコ・マグカップ :03/12/30 06:31
396 :
デフォルトの名無しさん :03/12/30 10:40
JComboBoxについて質問します。以下のプログラムを実行し、コン ボボックスのhogeを編集した後、ボタンを押すとhogeが出力されま す。もう一度ボタンを押すと編集されたテキストが出力されます。 一度押すだけで、編集したテキストを表示させるにはどうすればい いでしょうか。 import javax.swing.*;import java.awt.*;import java.awt.event.*; public class ComboBox implements ActionListener { JComboBox box; public ComboBox() { String[] patternExamples = { "hoge" }; box = new JComboBox(patternExamples); box.setEditable(true); JButton button = new JButton("hoge"); button.addActionListener(this); JFrame frame = new JFrame(); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(box); frame.getContentPane().add(button); frame.pack(); frame.show(); } public void actionPerformed(ActionEvent e) { System.out.println(box.getSelectedItem()); } public static void main(String[] args) { new ComboBox(); } }
>>397 普通に編集されたテキストが出力されるけど?
どんな環境で使ってるのかな。
>>398 Red Hat Linux 9です。
java -version
java version "1.4.2_01"
もう一つ分からないことがあります。
button.addActionListener(this);
この行を
box.addActionListener(this);
に変えて実行し、hogeを編集してからリターンを押すと編集したテ
キストが2回表示されます。編集しずに押すと一回だけ表示されま
す。
しかも編集したときは、なぜかボタンを押してもテキストが2回表示
されます。
>>399 自分も398と同じく普通に編集されたテキストが出力される。
OSはWindowsだけど。LinuxのVMがおかしいのかな?
399の方は自分も躓いた。自分もSwing勉強して間もないので間違いもあるかも知れんが
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7943&forum=12&4 でも話題になってる。
コンボボックスが発生させるアクションイベントは実は2種類に細分化できて
comboBoxChangedとcomboBoxEditedがあるみたい。
actionPerformedの引数として渡されるActionEventオブジェクトのgetActionCommand()で区別できるみたい。
選択項目が変化するとcomboBoxChangedのほうが、リターンキーを押すとcomboBoxEditedの方が来る。
編集してリターンキーを押すと選択項目も変化するから2回アクションイベントが発生する。
またコンボボックスを編集可能にして編集して項目書き換えると、
コンボボックスがフォーカスを失うときに、選択項目が変化したとみなされcomboBoxChangedが発生する。
だからボタンを押すとコンボボックスがフォーカス失ったので選択項目変化のためと、ボタンが押されたことによるアクションイベントの両方が起きる。
で何故397のようなことが起こりうるのかについての推測だけど 編集可能なコンボボックスのテキストを編集しても 編集してる最中にはたくさん文字が入力されたりして変化してるから 選択項目が変化したとコンボボックスが判断するのはリターンキーを押されたかフォーカスを失った時になって初めてである。 だから397さんの環境だと、コンボボックスを編集した後ボタンを押すと ボタンのアクションイベントの処理がまず最初になされ その後になってコンボボックスのフォーカス喪失の処理がなされて 選択項目の更新がなされるようになってるのかな。 自分のWindowだとボタンを押せばその前にコンボボックスのフォーカスが失われたことによる選択項目の更新がまずなされ、 その後ボタンのアクションイベントの処理が行われるからうまくいく。 見当外れだったらすまそ。 コンボボックスとボタンの両方にアクションリスナーを登録してactionPerformedの中で イベントオブジェクトのgetSourceかgetActionCommand()でどっちが先に呼ばれてるか調べてみたら。 ボタンの方が先に呼ばれてたら推測があってるかも。 でも常識的にフォーカス失ったほうの処理の方が先だよな。
わかりやすい説明ありがとうございます。
>>399 の編集した後リターンを押すと2回表示されるのは
comboBoxChangedとcomboBoxEditedによるものでした。また、ボタ
ンを押したときも同じイベントが発生していました。Tabキーでコ
ンボボックスのフォーカスをはずすだけでも同じイベントが発生し
ました。
buttonとboxの両方にアクションリスナーを登録してどのイベント
が発生しているのかを確認したところ、button、comboBoxChanged
、comboBoxEditedの順で発生していました。buttonのイベントのと
きはbox.getSelectedItem()で得られるテキストは編集前の状態で
、boxのイベントのときは編集後の状態でした。
もう済んだ話かもしれないけど、
RedHat9 + Java 1.4.2_03 では、
>>397 のようにはならず、
>>398 のようになったよ。
405 :
デフォルトの名無しさん :04/01/04 14:04
結論:Javaを使うならやっぱりWindows環境がイイ!
406 :
デフォルトの名無しさん :04/01/04 14:06
そしたらJava使う意味ないじゃn
407 :
デフォルトの名無しさん :04/01/04 14:25
低速なのにどうして使うの?
Javaって、Windowsで使うと意味無いんですか? ショック。
Windowsで使うことに意味がないわけではないが "Windowsだけ"で使うんだったら意味は半減するわな。
411 :
デフォルトの名無しさん :04/01/04 14:32
Javaって、Windows以外で使うと意味が倍増するんですか? すごーい。 Javaやってみようかなー。
馬鹿の集まりだな JavaのバイトコードはJavaVMがあればWindowsでもLinuxでもSolarisでもそのまま動くということも知らずに Javaスレに来るとは
>413 師匠!師匠と呼ばせてください。
415 :
デフォルトの名無しさん :04/01/04 14:56
>>413 意味が半減する理由にはなっていないと思うが?
ケースバイケースという言葉を知らないの?
417 :
デフォルトの名無しさん :04/01/04 16:01
>>387 つまりXAWTがSwingを死滅させるということでFA?
Windows上でGUIをやる場合Javaに比べて VBの方が圧倒的に簡単に作れる。 VCの方が圧倒的に自由度が高い。 だからWindows上だけでGUIを作る場合 Javaを積極的に選択する理由がない。 よって複数プラットフォームを視野に入れてJavaでGUIをやる意味に比べたら Windows上だけでJavaでGUIをやる意味は減っている。
>>418 Javaをやるのは理屈じゃねーんだよボケ
信じるものは救われる
421 :
デフォルトの名無しさん :04/01/04 18:47
>だからWindows上だけでGUIを作る場合 >Javaを積極的に選択する理由がない。 JTableをVCやVBでやろうとするとそれはそれは大変な道程となる訳で。 文化オリエントの製品を別途購入しVCだと更にCOMの奥義を極めるのが普通、 というまさに茨の道。
422 :
デフォルトの名無しさん :04/01/05 00:41
作り手にとってよいというのはあるだろうさ。 でもSwingで作ってあるアプリはなんかがっかりなんだよね、ユーザーとしては。
423 :
デフォルトの名無しさん :04/01/05 02:16
Linuxで日本語フォントがガタガタなんですが どうにかなりませんか?1.4です。
1.5のSwingはかなりいい感じだが。 もっと早くやってくれよという。
425 :
名無しさん :04/01/05 02:30
Javaって相変わらずGUIが枯れてないんですねぇ…。 J#に走ろうかと考えてますがやっぱりあれですか?
JTextAreaの重さには愕然とした。 たいした事の無い量のテキストでスクロールが明らかに重い。 Swingで使える軽い奴ないかな。
>>427 残念ながらあなたの要望にJavaはついてこれません・・
JTextAreaのスクロールが重い・・とは思った事ないなぁ・・
>>428 そもそも、JTextAreaにスクロール機能なんて無い。
重いとかいってるのは、スクロール量が小さすぎるからだろう
から、自分で調整しろ。てか、API Doc読め。
JScrollPane scroll = new JScrollPane(new JTextArea());
scroll.getVerticalScrollBar().setUnitIncrement(25);
>>418 VBのほうが簡単ってありゃオブジェクト指向言語としては最低だよ。
VBもVC++もソースコードの管理のしやすさ、メンテナンス性では
Javaに劣る。
>>422 マシンパワーが2GHz以上、メモリ1GB以上あれば
Swingで作ってあろうと満足に動く。
しかも最近のSwingアプリはルックスが綺麗だ。
434 :
デフォルトの名無しさん :04/01/05 23:18
>>431 オブジェクト指向は手段であり、目的ではなく、ましてや何かを比較する尺度では無い訳で。
Javaはすべて、Swingがぶちこわしたと言っても過言じゃないと思う。 なんで、標準的でもっとシンプルでかるいtoolkitにしなかったのか
>>435 使い勝手は悪くても、作り勝手はいいんだよなぁ。
1 名前:ひろゆき@どうやら管理人★ 投稿日:03/07/04 21:40 ID:??? おみくじ機能を搭載しました。 名前欄にomikujifusianasanといれて書き込むと、 【大吉】【中吉】などに変換されますです。。。
>>435 「なんで軽いtoolkitにしなかったのか」というのはわからんでもないが
Swingより標準的でシンプルなtoolkitってなんだ?
>>436 の言うとおりなのだが、PCの性能がついてくればSwingのつかいごこちもじょじょによくなっていくのだろう(今のPCではSwingの豪快な機能拡張に絶えられない)
それが
>>435 の回答だと思うのだが
439 :
デフォルトの名無しさん :04/01/06 01:23
昔に比べるとSwing自体もかなり軽くなったって言われてるが、 実際に昔のPCで今のSwing動かすとどうなの? もう手元にそんなPC残ってないもんで、わからないんだけど。
PCの性能が上がれば云々ってJava出た当初からずーっと言ってるよ。 その間PCの性能が一切上がってないとでも?
もうちょっとなんだよなぁ。 2GHz512MBが当たり前になればいいのかな、と思う。 まぁ、昔ほど遅くなくなった。 1.5はVMの起動も速いし、結構使えるかも。 「使い勝手」っていったのは、IMEの制御とかクリップボード関係とか、WindowsでいえばDLLが必要になるような機能が使えないので、かゆいところに手が届かないことがあるってこと。
俺、別に今のPCでけっこう快適にSwing動いてるんだけど。 明らかに遅いSwingアプリって、Swingが悪いんじゃなくて書いた人間が ヘタクソってケースがよくあるよ。
ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。 ちょっと乱暴な運転したぐらいで、人を殺せてしまうのも、自動車の良くないところですね。 キミはプログラム書かないほうが幸せだと思われ。
>>445 ん?
VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
小回りは効かないけどな。
445の言い方をすればちょっと乱暴な運転しただけで人を殺せる車は良くないということだな。
普通の車なら、ちょっと乱暴な運転しただけでは人を殺せないからな。
なんなら、そこらへんの車で乱暴な運転してみ。あんたの腕では暴れもしないから。
もちろん、車というものは人を殺そうとして運転すれば人を殺せる。
# 日本車でちょっと乱暴な運転で暴れるのは前期SW20か。
>>445 ←こういうのが俗に言うJava厨の慣れの果て
Swing のシングルスレッド規則なんか、そうしないと使いもんにならない くらい遅かったから後付けしたんだろ。JComponent#setText とかは 「このメソッドはスレッドセーフですが、〜」って中途半端なんだよ。 とかよく知らずに言ってみる。
> そうしないと使いもんにならないくらい遅かったから後付けしたんだろ。 イベントディスパッチスレッドで重い処理すれば止まるのは Windows も同じ。
>>446 > VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
例えば BCB で OnMouseMove 内に while(true); だけ書いておけば即死すると思うが。
> 445の言い方をすればちょっと乱暴な運転しただけで人を殺せる車は良くないということだな。
書き方が悪かったか? まぁその部分は枝葉だし
「ちょっと余所見したぐらいで、人を殺せてしまうのも、自動車の良くないところですね」
「ちょっと巻き込み確認を怠ったぐらいで、人を殺せてしまうのも、自動車の良くないところですね」
でも何でも良いわけだが。
>>450 > 例えば BCB で OnMouseMove 内に while(true); だけ書いておけば即死すると思うが。
明らかに殺意あり。密必の恋。
>>450 そのたとえに、やっちゃいけないことやったらよくない結果になる、という以上の意味はあるのか?
っていうか、お前はちょっと余所見したくらいで人殺してしまうくらい殺伐とした道路事情の場所に住んでるのか?
そこは中国か?勇気がないと道路渡れんようなところか?
まぁ、発言するたびにバカ晒してる感じだから、そろそろやめとけ。
>>451 > 明らかに殺意あり。密必の恋。
単に
> > ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
が間違いだって例をだしただけ。
>>453 while(true);が「下手糞な」コードだ、と?
>>453 で、その例が、適切でないという指摘をうけたわけだな。
Swingの場合、コーディングの自由度が高いから、安易に組むと、最適に組んだときとのパフォーマンスの差が大きいという話をしてるわけだろ。
VCLの場合、コーディングの自由度が低いから、差はでにくい、と。VBよりは自由度あるけど。
VCLでもコーディング次第でパフォーマンスを落とせるとか、そういう話じゃないだろ。
>>452 > そのたとえに、やっちゃいけないことやったらよくない結果になる、という以上の意味はあるのか?
無い。
> っていうか、お前はちょっと余所見したくらいで人殺してしまうくらい殺伐とした道路事情の場所に住んでるのか?
仮に、脇見運転で人を殺したら道路事情のせいにするのか?
> そこは中国か?勇気がないと道路渡れんようなところか?
例え話にそんなツッコミされても…
中国行ったこと無いし。
>>454 > while(true);が「下手糞な」コードだ、と?
イベントディスパッチスレッドを止めるような事をしてはイカンのは
Java も BCB も同じという例だから、while(true); でなくても別に構わないんだけどね。
>>455 > VCLでもコーディング次第でパフォーマンスを落とせるとか、そういう話じゃないだろ。
Swing 以外でも同じようにコーディング次第でパフォーマンスが落とせるなら、
Swing が悪いわけでは無いという事になりますが…
> 仮に、脇見運転で人を殺したら道路事情のせいにするのか? するわけないだろ。 歩行者もバカじゃないし、普通の速度でちょっとくらい脇見しても、死ぬようなタイミングで突っ込んできたりはせんよ。 普通車で自転車まきこんでも、よほど壁にはさんだりしない限り、死ぬようなこともないし。 だからといって、脇見や巻き込み確認をしなくてもいいわけじゃないよ。 たとえが適当じゃない、っていいたいだけ。
>>459 > > 仮に、脇見運転で人を殺したら道路事情のせいにするのか?
>
> するわけないだろ。
普通はそうだよね。
プログラム組む時も同じような心構えなら
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
とか言わんと思うんだが。
>>460 > ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
とかゆー発言から、
「Swing だけが、ヘタクソなコードでパフォーマンスに大きく影響が出る」
のかを問題にしてる。
>>461 もう放置しろよ。屁理屈捏ねる粘着相手にしても切がないでしょ。
>>463 「ちょっと下手糞に書くとSwing『だけ』パフォーマンスが『著しく低下する』」
に対する反論はしないわけ?
それともできないわけ?
窮地に追い詰められた時に「屁理屈捏ねる粘着相手」と相手を蔑むことで
その場から逃げようとする姿勢は情けなく思います。
俺Swingはヘタレなんで知らないけど 下手糞なコーディングする自分を恥じる心は無いわけ? 「うわぁい、俺実装のクイックソートはバブルソートより遅いぞ☆」 悪いのはクイックソート?下手糞な俺実装?それとも使ってる言語か?
>>465 ワラタ そりゃー下手糞なコーティングしてるヤシが悪いだろ。
俺はSwingとか今から始める段階だから知らないんだけどさ
「ちょっと下手糞に」の「ちょっと」ってのが嫌だナァ。
言葉だと面倒だから良いコーティングと悪いコーティングのソースキボン
>>465 > 下手糞なコーディングする自分を恥じる心は無いわけ?
そりゃ恥じるべきだよ。
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
とかゆー発言から、
「Swing だけが、ヘタクソなコードでパフォーマンスに大きく影響が出る」
のかを問題にしてる。
具体的に、どんなヘタクソなことができるの?
俺Swingは趣味(?)でやってて、仕事で個人的に使うツールを作って使ってるだけなんだけど 2GHz512MBでもちょっと遅い・・と思うけどなぁ あと4倍は速くなって欲しいと思う。いつになったら8GHzの時代になることやら。。 あと、専門でやってるわけではないのでヘタレコーディングになってるかもしれない 自分では普通につくっているつもりなのだが。
>>469 SWTスレの↓なのが気になったけどどうなんだろ?
> Eclipse3.0M6からの、SWTへのSwing埋め込みを試してみた人レポートよろ
473 :
デフォルトの名無しさん :04/01/07 01:53
とりあえず、443は何故そんなに必死なんだ?
SWTにSwing組み込めるのは、おまけだろ SWTはSWTで組まないと意味内
へたくそが使っても、へんなふうにはならない部品というのは、
たしかにすごいけど、SwingやAWTにそこまで求めるのも酷のような気がする。
まあそこまで使い勝手のいいようにラップされた部品というのも、
Java以外のなにかのシステムのGUIコンポーネントには、あるのかもしれないけど。
Javaチュートリアルを日本語に訳して誰でも読めるようにしてくれれば、
固まるようなJavaのGUIアプリも、ずいぶんと数が少なくなりそうなんだが。
>>468 俺も、すごく基本的なことしかわからないけど、
まず基本的な問題として、Javaにおいては、
ボタンがクリックされときに処理をするとか、画面を描画したりするとか、
そういうGUI関連の処理をしてくれるスレッドは、ひとつしか存在しない。
ゆえに、
「ボタンをクリックしたら10秒くらいの時間がかかる処理をはじめる」
とか、そんなソフトをなんの考えもなしにつくったら、
そのボタンをクリックしたら最後、10秒くらいGUIが固まっちゃうのさね。
これを固まらないように作るとすれば、
別のスレッドを用意して、10秒くらい時間のかかる処理は、
その別スレッドにまかせてしまうという感じ。
SwingWorkerクラスとか色々あるので、まじおすすめ。
Win上でSwingアプリをSpy++で見ると InternalFrameとかタブとかあっても一つのjavax.swing.JFrameしか 見えないんだけどこれってその窓に全部自前で描画してるってこと?
そういうこと。 Swingの重量コンポーネントと軽量コンポーネントでぐぐるとその辺のことが出てる。
>>468 > 「ボタンをクリックしたら10秒くらいの時間がかかる処理をはじめる」
> そのボタンをクリックしたら最後、10秒くらいGUIが固まっちゃうのさね。
これって、SwingだけじゃなくほとんどのGUIツールキットで起こらない?
逆に、スレッドや同期が気軽に使えるSwing(Jave)のほうが有利なくらいだと思うのだけれど。
「リストにアイテムを突っ込むときに○○○してからじゃないと遅い」
とか
「モデル側でのエレメントの取得処理は十分高速でないといけない」
みたいな例があるのかと思って。
素人ですんまそん。
>>479 >これって、SwingだけじゃなくほとんどのGUIツールキットで起こらない?
たとえば、つぎのようなGUIコンポーネントのシステムが
考えられるとおもうよ。
システムが、ワーカースレッドを複数つくっておいて、それをプール。
クリックされたときなどに行う処理は、ワーカースレッドにすべて引き渡す。
こういったことを、プログラマーが意識しなくとも、システムが自動的におこなってくれる。
これなら、へたくそなプログラマーが、
どんなに重い処理をなんの考えもなしに記述しても、
描画や、ボタンがクリックされたかのチェックを行うスレッドは、固まらない。
キューを作っておいて、そこのキューに仕事をため込むことで、
あるていどのバッファとしたりしてもいいかもしれない。
もちろん、重い処理をつぎつぎと発生させれば、
ワーカースレッドも、つぎつぎと浪費されていくことにはなるし、
キューも、やがてはあふれて処理を取りこぼすだろうけどね。
それはさておきJavaでも、既存のSwingのうえに
このようなコンポーネントシステムを構築(ラップ)することは可能だとおもう。
ただ、Javaの場合は、
もうひとつ『シングルスレッドルール』なるものを考慮しないといけないけどね。
// つーか俺がしらないだけで、
// Swingを使ったそういうコンポーネントのシステム、どこかにありそうだけどね。
>>481 > たとえば、つぎのようなGUIコンポーネントのシステムが
ちなみに、そのような方法を採用したGUIコンポーネントのシステムってあるの?
>>481 画面からの入力がコマンドになってるCommandパターンなわけね。
面白いと思うけど、各処理を同期させないといけない場合なんかは
面倒くさそうだな。
coreJava2Vol2.応用編より Swingの設計者は、2つの理由からSwingをスレッドセーフにしないことを決めた。 まず、スレッドの同期には時間がかかるため、Swingの処理速度を これ以上遅くしたくなかった。 さらに重要な理由として、他のチームがスレッドセーフな ユーザーインターフェースツールキットを開発したときの経験が挙げられる。 ユーザーインターフェースツールキットを構築する場合、 他のプログラマがユーザーインターフェースツールキットに独自の 要素を追加できるように拡張性を持たせたい。 しかし、スレッドセーフなツールキットを使うと、同期を行わなければ ならないという制限のためにプログラミングが難しくなり、 デッドロックの可能性を秘めたコンポーネントが生成される傾向がある。
>>481 そういうのは今まで見たことがないな.
アプリケーションへのコールバックがマルチスレッドで行われる場合,
イベントハンドラが全てスレッドセーフになっていなければならないってことになるよ.
foolproofのつもりが,かえってプログラマに対する要求がきつくなってる.
あと,いわゆる先行入力ができなくなる.
たとえばボタンを押すとダイアログボックスが開くというような場合,
普通のツールキットならダイアログが開くまで
重い処理があっても入力はキューされるので
ユーザは先行してEnterとか入力することができるけど,
おまいさんのモデルの場合はダイアログが開く前の(重い処理中の)
入力が他のウィジェットに吸収されてしまうので,先行入力ができない.
こういうのはくだらないと思うかもしれないけど,
ユーザの使い勝手の点では重要.
普通に使われてるウィンドウツールキットが
同期的なイベントハンドリングをするのにはしっかりした理由があるので,
ちょっとした思い付きで改善できるならとっくにそうなってるよ.
その点に関してSwingはVBやVCLと比べて優劣の違いはない.普通.
AWTと比べればスレッドアンセーフだけど,むしろその方が一般的だし.
487 :
デフォルトの名無しさん :04/01/07 23:06
結論:MFC >>>>>>>>>>>>>>>>> Swing
>>487 プログラムの組みやすさ以外は、ある意味そうだと思う。
動作速度、カスタマイズ、大きさ、全てにおいて、MFCの勝ちだな。
>アプリケーションへのコールバックがマルチスレッドで行われる場合, >イベントハンドラが全てスレッドセーフになっていなければならないってことになるよ. >foolproofのつもりが,かえってプログラマに対する要求がきつくなってる. Swingの場合、それをシングルスレッド規則が包括しているわけですの。 「コールバックしたらイベントキューに突っ込め。ユーザスレッドで再描画するな。」 ですから。 シングルスレッド規則って、しらん人多いんでわ。←これが問題
シングルスレッド規則知らん人なんですけど 「コールバックしたらイベントキューに突っ込め」 これがどういう事なのかすらわからないのですが といか、そこまでSwingきわめて、ちみらいったい何つくったわけよ?
極める何てレベルでなく 基 本 中 の 基 本 です
496 :
デフォルトの名無しさん :04/01/08 06:30
>>491 > シングルスレッド規則って、しらん人多いんでわ。←これが問題
普通は知ってる。
理由:他のGUIツールキットも同じだから
>>434 あのな。わしが言いたいことは
VBとか.net frameworkとかはAPIの質が低いといっているのだよ。
なんというか、初心者みたいなのとかオブジェクト指向を知らない香具師とか
使い捨てプログラムしか作る気がない香具師には便利なんだろうけど。
拡張性を求めるとあれらのAPIはごちゃごちゃして使い勝手が悪い。
(ドキュメントを見る限りでは)WinFXでもまだまだ汚なさは残っているようだ。
>>445 > > ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> ちょっと乱暴な運転したぐらいで、人を殺せてしまうのも、自動車の良くないところですね。
その喩えは奇異だ。そういうのは
ちょっと乱暴なコーディングをしたぐらいで、メモリリークやバグを量産させてデスマーチを起こせてしまうのも、
COBOL, C/C++の良くないところですね。
というならなるほどって思うが
>>452 そういう危険な国は中国と言うよりむしろポルトガルだよ。
世界一交通死亡事故がおきやすい道路というのがあそこにある。
アメリカや日本の警察のように、国が事故原因をしっかりと詳細に調べず、
事情聴取なとといったこともろくにせず
道路標識を修正・追加するとか、その後の対策をしっかりととらないから
いつまでたっても死亡事故が減らない。
なんだか、C++プログラマを見ているようだ。
>>498 > VBとか.net frameworkとかはAPIの質が低いといっているのだよ。
そーゆー事は「質の高いAPI」を作ってから言ってください。
>>499 > というならなるほどって思うが
なるほどって思っちゃうのか。困ったもんだ。
>>500 > なんだか、C++プログラマを見ているようだ。
そーゆー話をしたければ死滅スレにでも行け。
>>501 比較すればSwingAPIの質は高いと思うぞ。
APIの美しさだけ見ると、一番優れているのはなんだろう。
>>506 とりあえず「API の美しさ」を定義してください。
しっかし厨が好きそうな話題ですな。
508 :
デフォルトの名無しさん :04/01/08 21:07
>>508 サーブレットで開くというのが意味不明。
要解説
普通に開くは、HTMLとしてアプレットを表示するだけのソースで開き
サーブレットで開くというのは
http://localhost 〜/servlet/MondaiL4
と言う感じにサーブレット通して開こうとすることを思って書きました。
一応アプレットとして開くと見られるのですが
サーバー通して動きを付けようとサーブレットで開くとアプレットすら表示されません
アプレット表示されて、動きが現れない、なら対処しようがあるのですが
アプレット表示することが出来ず立ち止まっています。
>>510 で、そのときのHTMLはどんなのが出力されてるの?
ま、「サーブレットで開く」って言葉から、理解不足がありあり感じられるわけで、そろそろ「スレ違い」という目も怖くなってくるわけで。
512 :
デフォルトの名無しさん :04/01/08 22:46
Swingのおすすめの本を教えてください
Swingスレでサーバサイドの話題かよ!
>>507 何とかかんとか2 とか 何とかかんとかEx
みたいなクラス名, メソッド名があるのは美しくないですね。
意味不明な略語が使われてるのも美しくないですね。
JavaWebStartアプリをHttpServletと会話させてリッチクライアントな Webサービス、ってのはアリじゃないのかね。
>>514 privateなら"なんとかかんとか0"ってのがあっても良いの?
>>515 Avalonがそれに近いことを実現させようとしている
>>515 「API の美しさ」ってのは名前だけで決まる、と。
ところで、JComponent とかの J は許せるのか?
>>516 private なものは公開しないことが前提
裏でどうなっていようと利用する側から触れないところならば問題ない
>>518 名前も美しさの一因だろうが「名前だけで決まる」なんて書いてないだろ。
>>520 >>514 では名前に関してしか書いてない。
ところで、JComponent とかの J は許せるのか?
名前に関してしか書いてないから名前だけで決まる と考えるなんてすごい○○○ですね。 JComponent の J はない方が美しいでしょうね。
>>522 > > とりあえず「API の美しさ」を定義してください。
の答えが
> 何とかかんとか2 とか 何とかかんとかEx
> みたいなクラス名, メソッド名があるのは美しくないですね。
> 意味不明な略語が使われてるのも美しくないですね。
だったら、それが全てと解釈されても仕方ない。
他にも条件があるような事も全く書いてないし。
>>515 アリ。俺そんなの作って公開してるから探してみな
APIの課題になってるけど
JavaAPIについて
boolean型の戻り値を持ってるメソッドの、isXXXXX / getXXXXXXはどういうきり分けになっているのだろう?って思う、どちらかに統一してくれれば良いのに、、と思うけど
あと、.length()、.getLength()、.size()も統一して欲しい
あと、.size()とかって、ゲッターでしょ?getSize()にすべきなのではないか?と思うけど
反論求む
>>524 Swing に関して言えば、そこそこ統一されてると思うが。
Jなんとかって汚過ぎ。何のためのpackageなのか分からん。
>>524 immutableかどうかで変わるとかJava厨が言ってた。
オレは納得してないがな。
>>527 そう?.getLength()、.size()があるあたりimmutableかどうかで命名されているとは考えにくいのだけど
ちょっと調べてみよ
Jなんとかはいいでしょう
packageはネームスペースの意味もあるけどクラスライブラリの分類/整理が主目的だと思うよ
パッケージが分かれてもクラス名なんか一致しないほうが良いと思う
AWT、Swingは共存して実装できるのだからもしJがなかったらコード醜くなると思うよ
>>510 すいません、問題はclassの抜け落ちでした。。。。
ところで、サーブレットで開くという表現を使ったのですが
どんな言い方をすればよかったのでしょうか。。。スレ違いですね、ありがとうございました。
>>508 のは「普通に開く」といっても、
>>508 のいう「普通」ってどういうことを想定して「普通」と言っているかもわからないし。
「サーブレットで開く」もよくわからないし。
でも、そんな
>>508 の書き込みでも、
APIの美しさについてのどうでもいいような話よりは、
まだ有意義かもしれないとおもったよ。
言葉の正確さはともかくとして、
>>510 の
>サーブレットで開くというのは
>
http://localhost 〜/servlet/MondaiL4
>と言う感じにサーブレット通して開こうとすることを思って書きました。
で、だいたい言わんとするとは理解できたよ。
つーか、なんでSwingスレで、質問しようとおもんたんだい?
もしSwingを使ったアプレットなら、そっちの話でもしてみないかい。 なんか解らんことがあったら、解る範囲で答えるよ。
SwingとAWTは別物だよ。
あと基本的なこととして、
WindowsのIEがデフォルトで使用するマイクロソフトのJavaVMでは、
Swingが使えない。
Swingを使用するためには、Sunなどが提供している最近のJavaVMを
クライアント側がインストールしておく必要がある。
ただWindowsマシンでも、
東芝やDellのマシンでは、もしかしたらデフォルトでSwingが使えるかもしれないけどね。
そんなわけで、現状ではAWTのほうが、
より多くの人がそのままで利用できるアプレットにはなるとおもうけれど。
まあ、それでもSwingでアプレットを作ってみたいなのなら、
ここが参考になると思うよ。英文だけど、断片的なソースの所は理解できるだろうから。
http://java.sun.com/docs/books/tutorial/uiswing/converting/how.html How to Convert
ああいま中身をみたけどこれならSwingでも問題なさそうだね。 とりあえず、 extends Applet を、extends JAppletに。
>>535 だからよー。そのJavaPluginはSwingに対応してるのかい?
一応使えると思います @もMyCellRender_Aもバラバラには使えるので 両方同時に使おうとすると@の方だけになってしまうので、今困ってます
そうです 1:テーブルのヘッダーの撤去と列番号の入力 と 上記@のコピー&ペーストの実装を同時に行おうとすると、 列番号など表示されず さらに、@の機能まで、縮小されてしまいます (範囲内でペースト可能なのが、選択1セルに対してのみペーストするようになってしまいます) 両方の機能を同時に使いたいのですが、どこを直したら良いのかわからず困っています
540 :
デフォルトの名無しさん :04/01/09 15:24
凄くお馬鹿な質問なんですが、出来なかったので質問させてもらいます。 アプリケーションとして作ったものをアプレットにするにはどうしたらよいのでしょうか アプリケーションはJFrameを継承しています アプレットはAppletを継承しないとできませんよね、、、 どうやって、機能を移したら良いのかわからず、何でわからないのかすらわかっていない自分、、ダメすぎでした。。。
>>540 JFrameを使うアプレットにすればいいじゃん。
あぁーあ、質問スレになってしまった。
543 :
デフォルトの名無しさん :04/01/09 15:43
544 :
デフォルトの名無しさん :04/01/09 19:17
>>520 =522
美しさの例として、よりにもよって最初に挙げたのが名前だった君の言葉じゃ説得力なし。
>>545 必死だな。これだから「Java厨は…」って言われるんだよ。
547 :
デフォルトの名無しさん :04/01/09 20:44
ま た J a v a 厨 か ! ! 半可通の分際で「美しさ」とか言うから、墓穴を掘るんだよ。
>>533 このまえ hp のパソコンかったら、プリインストールの Windows に
JRE1.4.2_01 がすでにインストールされていました。
各メーカーがこういう取り組みをしてくれると、開発者としてうれしいなぁ。
>>550 このまえ富士通のパソコンかったら、プリインストールの Windows に
.NET Framework 1.1 がすでにインストールされていました。
各メーカーがこういう取り組みをしてくれると、開発者としてうれしいなぁ。
>>551 単に富士通の糞ランチャーなどの独自アプリが使ってるからでは?
>>552 Office 2003 PersonalのHomeStyle+が.NETを使ってるから、
Office 2003 Personalプレインスコのマシンにはメーカー問わず入ってる。
>>552 .netとは直接関係ないが、今現在のOSにはVBランタイム 6.0, 5.0はデフォルトで
入っているのと同じ感覚なのだろう。
4.0や、3.0,2.0はさすがにランタイムが入っていないが
>>554 今現在のOS? Windows だよね。Linuxとかにも .net ランタイムが
入ってるのか?
そんなんだから「Java厨必死だな」といわれるわけだ。
そろそろSwingの話を……
>>492 や俺のような基本中の基本も理解していないレベルのやつのために
シングルスレッドルールや、その意味合いなどを。
結城氏のJavaデザインパターンマルチスレッド編とかいう本を読むとよくわかるよ
そういえば、イベントディスパッチスレッド以外から、Swingコンポーネントをいじくろうとすると、 イベントディスパッチスレッドがデッドロックを起こすことってありますかね? むかし、訳もわからないままJTableをいじってて、 GUIが完全に固まったことがあったんですが。 もうそのときのソースは学校のハードディスクの中なので確認はできませんが、 ほかのスレッドは、コンソールにメッセージを出し続けていたようだから。 今にして思えば、JTableなどのSwingコンポーネントのメソッドを イベントディスパッチスレッド以外から呼び出して、 デッドロックを起こしたと解釈すれば納得が。
>>559 教えてもらう側なのにえらそうだな。死んでいいよ。
564 :
デフォルトの名無しさん :04/01/10 05:01
Javaのレイアウトって使えないよね
>>557-560 シングルスレッドルールといっても、
Javaチュートリアルのページにもあるようにそれほど恐ろしいものではないよ。
普通にイベントハンドラに、処理を書いておく限りにおいては、
>>560 のようにデッドロックを引き起こすことはまずないし。
もちろん長時間かかる処理を行わせれば、処理が終わるまでGUIは固まるが。
マルチスレッドなシステムによる描画なら、MVCの構成が参考になるかもしれない。
システムをMとVCに区分けして、画面の描画はpaintComponent()メソッドにのみ置く。
paintComponent()メソッドは、モデルのデータを読みとって画面に描画する。
イベントディスパッチスレッド以外のスレッドは、
モデルのデータをいじっても、ビューに対する描画は行わないようにする。
スレッドが、モデルのデータをいじったあとは、
repaint()などの、どのスレッドから呼び出してもかまわないメソッドのみを呼び出し、
イベントディスパッチスレッドにpaintComponent()メソッドを呼び出させてビューを更新する。
>>564 そう?
使えないって、使い方がわからないだけ?
>>540 JFrameの部分をJAppletに変えればいいじゃん。
>>564 >Javaのレイアウト
満足行くようにしたかったら自作せよ。そんなに難しくない。
それかSpringLayoutを使いこなせ。
それ以外のレイアウトをそのまま使う奴は素人。
nullを指定するやつはド素人。
>>568 漏れにとっては、GridBagLayoutのほうが使いやすい。
SpringLayoutは良く分からん。
そこでNetBeansですよ
EmptyBorderを簡略化するとレイアウトしやすいよ、 俺はEmptyBorderDecoratorを作ってレイアウトしてる。 ↓こんな感じ、どう? // 空白の枠を「5」にして、ボタンを配置 getContentPane().add( new EmptyBorderDecorator(new JButton("ボタン"), 5));
>>563-565 ありがとうございます。
563の二つ目の例をMVCのやり方で書くとこんな感じでいいんでしょうか。
もちろん複数回のrepaintは、ときには一回だけしか実際にはpaintされないとして。
public class Test extends JFrame implements Runnable {
public static void main(String args[]) {
JFrame frame = new Test();
frame.setBounds(10 , 10 , 400 , 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
private int color;
public Test() { new Thread(this).start(); }
public void run() {
while(true) {
color += 0x050505;
if (color == 0xFFFFFF) color = 0;
Thread.sleep(100);
repaint();
}
}
public void paint(Graphics g) {
setForeground(new Color(color));
g.fillRect(0 , 0 , getWidth() , getHeight());
}
}
SwingのMac用ルック&フィールって、もうダウンロードできないんでしょうか。
このページには、
>A Mac L&F for Macintosh systems is also available, as a separate download from
>the Java Developer Connection Web site.
(Macintosh systems用のMac L&Fもまた利用可能です。
(Swing toolkit packageなどとは)別に
Java Developer Connection Web siteからダウンロードできます)
とあるのですが。
Getting Started with Swing
http://java.sun.com/products/jfc/tsc/articles/getting_started/index.html
574 :
デフォルトの名無しさん :04/01/16 19:02
Mac用L&Fは、Macでしか動かない罠。
>>574 そういうローカルルールのような物をゆるすから、めちゃくちゃになって
ゆくんだよ
>>573 Apple の行動から察するに、
Mac 用 LookAndFeel は Apple の知的財産なので(以下略)
と言われた、とか言われて訴訟沙汰になるのを Sun が恐れたのでは、と推測。
>>575 UIManager 使えばインストールされてる LookAndFeel のリストとかが得られるので
めちゃくちゃにはならない。
もっとも、UIManager の使い方しらない馬鹿はめちゃくちゃにするかもしれないが。
それは使い方知らない馬鹿が悪いって事で。
>>574 そんなんですか。残念です。
それでダウンロードはまだ可能なのでしょうか?
他のプラットフォームでは動かなくてもダウンロード可能なら手に入れてみたいのですが。
>>576 >Mac 用 LookAndFeel は Apple の知的財産なので(以下略)
その辺の理由で、separate download にされたっぽいですよね。
>>573 の記事が書かれたのもけっこう昔っぽいから、また状況がかわって、
ダウンロードもできなくなったんでしょうかね。
それらしいものがなかなか見つかりません…
そんなんですかじゃなくて、そうなんですかです。 すみません…
Windows で Mac の L&F 動かした香具師がサイト公開してたぞ。どこか忘れた。 やり方は問題があるので公開できませんってあったけど。 たぶん os.name 判定いぢるだけでいけそうだ。
jdk1.5.0βのSwingはどうですか?
>>581 Swing に関しては何も変わってない。
583 :
デフォルトの名無しさん :04/01/17 12:43
ま た A P P L E か !
>>582 そう?
Metal Look and Feel にグラデーションがかかって
多少見栄えが良くなったよ。
フォントは相変わらずだけど。
このアプレットをappletviewerで実行してもキーイベントが発生し ません。どこがいけないでしょうか。 環境はRed Hat 8, java 1.4.2_01です。 import java.applet.*; import javax.swing.*; import java.awt.event.*; //<applet code="KeyTest" width="500" height="500"></applet> public class KeyTest extends JApplet { public void init() { addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { System.out.println(e); } }); } }
>>584 同意、最初は「ああ、まぁマシになったな」くらいにしか思わんかったけど
見慣れてくるとWindows LookAndFeelよりいいかも、とさえ思える
import javax.swing.*; import java.awt.event.*; //<applet code="KeyTest" width="500" height="500"></applet> public class KeyTest extends JApplet { public void init() { setFocusable(true); addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { System.out.println("keyPressed"); } public void keyReleased(KeyEvent e) { System.out.println("keyReleased"); } public void keyTyped(KeyEvent e) { System.out.println("keyTyped"); } }); } } linuxのjavaではAなどのキーを押すとkeyPressed, keyTyped, keyReleasedの順で呼ばれます。キーを押している間は 何回も呼ばれます。 windowsではキーを押している間はkeyReleasedは呼ばれないと思う のですが、この違いを無くすにはどうすればいいでしょうか。
>System プロパティを見てプラットフォームごとにコードを変えろ Javaなのに??? Javaってプラットフォーム非依存なんじゃないの???
煽りはスルーなのでございます。
596 :
デフォルトの名無しさん :04/02/02 01:19
同じコンポーネントを移動させたいんですけど、 なんかしっくりくるやりかたがありません。 なんかいい方法ありますか? 具体的にいいますと、フレーム内に パネルAパネルBパネルCと三つパネルがあるとして、 ボタンを押すことで、パネルAの位置にパネルBが パネルBの位置にパネルCが、パネルCの位置にパネルAが くるようにしたいんです。 なんかいい方法ありますかね?
レイアウトマネージャ自作したら?
removeしてaddするんじゃだめなのか?
CardLayoutで紙芝居とか。 1枚目が「A B C」でボタンを押すと2枚目の「B C A」を表示させる。
remove,addで作ったんですけど、 やったらおそいんですよね。 理想としてはCardLayoutのようにスムーズに 変えられるといいのですが
599の方法だと、うまく表示されません。 同じコンポーネントは複数のコンテナーにaddできないんですよ。
>>601 コンテナごとにボタン増やせばいいじゃん。
具体的には、パネルにあるのはボタンじゃなくて動画なんですよ。 それで、それを複数生成するのは、かなりのコストがかかってしまうので うまく同じリソースを使って移動したいのです。。。
604 :
デフォルトの名無しさん :04/02/02 02:37
ならば配置される位置は決め打ちできるのだから レイアウトマネージャ使わずにnullにしておいて 自分で配置しなおせば瞬時におわると思われ。
そうですね。nullで配置しなおします。 それが、一番しっくりしそうです。 ありがとうございます。 他にもいいのがあったらご教授してくださいませ
>>605 nullよりレイアウトマネージャ自作するほうが綺麗.
3つの場所をくるくる入れ替えられる
変なレイアウトマネージャだけど.
レイアウトマネージャを自作するのもよいのですが、(できたら自作したい) なんか、自作するのって、むずそうで。 もし、自作するのにいい参考ページがあればご教授してください。
>>600 遅いのはsetVisible(false)してないからじゃないの?
>>608 setVisible(false)してから、removeして、addするとはやくなるんですか?
M$に依存したくないネットワークアプリを作りたくて J2SDKを入れてみたが、Demoを見る限りそんなにSwing 遅いと感じなかった。 Xeon2.8デュアルの2Gメモリだから あまり参考にはならんがJAVAでやってみるよ。GUIも 派手じゃなく簡単なものでいいんで。 話それるが、Winsock使わずにWin32 + C/C++でネットワークアプリ をそれなり簡単に作る方法はないのかね。せめてUNIXにある ソケットライブラリみないなのがフリーであれば嬉しいんだが。
>>612 初心者は、板とかスレとか考えて質問することから始めよう!
>>612 JNI で Java のネットワークライブラリを呼び出す。
>>612 シグウインとか。
でも結局なかでwinsockAPI呼んでると思うけど
TextFieldに日本語入力すると文字化けしてしまうんですが どうしたらよいでしょうか
>>612 AthronXP2500+@2GHzでも軽いよ。
620 :
デフォルトの名無しさん :04/02/06 12:53
新しいL&FのSynthってどうなん? XMLでL&Fを定義できるみたいだけど、かなり凝ったものも作れるのかな?
621 :
デフォルトの名無しさん :04/02/07 18:52
Swingを覚えるためにドローエディタを作っている初心者です。 Windowsの「ペイント」では「ファイルを開く」でファイルを参照できますよね。 あのような機能を付けて、エクスプローラーのように、xmlファイルを参照 できるようにしたいのですが、どうしたら簡単にできるのでしょうか?
622 :
デフォルトの名無しさん :04/02/07 19:00
ここで聞く前になぜオフシャルのドキュメントを読まないのかと (ry
>>620 興味あるのでソース希望
SynthとJavaでググってもシンセサイザ関係しかでてこない。
JTabbedPaneでタブにに色をつけると、タブの耳の部分には色がつきません。 setBackground()ではできないのでしょうか。
>>629 ありがとうございます。
UIManager.put("TabbedPane.selected", Color.green);で選択されたタブ
の色を指定することができました。
ちなみに、選択されたタブにそれぞれ別の色を付けることはできるのでしょうか。
UIManagerを調べようと思いAPIを見てみたのですが、ちょっとよくわかりませんでした。
>>630 tab.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
JTabbedPane jtab = (JTabbedPane)e.getSource();
jtab.setVisible(false);
int sindex = jtab.getSelectedIndex();
String str = jtab.getTitleAt(sindex);
for(int i=0;i<jtab.getTabCount();i++){
if(i==sindex){
if("今週のネタ".equals(str)){
jtab.setBackgroundAt(i, Color.green);
}else{
Color sc = (sindex%2==0)?Color.red:Color.blue;
jtab.setBackgroundAt(i, sc);
}
}else{
jtab.setBackgroundAt(i, null);
}
}
jtab.setVisible(true);
}
});
632 :
デフォルトの名無しさん :04/02/08 20:10
Swingつかってるひとなんているの? MSのVMではうごかないし・・ 当然APPLETは1.1べーすでつくるでしょう
swingはjavaアプリケーションで使ってるし アプレット使うくらいならjavaアプリのWEBスタートにする アプレットのWEBスタートはもう意味無いし フリーソフトとかその辺は最新のjreを落とさせるくらいよい作品がでればいいだけ VBのランタイムみたいな位置づけで問題ないだろ jarファイルが凄く小さいので、大きいアプリだとランタイム込みでも win32ネイティブとあまり変わらなかったり swingの場合速度面よりメタルのかっこわるさのほうが問題だったよな 1.1+SwingライブラリがでたときのマシンスペックとVMの最適化されてなさを考えると 当時はかなり無理していたのがよくわかる もうローエンドが2GHzCeleronとかになってる現状では重さは問題ない swingDemoが重いならかなりのへぼマシンだろ
>>635 まだそんなこと本気で言ってんの?
使うのが開発者なら、そういう屁理屈が通用するかもしれない。
例えば物書きをする人がエディタを探してて、ほとんどが一瞬で起動する
なか、ひとつだけ 3 秒くらいかかったら、その時点でアウトだろ。
起動後の動作にしても、機能が同じなら少しでも軽いほうを選ぶ可能性が高いが
VC や Delphi 製が 10 本、Java 製 1 本あったとして勝負になるのか?
(もちろん使う側は何製なんか知らない)
一応使ってみたら、ファイルの関連付けとかどうすんだ?なんだこりゃ!
補助ソフトとして使ってるタスクトレイ関連とか、キーバインド変更のソフトも
うまく動かねぇ。とか。
マルチプラットフォーム? Mac でも動く? そういえば IE は Windows でも
Mac でもサクサク動くね。
>>635 >もうローエンドが2GHzCeleronとかになってる現状では重さは問題ない
つまりSwingは趣味でやってろってことだな。
数十台も2GHzマシン買う予算なぞそう簡単に下りるわけねーだろ。
>>631 各タブの色を固定したかったのですが、そのソースだと選択されると色が変わってしまいませんか?
1.1+Swingライブラリやってたころはマシンが200MHzとか割と普通だったから 今では市販がsono2GHzクラスで、ここ数年にかった人なら1GHzくらいはあるはず。 1GHzもあればだいたい快適に動作するはずだ、というわけだ。 VMの進化も大きいけど、やっぱり時間がかなり解決してくれたよ。 テキストエディタくらいならjava製でも俺の1GHzのマシンで起動に1秒程度だし 我慢できる範囲ではある。 クロスプラットフォームに関してはkylixより現実的ってところで十分だと思ってる。 ネイティブにはもちろんかなわないけど、確実に進化して実用段階になってきたというところ。
趣味でもなんでもSwingを使ってる人の為のスレなのです。
>>637 SWT 使ったら一瞬で起動するの?
Eclipse が爆発したのはフリーで高機能かつ、ライバルがいなかっただけ。
他のフリーIDEは販促用だしね。もし Eclipse ネイティブ版があったらアンタどうする?
まあ、とりあえず SWT がマシだから使いましょう、ってのは同意。
つか IBM あたりに VM プールサービスとかデーモン作ってほしい。
。。。IBM は Windows から Linux 置き換え検討してるから無理か。
> それとMac用のIEは死滅しました。
知ってるけど、それがどうかしたか?
VMプールサービスってどんなの? VMが常に動き続けて、Javaプログラムを実行してくれるみたいなサービス? そうだったらかなり欲しいかも。
>> 他のフリーIDEは販促用だしね。もし Eclipse ネイティブ版があったらアンタどうする?
もとがJavaならどうもしない。
http://pc2.2ch.net/test/read.cgi/tech/1075108690/43-44 ↑読んで。(書いたの俺。)
>> つか IBM あたりに VM プールサービスとかデーモン作ってほしい。
JDK1.5beta1からClassDataSharing(旧称SharedVM)が
入ってます。
マシン上で動くJavaプロセス1個目は
システムクラスローダがロードしJITしたクラスを
共有メモリに貼り付け、2個目以降に起動する
Javaプロセスはそれらを共有メモリから読み出すため
起動が速く、かつメモリ消費が減る。
(↑概要、ちょっと説明端折ってる。)
645 :
デフォルトの名無しさん :04/02/09 00:31
つか、エディタを一々起動する奴があるか、と。
起動の早い/遅いは SWT/Swingどっちつかっても基本的には変わらんよ。 起動時に発生する大量のクラスのロードと初期化が主な原因だから。
1.5Beta1使ってみたけど、起動時間かなり早くなったよね。
無料で使わせてもらってるのに、文句の多い馬鹿がいるな。
文句の多い奴に大した奴はいないの法則。
>>635 そんな横柄な態度で、 わざわざ Webstart 使って閲覧してくれる人がどれだけいるのか知りたい。
俺は JRE の新バージョンが出るたびにインストールする方だが、
Webstart なんてほとんど使ったことがないっすよ。
そんなわけで未だに弱気にJDK1.1 互換でアプレット作ってたりする俺。カッコワルイ。
一体、635の何処が「横柄」に見えたのかと小一(r
635 は横柄とかゆー前に文章になってない。
例えばSwing使ってリッチクライアントなシステム作ろうって案件があったとして (WebベースはFnキー使えないし、リロードがどーたらだから業務の生産性が云々のため。AppletとかFlashはおいといて) そのための配備技術じゃないの?jnlpって ようやくSwingも顧客に提案出来るぐらいの見栄え(1.5ね)と速度(1.4以降ね)になってきたと思うんだけど だから閲覧してくれるとかそう言う次元の人たちや、不特定多数の人間が触るシステム(web通販サイトとか) にはフツーにJSFやら何やら 使ってWebベースで作ればいいんでないの? そんなにFnキー使ってバカバカ物買うやつ居ないだろ VBやら何やらで作られたC/S系のシステムの操作性+Webアプリの保守性(?)ってのが狙いだと思われ まぁでも早い、簡単、乱絵にウェアに越したことは無い罠
Swingは乱絵にウェアじゃないですわよ。
655 :
新語解説委員 :04/02/09 23:20
乱絵にウェア【らんえ・に・うぇあ】 乱絵とは、まったく持ってみる価値の無いくだらく、意味の無い絵のこと。 それに着物(ウェア)を掛けることで絵画を誰にも見えなくすること。 本来は「誰も見れないし理解できない」という時に使われていたが、 それが逆裏的に転じて「誰でも見れるし理解できる」という意味で使われだした。 プログラミング言語的に解説すれば 「どのプラットフォームでも(誰でも)実行可能(見れるし理解できる)」ということ。 つまり「RunAnyWhere」ということである。
>>655 anywhere は一つの単語だったよーな…
660 :
デフォルトの名無しさん :04/02/15 02:01
ボケの集うスレはここですか?
みんなヴァカということで、次。
663 :
デフォルトの名無しさん :04/02/15 19:12
SwingってAVI扱えないよね?
あにめGIFならImageにすると勝手に動いてくれる。
>>664 JMF って AWT と関係してるから Swing とも関係あるっつーか…
swingはりソースリークがまだまだ枯れてないわけだが。
>>667 っつーか原因調べて BugParade に投稿するなりすればいーじゃん。
投稿するまでもなくバグパレードでleakでサーチすると閉じてないのがいっぱいあるぞ
>>670 leak Swing で調べたけど上位10個は全部 closed になってるぞ。
672 :
デフォルトの名無しさん :04/02/17 21:55
結論:Swingは重くてバギーな駄目ライブラリ。使う香具師は池沼。
WinFormsも結構ヒドイぞ。昔のSwingを思い出す。 SWTの方がよかったりして。
>671 上位10個は …ぷっ
Swing leak で検索した結果の 113 個のうち、 In progress, bug は 8個 In progress, request for enhancement は 4個 閉じてないのが「いっぱい」あるようには見えんな。
JDK1.5のSwingいいね。 だいぶ見た目良くなった。 ただThemeで色買えたりすると前のMetalに戻ったりしない?
>>676 Swing の L&F は Metal のまま変わっていない。
Theme のデフォルトが変わっただけ。
今回の Theme はずっと以前からある。
>>677 ほんまですか?
なんて言う名前のテーマですか?
>>679 1.5 で Metal のデフォルトテーマ になったのは ocean、それ以前は steel
Oceanは前からあったのか。 まぁ、デフォルトが綺麗になったからよしとするか
おーしゃん前からあったっけ?
あぼーん
684 :
デフォルトの名無しさん :04/02/21 18:08
なぁ…JTableにエクスプローラからD&Dでファイルを入れるサンプルコード、どっかに落ちて無い? D&D先のセルの位置の取り方が分からんのだよ…。
思いっきりてきとうなこと言うけど、 DropTargetDropEvent#getLocationして Pointが返ってくるから JTable#rowAtPoint( Point point) JTable#columnAtPoint( Point point) じゃだめなの?
689 :
デフォルトの名無しさん :04/02/23 23:23
swingのきたない日本語フォントは日本の文化に対する冒涜だな。 SWTはきれいだけど。
そういえばSwingってTrueTypeレンダラ自前で持ってるんだったっけ
すまん、おしえてくれ Swingのフォントのどのへんが汚い?
>>691 フォントの汚さで「どのへん」って一体どういう質問だ。バカにしてんのか?
つーかSwingにデフォルトで使われるRenderingHintsって変更できないのかな 確かLookAndFeelは設定ファイルで指定する方法があったんだけど
>>689 文句を言う前に汚いと思うなら自分で変えてるか?
変え方も知らずにほざいてるだけならタダのバカとみなす。
もしかしてみんなboldのままつかってるの?
俺はmainの最初に System.setProperty("swing.plaf.metal.controlFont","Monospaced-12"); っていれてるぞい そういう問題じゃなくて?
boldでもいい。アンチエイリアスがかかれば。
あのサイズのアンチエイリアスみたか? とてもじゃないがみれたもんじゃないぞ MSゴシックにしても同じだ
>>694 689じゃないけど、何で汚いフォントがデフォルトになってるの?マジレス希望
>>700 そのページすごく分かりやすいね。
BugParade に登録されていれば vote したいのだが、それっぽいのが
見つからないなあ。
>>696 これと同じ事をJAppletでやるには、
どうしたらいいんでしょう?
アプレットだと、セキュリティ違反になるので、
システムプロパティの変更以外に一括してフォントを変更するやり方がわからないんです。
普通にコントロールをどんどんたどってかえればいい ってGUI作るのにコードで処理してるの? 普通にNetBeansとかJBuilderで作れば気に入らないところは自由にかえれるし 手間ではないはず それよりもL&F変えるほうがはるかにいい UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
>>704 こういうのはどうでしょう?(少々面倒くさいのですが)
UIDefaults ui = UIManager.getDefaults();
Font font = new Font("Dialog", Font.PLAIN, 12);
ui.put("Label.font", font);
ui.put("Button.font", font);
ui.put("<コンポーネントの名前>.font", font);
>>705 JBuilderとか使っても、結局コードですよね。
手でたくさん直すのは大変ですよ。
L&F変えるとした場合は、
現在のMetalを元にフォントを変えたL&Fを作って、それに置き換えるという方法?
「現在のMetalを元にフォントを変えたL&Fを作る」方法が良く分からなくて…。
>>706 ありがとう。
これならば、コンポーネント単位で指定すればいいだけですね。
試してみます。
>>707 みんなローカルの環境にあわせたGUIになるので安心してさわれるってこと
メタルの方がいいという顧客には会ったこと無いので
JBuilderとかそういうGUIエディットついてるやつはコンポーネントを複数選択して
フォント設定すればいいだけなのでらくちんということ
メタルのboldが気にくわないとはいえ、それがデフォルトの動作なんだから
コントロール単位で設定するのはわりとまっとうなことだと思うけど
709 :
デフォルトの名無しさん :04/02/28 14:20
メタルというのはMSのやることに何でもケチをつけたがるSunがやりそうなこと。 Windows使っているものにはWindows標準のL&Fがしっくりくるし、 Motof使っているものにはMotifが使いやすい。 今ではOSに依存しないL&Fなるものはイラネ
>>709 自前のGUIライブラリ(Win32ラップしただけの奴とかじゃなくて)作ったら
誰でも自前のL&Fを作りたくなるでしょ。むしろ WindowsL&F がデフォルトで
用意されてるだけ良心的だと思われ。
> Motof使っているものにはMotifが使いやすい。
これは無いな。
こんなにいろいろ言う奴がイッパイいるのに、なんでオプソとかに 「より生のWindowsのLAFに近いSwingのLookAndFeelを作る」企画 とかが出ないのでしょうか?単に趣味の問題で、結局需要ないんで しょ?
メタルがなにがだめってボタンだと思う 立体的じゃないボタンはそれがボタンとわかってくれない人が多かったよ Swingが1.5からはどう評価されるか楽しみだ
確かSwingって太陽と寝助が共同開発したんじゃなかったっけ?
fontごときの問題が現在までこの状態でSwingなんか使えるわけねーだろ 他にも問題は山済みだわ SwingはまだVersion.0.3くらいのレベル 1.0になってからリリースしろ
>>718 × 山済み(やまずみ)
○ 山積み(やまづみ)
>>716 そんな馬鹿のためには、ボタン名に"[ ]"でも付けりゃあ済む話だ。
見た目だけだよ。見た目だけ。
>>724 解決してるから、そんなんで苦労しないわな
>>726 マニュアルかなんかに[ ]がついているのはボタンで押せますとか書いてる人か
[___]これでおk!!!
729 :
デフォルトの名無しさん :04/04/04 22:10
ボタンなんてボーダーつけりゃいいじゃん。
はっはっは。 buttonObj.setBorder(BorderFactory.createRaisedBevelBorder()) で解決だねえ。 3人寄ってもみんな馬鹿だとイミナイ。
ばかはおめーだ それだとへっこまない そしてそんなところ作り込むのもばからしい 結局systemdefaultにするのが一番 ALTでメニューへカーソルが行くとか細かいところもあるしな
732 :
いなむらきよし :04/04/04 23:46
キケー!
>>731 >そしてそんなところ作り込むのもばからしい
ButtonUIに作りこむのはだめかい?UIResource書き換えるのはだめ?
>ALTでメニューへカーソルが行くとか細かいところもあるしな
DefaultのInputMap書き換えちゃだめかい?
どれもたいした手間でもないと思うけど。
細かいところだとボタンのクリックをキーボード操作でやる場合とか ほかにもいろいろあるからね すべてやろうとするとやはり手間だよ
>>734 ドメインの要求に合わせたプロパティセットをUIに差し込むのは、どん
な仕組みであれ、やらにゃならんよね。
Swingって、UIコンポーネントごとの属性セットのデフォルトさえ書き
上げれば、あとはなにもせんでもインスタンス全てに適用されるよね?
それ以上の効率化は無理ちゃうか、と思うけど?
736 :
デフォルトの名無しさん :04/04/24 14:54
Metalがダサ過ぎる…。
そう思うなら変えればいいじゃん
1.4までのMetalのデフォルトのテーマ(Steel?)は 見るだけでなんかくらい気分になったけど 1.5のOceanはいい感じだと思う。 自分でテーマとか新しいL&Fを作るにはどうやったらいいのかな?
BluecurveみたいなLFきぼんぬ。
740 :
デフォルトの名無しさん :04/04/24 21:23
質問です。 ホームページを見に来た人がJavaアプレット上のJTextPaneに、 その人のパソコンの中にあるテキストファイルの内容を読み込 ませたいのですが、何かいい方法はありますか? TextAreaの場合は、メモ帳で開いてコピー・貼り付けしてもら えばよいのですが、JTextPaneの場合、システムクリップボー ドからの貼り付けが使えないので。 環境はWindowsXPです。
741 :
デフォルトの名無しさん :04/04/24 21:24
普通にファイルを読み込ませる。
アプレットはサンドボックス内でうごきます 通常ローカル環境には触ることは出来ません できるとセキュリティホールになります WebStartにするとこれが少し緩和されます 選択したファイルはセーブロードできるとかね そのかわりjnlpAPI経由でしかアクセスできません 簡単ですけどね アプレットもwebstartで動かせるのでそっちにするという手もあることはあります
743 :
デフォルトの名無しさん :04/04/25 02:27
Java APにする。
>>742 > できるとセキュリティホールになります
ということはWebStartはセキュリティーホールになるということだね。
>>744 いいえ。
アプレットでは完全に無理だったことが
「ユーザの自己責任において」一部可能になったということです。
746 :
デフォルトの名無しさん :04/04/25 07:35
>>740 ここで聞いても無駄です。
C#スレで質問しなおしてください。
>>746 c#厨の出張がなんでこのスレには多いんだろ
C#のダメさかげんと人気の無さがJavaのせいだとおもってるんでない?
749 :
デフォルトの名無しさん :04/04/25 14:48
普通のホームページにWebStart、て
ローカルのファイルをそもそもブラウザ上で表示しなきゃならないことがあるんか?
>>745 変だな? アプレットの場合はセキュリティーホールになるんだろ?w
>>746-748 お前ら。どうしてあの質問がC#関連だと思うんだ?
実はかなりコンプレックスあるだろ?
SWKでいいじゃん バランス感覚なくしてはいいものはできないよ
>>751 jnlpAPIとか調べてからの発言なんだろうな?
ローカルファイルを勝手にアクセスすることができない
あくまで対話によるユーザーの選択したファイルのみアクセス可能ってことだ
ブラウザのファイルアップロードするときに選択ダイアログで選ばせるのと同じ
これが勝手にローカルのファイルをアップロードしたり実行したりできらセキュリティホールだろ
実際そういうのIEに過去にたくさんあって問題になったんだが
はぁ? アプレットの場合でもローカル環境にアクセスするときに ユーザの選択したファイルのみアクセスにすればいいじゃん。 セキュリティーホールになる原因はなんだと思っているんだ? アプレットかどうかじゃねーだろ。 なにが、アプレットの場合はセキュリティーホールになる。だ。
アプレットもWebStartもオートパイロットは不可能ってこと?
>>755 アプレットの出た時期にjnlpAPIはなかった。
一般のAPIでローカル環境かどうかの判定入れるのはつらいだろうしな。
あくまでもアプレットは埋め込み技術なのでその辺はサーバーとの
対話で解決できると思ってたんだろ。
似た技術として最新のFlashだってローカルアクセスできないぞ。
個人的にはあのセキュリティなんてなんにも考えられてなかった時代で
セキュリティ考えてたのはすごかったと思ってるが。
アプリだけじゃなくアプレットだってjnlpAPI使えるって知ってるか?
誰もアプレットの場合セキュリティーホールになる、何て言ってないのだが。 勝手にローカル環境にアクセスできたらセキュリティーホールになるというだけで。 >はぁ?アプレットの場合でもローカル環境にアクセスするときに >ユーザの選択したファイルのみアクセスにすればいいじゃん。 こう思うのはもっともだが、アプレットはそれが不可能な仕様になっているんだから仕方がない。
759 :
デフォルトの名無しさん :04/04/25 18:25
署名付きにすればいいじゃん フルアクセスよん
がんばって実装して広めてくれたまえ>こうあるべきじゃん君
>アプレットはそれが不可能な仕様 1.0の仕様の頃はね。
証明書作るのマンドクサイ
763 :
デフォルトの名無しさん :04/04/26 01:02
>>762 コマンドラインでちょちょっと操作するだけやんか
ベリサインとかがめんどくさいって言う意味か?
べつに正式な認証機関通さなくたってできるよ
「認証されていません」とか「安全ではない」とか言うメッセージは出るが
そんなのJavaでなくてもWindowsコンポネとかドライバーでもよくみかける
おいおまいら、Swingの話をしてくだちい。
765 :
デフォルトの名無しさん :04/04/28 00:53
766 :
デフォルトの名無しさん :04/04/28 01:57
swingでウィザード作りたいんですが、 いいGUI部品はありますか?
>>766 JButton,JLabel,JFileChooser
ウィザードはCardLayoutじゃないのか?
>>765 無理。
まさかTableのセルにTableを入れる訳にも行かないし。
いやカスタムレンダラで出来る
それって、自前で罫線を引くのですか…。 セルの編集とか凄く大変そうですね。
>>773 神。
いや773ではなくてリンク先が神。
> いや773ではなくてリンク先が神。 リンク先は単にミラーしてるだけだな。Tamemasaさんに感謝しとけ。
なにが正しいのかわからんな。
5年も前から公開されてた情報を見つけられなかったアホも居る、と。
ネット上の情報に、いつから公開されているかは問題にはならんな。 大切なのは、いまリンクがどれだけあるか、だ。
>>781 リンクもいっぱいあるぞ。やっぱ見つけられなかった奴はアホだな。
Java使ってるj(ry とか言われるから煽りはやめろ
確かに。Swing使う人はただでさえ少ないんだから仲良くしようよ。
C#で携帯用のアプリ作れねぇかなぁ。
.net のライブラリを携帯上に移植すれば可能だね。 c# ソースを java のソースにトランスレート (java の class にコンパイルでも可) しても可能だね。 携帯の java 上に .net のライブラリを実装しても可能だね。
Swingで2chブラウザもどきを作っているんだけど 起動するだけでメモリ30Mだよ・・・・
それがいやならjavaやめるべし メモリだけは贅沢じゃないと中間言語系はやってられんよ
このスレで
>>787 みたいな意見を言うと、
>>788 のような大人の対応が見られるが、
他のJavaスレで
>>787 みたいな意見を言うと、滅多糞に叩く。
「Swingは速くなったから今のマシンでは問題ない。お前のマシンが遅いだけ」
何故でしょうね。
今見たらOpenJaneも27Mくってるな 実際にスレ何個か開いてるような環境でのメモリ使用量の報告がほしいな
簡単なテキストエディタみたいなのでも20M以上食うんだね。 自己満で作っていて配布もしないからメモリ食おうが遅かろうが かまわないけど、少し驚いた。
VMが動いている以上イニシャルコストは必ずかかる でもそこからの上昇は少な目 最近はネイティブアプリでもサイズ、使用メモリが贅沢なことを考えると 高々2、30Mなんて誤差にしかならん
>>789 そりゃメモリ量のことを言ってるのに速度のことを言ったらタダのアホだからな。
>>789 「遅い」に関してはそういった1.4.2で速くなったっていう反論がでるけど、「メモリ食う」というものに関して反論がでることはあまりない。
そして、「メモリ食う」に関して「1.4.2で速くなった」っていう反論がでることは、きっとない。
JTabbedPane tab = new JTabbedPane(); tab.add("hoge", new JButton()); 上記のような方法でJTabbedPaneに貼り付けたコンポーネントを参照する方法はありますか?
>>795 おまえはマニュアルちゃんと見たのか?
見たなら見たで何が分からなかったとかかいてもらわんと
>>793-794 すまん。言われてみりゃそうだ。訂正するわ。
このスレで
>>787 みたいな意見を言うと、
>>788 のような大人の対応が見られるが、
他のJavaスレで
>>787 みたいな意見を言うと、滅多糞に叩く。
「今のマシンはメモリを大量につんでるから問題ない。お前のマシンがへぼいだけ」
何故でしょうね。
お前のマシンっつーか、配布先がしょぼいんだから仕方ない。
全員が全員CPUGHz越え・メモリ100MBなわけじゃないんだからさ。
PC関係なんてそんな簡単にリプレースできるとは思えんし。
関係ないけど.NETもメモリ食い過ぎ。結局Win32API使う羽目に。
っていうか俺の言いたいことは、このスレの住人は大人ですねってこった。
そんでもやっぱりEclipseのSWTは軽さが違うよねぇ。 比べてみても時間差はわからないけど、感触がまるで違う。
>796 すんませんすんません。 ちょっと投げやりになってたもんで失礼しました。 + 自己解決できてしまいました。 お騒がせしてすいませんでした。
SWTを誉める香具師は多いが、使っている香具師は極めて少ない罠。
感触がまるでちがうからといって、SwingからSWTに乗り換えるかといわれると微妙
>>800 大勢がSWTに乗り換えるよりもSwingとの性能差が縮む方が早かったという。
JNI使ってる時点で快適かもしれんがサンドボックス内で扱うのに著名必須なので スタンドアロンアプリ以外は使いにくいと思われ サイズもでかくなるしね 実は企業内システムでリッチクライアントの普及がSwingを後押ししているかもしれん
署名人
dd
何故それが名言なんだか理解に苦しむな。 只の寒い不発煽りじゃん。
名言ならもっといいのがあったような
810 :
デフォルトの名無しさん :04/06/07 15:08
Metalのテーマって、いろいろあるもんかな?
SwingDemo を見る限り 4 つだったか 5 つは少なくともあるけど。
Mac風、Win風、GTK風、Motif風、Metalの5つ?
>>812 それは LookAndFeel であって
Metal 自体に 4 つだか 5 つだかあるぞ。
>>812 それはLookAndFeel。
質問をよくみて。
クラスとしてはDefaultMetalThemeのほかにOceanThemeが追加されてるね。
orz 参考になります多。
816 :
デフォルトの名無しさん :04/06/08 03:11
なんだ?最近sWINGの話題が豊富じゃないか。 2年前なんて全然閑古鳥状態だったのに・・・
>>816 1.4.2から、やっと使い物になる速さになった。
>>816 sWINGなんて書くからWINGsかと思った
WINGsの情報は皆無に等しいがな
無料でばらまいてから、消えたな>WINGs
>>819 ???
俺が言ったのはWindowMakerが使ってるやつ
wingS?
823 :
デフォルトの名無しさん :04/06/18 14:02
サンデープログラマーですが、何か作ろうと思っています。 Null Layoutはあまり使わないってどこかで見ましたが、実際はどうなんでしょうか? VBっぽくNull Layoutで作ろうと思ってます。
>>823 好きにしろ。
自分しか使わないようなアプリならどっちで作っても他から文句はでないだろ。
>>824 まあ、そうなんですが一般的な話を聞いているだけですよ。
>>825 一般論で言えば、VB出身者は null Layout を好む。
エディタ+コマンドラインツール派は Layout Manager を好む。
>>825 一般的には、作るものに応じたものを使う。
828 :
デフォルトの名無しさん :04/06/18 15:58
>>823 一般的にはNullLayoutは使わない。
>>826 null Layoutを好むVB PGもJavaではLayoutManager使うでしょう
それはそうとSwingは糞
誰かJavaWebStartのネイティブorSWT版作ってくれ。
せっかくSWTの美しいアプリ作ってWebStartで公開しても
起動メニューがアレじゃあ俺様のアプリがへっぽこに見えるじゃねーか
決めつけ(・A・)イクナイ NullLayoutが適切な場面であれば、NullLayout使えばいい。
>>828 > null Layoutを好むVB PGもJavaではLayoutManager使うでしょう
VB PG は JBuilder とかで null Layout を使います。
以前にVBを主に使ってて Layout Manager を使う人は見たことないです。
> それはそうとSwingは糞
そーゆー話題は他のスレで気の済むまでやってください。
> 誰かJavaWebStartのネイティブorSWT版作ってくれ。
必要なら自分で作ってください。
>起動メニューがアレじゃあ俺様のアプリがへっぽこに見えるじゃねーか 実際にへっぽこなんだろ?
>>828 1.5beta2についてるやつ使ってみ。
>>830 > VB PG は JBuilder とかで null Layout を使います。
> 以前にVBを主に使ってて Layout Manager を使う人は見たことないです。
漏れは、以前にVBを主に使ってたが、SwingではGridBagLayoutをメインに使ってる。
NetBeansなんかだと、null LayoutからGridBagLayoutにがんばって変換してくれるしね。 EclipseのVEでももう少し賢くできるんじゃなかろうか。知らんけど。
久々に Swing でコーディングしてるが、 思いのほか動作が軽快でいい感じ。 JavaWebStart も凄く便利。 感動した。
836 :
デフォルトの名無しさん :04/06/19 03:09
SwingのUIって ニ セ ブ ラ ン ド み た い な 怪 し さ が あ る よ ね !
>>836 あーはいはい。で?
最近はまっとうな批判ができなくなったから、ただの中傷するだけになったん?
いかようにもなるので「SwingのUI」なるものはありません。
>>836 そういや、VCLもそんな雰囲気だったなぁ。
MFCで作るものと、動きが違うものがあった。
ウィンドウ最小化するときのアニメーションがなかったり。
840 :
デフォルトの名無しさん :04/06/19 03:38
使う必要がなくなったので、最近の事情は知りません。 したがって、真っ当な批判も出来ません。 ここの書き込みによると、今ではswingも充分高速になり、見栄えもすばらしいものになったようですが、 評価できないのが残念です。
まっとうなフォームデザイナでフリーのやつがあればなぁ。 JFaceも気になるけどねぇ。
とりあえず、1.4.2を使ったことなくて遅いというな、と。かなり改善されてる。 起動が遅いのは変わりないけど。ちょっとずつ改善されてる。 1.5ではフォントの描画もきれいになってるし、VM使いまわすみたいだから、2つめのアプリからは起動が速い。
>>841 NetBeansでいいじゃん。
JBuilderは知らんけど、あれも無料で使えんかね?
844 :
デフォルトの名無しさん :04/06/19 04:12
APWORKSっていうのもあるよ
845 :
デフォルトの名無しさん :04/06/19 07:22
Swingは見た目よりも中身だろ。 どうせお前らは何もできないからSwingの欠点をつくことしかできないわけでw
>>838 毎度おなじみの「作ればできる。」ですかw
いや「作ればいかようにもなる。」でしたねw
NetBeansで問題ないな というか、いまのところJavaのGUIエディタはアレが最高峰だ JBuilderは無料のヤツがパーソナルではなくなってファンデーションになったので 商用開発も可能 扱いやすさではJBuilderがEclipseやNetBeansより上だからまずは初心者は JBuilderさわったほうがいいかも ただ、初心者だと下手にコードいじってコンパイル通らなくなる可能性もあるから NetBeansのような保護が欲しいところ EclipseVEはまだまだ今後のバージョンアップに期待というところか JBuilderやNetBeansにくらべるとGUIエディタは劣る 1.5β2はSwing特有のboldの文字が綺麗になったのでびっくりしたというところか
>>846 UIを作るどころか、切り替えれもしないやつがひとり。
849 :
デフォルトの名無しさん :04/06/19 14:04
SWTは結局流行らなかったな。 まぁAWTで捨てた道だから当然といえば当然だが。
SWTは未だにJava UIの最適解だと思われ あれはプッシュする組織が少ないのが問題なんでしょう 標準じゃないってだけで流行らないのは人間の佐賀
標準ですでにノウハウや部品のあるSwingから移行ができない、というのが欠点だと思うよ。
>>850 作る側にとって最適解でないというのが改善されれば…
853 :
デフォルトの名無しさん :04/06/21 01:17
>> SWTは結局流行らなかったな。 充分流行っていると思うが。 まぁ、流行っても流行んなくても関係ない 一ついえる事はJavaで「ニセブランド」の怪しさをかもし出さないGUIアプリを作るには 今のことろSWTを使うしか、方法がない事
ネイティブルックアンドフィールでいいじゃん。
ネイティブL&Fにしてから適当にコンテナのツリー辿って、 特定のコンポーネントのボーダーはずしたりして調整すると 見た目はほぼ同じになるよ。
それは微妙に動きが違う、とか言うんだろうけど、VCLでもMFCとは違うし、本物っぽく、つまりMSのアプリケーションの動きに近づけたければMFC使うしかない。 最近のアプリはみんな独自UIだしね。
857 :
デフォルトの名無しさん :04/06/21 16:30
>>857 Swingで作る側がSwingDemo一度も動かしていないとは考えにくいが
あれは動的なLAF変更で遊ぶものだよ
859 :
デフォルトの名無しさん :04/06/22 15:59
普通 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this); を呪文の様に入れる。
860 :
デフォルトの名無しさん :04/06/22 19:57
windowsLAFはWindowsしか持ってないからな
固定で書くサンプルもよくみるが
>>859 がベター
JEditorPaneでsubmitするにはどうしたらええですか?
864 :
デフォルトの名無しさん :04/06/23 03:00
あげ
865 :
デフォルトの名無しさん :04/06/24 13:13
WindowsのL&FもMacみたいにネイティブで実装すればいいのにね。
WindowsがJavaを意識したUIを作ってくれれば可能だね。
ダサい方に合わせてどうすんだ
>>868 それは、mac向けのjvmはappleが作ってるから。
まぁjdk1.5からは、デフォルトがmetalじゃなくなるし、
ボールドなフォントもわりとマシになるから、見た目的には
実用に耐え得るようになると思うがね。
870 :
デフォルトの名無しさん :04/06/25 00:13
スクロールするリストの上部にTextFieldがあって、互いに連動する、
Windowsでいうところの「ListBox」を作っているんですが、うまくいかんです。
List から項目を選択すると、TextField に選択項目が表示される処理、は上手くいっていますが、
逆に、TextFieldを変更したときに、Listの選択項目が変わる処理、が以下のような例外を投げて
しまいます。
>java.lang.IllegalStateException: Attempt to mutate in notification
>at javax.swing.text.AbstractDocument.writeLock(Unknown Source)
>at javax.swing.text.AbstractDocument.replace(Unknown Source)
>at javax.swing.text.JTextComponent.setText(Unknown Source)
>at AListBoxPanel.valueChanged(AListBoxPanel.java:31)
> (以下略)
ソースはこちら。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548 なにがマズイのか、ご教授くださいませ。
>>870 よく読んでないけど
テキスト変更
↓
リストの選択項目変更
↓
その結果がさらなるテキスト変更を引き起こす
↓
最初のテキスト変更と競合
ってことじゃなかろうか。SWINGはプログラム内部で操作しただけでも
ユーザ操作と同じイベントが発生するので注意。
>>870 ListBoxっつーかドロップダウン?ComboBox?
JComboBoxをsetEditable( true)にして使うのはそのものでない?
>>873 ドロップダウンリストが常に表示されてるようなコントロールです。
JComboBox は選択時にしかリストが出ませんよね?
JComboBox でも機能としては間に合うんですけどね。
WardPad の Font選択ダイアログ画面みたいなのを、似せて作ってみようかと。
>>872 どうも、そうみたいです。
Listで選択→TextFieldへ反映、の方も上手くいってませんでした。同じ例外投げてます・・・。
自己解決できました。 isFocusOwner() で、自分にフォーカスがあるか調べて、フォーカスがあるときだけ 処理をするようにしたら良いみたいです。
>まぁjdk1.5からは、デフォルトがmetalじゃなくなるし、 よくそう言われるけど、Metalがデフォじゃないってソースは? どこを探してもテーマが違うだけって話しか見つからないんだが。
http://java.sun.com/j2se/1.5.0/ja/relnotes.html#swing Swing
以下の記述はこのリリースの Swing 機能に関連しています。
リリース 1.5 では Java の Look & Feel が変わりました。
新しい Look & Feel の名前は「Ocean」であり、自動的にロードされます。
Ocean は以前のデフォルトの Look & Feel (Metal) で使用されていたウィジェットサイズを維持します。
見た目は変わりましたが使い心地はほとんど変わりません。
Metal の Look & Feel はシステムプロパティ swing.metalTheme=steel を設定すれば指定できます。
詳細はバグレポート4607364 および Swing のリリースノートを参照してください。
つまり、プログラム仕様をみてるか、リリースノートを見てるかの違いだな。 プログラム的には、MetalLookAndFeelなんだが。
JEditorPaneでsubmitする方法、教えてくれよ。 じゃないと、むしゃくしゃして、大阪のほうの小学生をなでまくるぞ。
submitするってのはどゆこと?
>>879 簡単にいえば、グーグルで検索するみたいな。
入力フォームでsubmitを。
リンクはhyperlinkUpdateイベントでできるんだけど。
>>881 submit って言葉がようわからんけど、
google だったら検索する単語をアドレス後方に付けて GET メソッドだし、
他のものでの POST メソッドで呼び出しゃいいんちゃうの
>>879 やってみてないけど
1.5にはjavax.swing.text.html.FormSubmitEventがあるね、ってことは
どっかからこれをプログラム的にイベントポストすることはできる気がする。
JEditorPane使ってブラウザ作る気ならやめとき。 ポテンシャルの低さにガックリさせられるよ。 AA多いスレ開いた日には泣くよ。
>>882 呼び出すのはいくらでもできるけど、submitボタンのタイミングが取れない。
>>884 いや、ブラウザ作るほどじゃなくて単なる簡易表示なんだけど、アンカーはイケるのにsubmitできないから中途半端で。
886 :
デフォルトの名無しさん :04/06/30 11:25
JTableの1つのセルを編集するごとにある処理を行いたいのですが、 リスナーなどをインプリメントして、ActionPerformedのように なんかしらをオーバーライドすればよいのでしょうか? イマイチどうやったらよいものかわかりません。よろしくお願いします。
888 :
デフォルトの名無しさん :04/06/30 13:46
>>887 ありがとうございます。
テーブルの変化を読み取ることができるようになりました。
しかし、その中で table.setValueAt("hoge",0,0)のようなことを行うと
何度も tableChangedメソッドを繰り返してしまいます。
このメソッドをコメントアウトすると、一編集に対し、一度だけきちんと動作するのですが…
ご存知でしたら教えてください。
自己解決しました。 どうやら、setValueAt()をすることで、tableChanged()を呼んでしまい 再帰的にグルグルと回っていたようです。 一時的にtableModelListenerを解除してなんとか切り抜けました。
>>889 詳細が分からないからはっきり言えないけど、invokeLaterを使うべきではない?
891 :
デフォルトの名無しさん :04/06/30 21:02
>>891 初めてそのメソッドを知りました。
これから調べてみます。
レスありがとうございました。
|ハ,_,ハ |´∀`';/^l |u'''^u;' | |∀ ` ミ ダレモイナイ・・・ | ⊂ :, モサモサ スルナラ イマノウチ | ミ | 彡 | ,:' |''~''''∪ l^丶 もさもさ | '゙''"'''゙ y-―, ミ ´ ∀ ` ,:' (丶 (丶 ミ (( ミ ;': ハ,_,ハ ;: ミ ';´∀`';, `:; ,:' c c.ミ U"゙'''~"^'丶) u''゙"J /^l ,―-y'"'~"゙´ | もさもさ ヽ ´ ∀ ` ゙': ミ .,/) 、/) ゙, "' ´''ミ ハ,_,ハ (( ミ ;:' ,:' ´∀`'; '; 彡 :: っ ,っ (/~"゙''´~"U ι''"゙''u
もっさりさんキタ━━━━━(゚∀゚)━━━━━━!!!
894 :
yukiko♪ :04/07/11 05:45
JLabel imageLabel = new JLabel(new ImageIcon("imgs/hoge.jpg")); container.add(imageLabel, BorderLayout.WEST); this.setSize(600, 400); this.setVisible(true); containerはgetContentPaneで取得して、レイアウト設定済み。 こんな感じで作ってるんだけど、 なぜか画像が表示されないよ〜。 サンプル見て作ってるのにわけわかめ。 パスもこのクラスファイルの格納されてるフォルダーimgs-hoge.jpeg あってるはずなのに。。 誰かわかる人いない〜? もういや(。_ _)。 javaのversionは1.4.2です。
>>894 こんな情報でなんかわかるやつがいたら、神かストーカーだな。
>>894 NetBeans使って楽しろ。
もしくはpack()をはさむ
thisはJFrameなんだろうなぁというくらいしかわからんな あとウインドウはサイズ指定よりpack使え サンプルもサイズ指定ならそのサンプル捨ててしまえ ちなみにそのコードそのまま使ったら画像普通に表示されたけど?
まあ画像へのパスがおかしいんだろ。
サイズ指定は要るだろ。 それか、選挙いけ。そしたら、100年後にはクソサンプルも減るだろう。
なんでサイズ指定させるんだよ この場合JLabelに推奨サイズ指定してJFrameはpackだろ pack使わなかったら同じWindowsであってもうまく表示されないぞ もしかして特定の環境でしか動かなくていいという人?
>>900 ・・・うまく表示されないってのがどういうことかわからない。
とりあえず、ここらへんで意図したとおりに動かなかったことはないのだが。
setSizeはinsetsを含むから同じWindowsであってもXPとクラシックでずれが生じる さらに全く同じWinのバージョンでも人によってタイトルバー大きくしてたりするから 問題が出る pack使ってない本はすべて捨てていいよ
>>902 あぁ、そういうことね。
「うまく表示されない」っていうほどのことじゃないと思うが。
気になるなら、addNotifyオーバーライドしてこう。
public void addNotify(){
super.addNotify();
Dimension d = getSize();
Insets is = getInsets();
setSize(d.width + is.left + is.right, d.height + is.top + is.bottom);
}
904 :
yukiko♪ :04/07/11 21:33
みんな返事ありがとう♪ eclipseでやってるんだけどどうもパス関係があやしいみたい。。。 パス指定をルート(c:/eclipse/workspace/.....) から書いたらいけたo(*^▽^*)o けどなぜ駄目なんだろ? eclipseの階層表示のとこにclasses以下のフォルダが表示されてない のが気になるんだけど、ちゃんとローカルにフォルダが出来ててビルド結果も ちゃんとそこに入ってるのに。。。 classパスはメインが実行できてるからOKなはずだし、 その確実にとおってるパスの直下のフォルダのjpgファイルが どうして表示されないんだろ(*_*)
>>904 /imgs/hoge.jpgにしたら?
クラスパスとカレントパスは全然関係ない
new JLabel(new ImageIcon(getClass( ).getResource("/imgs/hoge.jpg"))); とテストもせずに言ってみる
>>904-907 Eclipseのパッケージエクスプローラは生成したクラスファイルが
保存されるフォルダを隠蔽して表示しないから。多分プロジェクトの
プロパティでclassesがbin出力フォルダになっているはず。
で、907の通りにgetResource()を使うのは定番なんだけど、このとき
うっかりclassファイルがあるフォルダ(classesかな?)に自分で(手動で)
imgs/hoge.jpgを入れるのではなく、ソースファイルがある対応した
フォルダにimgs/hoge.jpgを作らないとはまるので注意。あとは実行時や
export時にeclipseがよきにはからってくれるのでそれに任せる。
>>908 ドキュメントに「文字列は URL に変換され」とあるから、明示的にgetResource使う必要はないと思ってたのだが、どうか?
>>909 getResourceを使うとクラスパスを基準としたファイルの位置指定になるから
jarかどうかといった実行形態によらない管理ができて楽になるよ。
>>910 いや、等価になると思ってたのだが、どうか、という話なのだが。
>>911 ImageIcon(String filename)は最終的にfilenameに手を加えずにそのまま
Toolkit#getImage(filename)を呼ぶだけなので等価にはならない。
>>905 よくわかんないけど
/imgs/hoge.jpgは絶対パスだから
c:/imgs/hoge.jpgになっちゃいません?
<<906
わけわかめ状態になっちゃってて。。。。(。_ _)。バタ!
>>907 new JLabel(new ImageIcon(getClass( ).getResource("/imgs/hoge.jpg")));
なら表示されますたo(*^▽^*)o♪
>>908 主導でclasses以下に放り込んではないよぉ〜。
classes以下を全て削除してからもう一度ビルドして
みたんだけど同じですた(*_*)
クラスパスとファイルのパスの違い分かってるの?
ファイルパスは/ではじまったら絶対パスでカレントディレクトリの所属する ルートからの位置。 /なしで始まったらカレントディレクトリから読み始める相対パス。 クラスパスはただclassファイルやjarファイルが置いてあるディレクトリを コンパイル時に参照できるように設定するもの。 これはルートから書く。 。。。と思ってるけど違うの?
違います。
>>916 違ってはないけど、クラスパスに関しては正しいともいえない。
ひとつつっこむと
× classファイルやjarファイルが置いてあるディレクトリ
○ classファイルやリソースが置いてあるディレクトリやjarファイル
>>918 明らかに間違ってるだろうが。
>コンパイル時に参照できるように設定するもの。
実行時もクラスパスは必要。
>これはルートから書く。
相対パスでも問題ない。
「間違っている」と「間違っている箇所がある」は違うぞ。
いや同じだ。
まぁまぁ( ^-^)_旦~ おふたりさん、ありがとう♪ おかげで勉強になりましたm(__)m あたしって向いてないんだよねプログラマo(*^▽^*)o 理論とか理屈はあまり好きじゃなくて感覚でやってるとこあるから・・・ 軽蔑されるかもしんないけど、 この業界に入ったきっかけもかっこよくてできるイケメンプログラマ との出会いを求めてだからね〜o(*^▽^*)o♪ でもクラスパスを書くときに相対パスで書く場面とゆうか 具体的な例が思い浮かばない。。。
>>922 ウザ。
プログラマじゃなく人間やめた方がいいよ。
>>922 > この業界に入ったきっかけもかっこよくてできるイケメンプログラマ
> との出会いを求めてだからね〜o(*^▽^*)o♪
正しい姿勢だと思うが。
出生率低下の歯止めに貢献しろ。
とりあえず俺と
やらなイカ。 いいこと考えたぜ。 お前ら俺のケツで小便しろ。
929 :
デフォルトの名無しさん :04/07/15 22:13
import java.awt.*; import javax.swing.*; public class BoundsTest extends JFrame { public static void main(String[] args){new BoundsTest();} Display display = new Display(); BoundsTest(){ Container container = getContentPane(); container.add(display); setSize(display.getSize()); // これだとダメ。 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } } class Display extends JComponent { Dimension DEFAULT_SIZE = new Dimension(200, 200); public Display(){ setSize(DEFAULT_SIZE); } public void paint(Graphics g){ Rectangle clip = g.getClipBounds(); g.setColor(Color.white); g.fillRect(clip.x, clip.y, clip.width, clip.height); Dimension size = getSize(); g.setColor(Color.red); g.drawString("width = " + size.width + " height = " + size.height, 20, 20); } } Display のサイズに合わせてJFrameをオープンしたいのですが、どーもうまくいきません。 上のようにdisplay.getSize() で得たサイズでそのままJFrameのサイズを設定しても、ちょっと小さくなってしまいます。 JFrameの全体サイズではなく、クライアント領域のサイズを設定しないとダメだと思うのですが、その方法がわかりません。 どうしたらいいんでしょうか?
別のJavaスレでまさにこの話題やってた。 JPanelでPack()するか、addNotify()オーバーライドのinsets。 後者は知らんかった、調べてみます・・。
932 :
今日は蒸しますね :04/07/16 09:40
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); しておいて、 windowClosingで本当に閉じるか確認メッセージを表示後にdisposeしています。 「X」ボタンからはうまくいってます。 自前の終了ボタン(JButton)のイベントからwindowClosingを経由させて閉じたい場合 どんな方法があるのでしょうか? (disposeするとwindowClosingを経由しません。)
経由させたいなら勝手にwindowClosingを呼べばいいのではないのかね
>933 そうですね。 ありがとうございました。
age
936
937
938
939
ここにもスレ番荒らし出現してんのか。
941 :
デフォルトの名無しさん :04/09/09 21:40
netbeansが4.0βになってずいぶんと使いやすくなったので (Antベースのプロジェクト機能が大きい)、遊んでたんだが、 最近のSwingってOSネイティブな感じで結構速いのな。 おれには実用的な速度に思える。
>>941 つうことは、そこでSwingの話していいのか?
NetBeans3.6まで触ってきた人にとって4は鬼門 Ant標準なのはいいのだが・・・うーむ いままでNetBeansが敷居が低かった部分をすべて破壊してEclipseのまねごとへ向かってる感じ Swing部分はまったくかわってないし とりあえず安定度がお話にならないから3.6使った方がいいぞ
安定度に関してはβなんだし細かいこというな。 「ファイルシステム」がなくなったのがいやだな。
NetBeans4はある意味改悪だな
そなの? おれ4.0になってから分かりやすくなったけど。 マウントとか、いままでのnetbeansユーザには使いやすかった ようだが、おれはいまのプロジェクトシステムのほうが分かりやすい けど。
>>947 ライブラリを使うときってどうやるの?
ヘルプがないからわからん・・・
おれはプロジェクトディレクトリにlibディレクトリをつくって そこにぶち込んでる。libはもともとプロジェクトに入ってるので、 勝手に認識する。 ビルドの時には、lib下のjarも全部アプリケーションjarにマージ するようにAntスクリプトを書き加えてる。
・・・前のファイルシステムの方がわかりやすいな。
951ゲット!!
Eclipseからのユーザーを奪おうとして 結局NetBeansユーザーが逃げるよな ユーザーが欲しいのは似たような方向へ動くことではなくて 各IDEが特徴出しつつ得意不得意をどうやっていくか、だと思うけどな Swing関係は3.5からまったくかわってねぇーし 新機能も大事だが、既存のいい部分をのばすというのも大事だと思う Swing使うならNetBeansで現状決まりなのだが、これをさらにすすめて クライアントサイドはSwing、結果的にNetBeansできまりというような 具体的にはイベント周りの強化、TableModelとかListModelなどの 細かいコードを書く支援とか、やるべきことはいくらでもあるだろうに
イベント周りを使いやすく、コンポーネントの配置位置をわかりやすくしてほしい。
955
956 :
デフォルトの名無しさん :04/09/12 03:12:58
そこでWebLogic Workshopですよ。
957 :
yoyo :04/09/12 08:01:24
いきなり質問します。 俺の実力ではどうしても解決出来なかったのでここに掲示します。 JComboboxでコンボボックスが展開した時のイベント、 また、閉じられた時のイベントを取りたいですが、どうすれば 取得できるのでしょうか?ていうか本当に取得は可能なのでしょうか? 結構長い時間調べてみましたが、全然分かりません… よろしくお願いします。 お答えお願いします。
PopupMenuListener じゃだめなの?
959 :
yoyo :04/09/12 14:11:35
お答えありがとうございます。 Popuopもいいですね〜〜〜。 出来ればJComboboxでやりたいですが… もうちょっと調べてみますが、これも回避策として入れておきます。 hm... 出来ないのかな…
>>959 > 出来ればJComboboxでやりたいですが
だからJComboBoxにPopupMenuListener
962 :
yoyo :04/09/12 14:34:14
すみません。 勘違いしました。 まさしく、私が探していたのはこれ!です。^^;;; 本当にありがとうございました。 助かりました…
963
964
965
次スレを立てるのなら、Swingにこだわらず、 昔この板にあったスレッドのように、 クライアントサイドJavaスレッドというようなタイトルにして、 SwingもAWTもSWTも、まとめてあつかったほうがいいかもしれない。 Swingスレッドのレス数と、とくにSWTスレッドのレス数をみるに、 それでも、十分のようにおもう。 検索しやすいように【Swing】クライアントサイドJava【SWT】のように、 【】のなかに、Swingなどの文字もつけたうえで。
GUIという土俵は同じだが、考え方が全く違って宗教論になって終わる希ガス
>>966 クライアントサイドっていわれるとねぇ・・・
JavaGUIだね。
このスレの内容なら初心者Javaスレで十分だと思うのだが。
クライアントサイドというのならゲームもリッチクライアントもはいるしなぁ
>>971 むしろ、そこが狙い。
対象範囲を広く取ったクライアント全般のスレッドを今一度。
新スレッドを、GUI関連をまとめて扱うスレッドにするにしても、 クライアント関連をまとめてあつかうスレッドにするにしても、 SWTは、別にしておいてもいいようにおもう。
だからさぁ、Swingは標準でついて来るから初心者Javaスレでいいし、 SWTは別個のライブラリだからスレも別個でいいじゃん。
SwingスレとSWTスレで、妙にレスがおおいなって思ったときは 大抵、Swing vs SWTとか、Javaおせーとか、exeじゃなきゃ駄目だ とかそんな話ばっかなんだよな。
そうそう。 そもそもここも「高速GUI SWT」スレをパロって作られただけだし。 無理してSwingを単独スレにする必要もないと思う。 初心者Javaスレでも普通にSwingの質問扱ってるし。
じゃあ、異論がなければSWTの文字は削除して、 次スレッドを立てるとすれば、クライアントサイドスレッドのPart4ということにする? もしSwingのスレッドも無いと寂しいという声もあれば、 携帯電話Javaスレッドのように、括弧のなかにSwingの文字も入れるけど。 スレッドタイトル。 クライアントサイドJava Part4(GUI,Swing等々)
次スレいらん。
>>977 だからその内容じゃJavaスレで足りるっつの。
むやみに情報を分散させないでほしいなぁ。 どうせJavaスレでもSwingを扱うし、 J2SE5.0がリリースされればGenericとかもJavaスレで扱うし、 SwingスレとかJ2SE5.0スレとか別々に作るのやめてほしいよ・・・
情報をごちゃまぜにするのもどうかと思うけど、Swingに関しては話題がなくてスレ番荒らしにあってる状況だから、まあいいか。
少なくとも標準で付いてくるパッケージについて一つのJavaスレで話す分には問題ないかと。
閑散としたスレに救世主が!! 廃墟 ヽ|・∀・|ノ <ハイーキョマン |=◎=| | |
986 :
るぶっっっっっっっっっっっっっっっっっっっっy :
04/09/16 23:09:47 Ruby ,,,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Swihngpier