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


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

Java低速GUI Swing



1 名前:デフォルトの名無しさん [03/08/31 04:24]
そんなSwingとやっていくみんなのスレッドです。

445 名前:デフォルトの名無しさん mailto:sage [04/01/06 09:54]
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
ちょっと乱暴な運転したぐらいで、人を殺せてしまうのも、自動車の良くないところですね。

キミはプログラム書かないほうが幸せだと思われ。

446 名前:443 mailto:sage [04/01/06 10:11]
>>445
ん?
VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
小回りは効かないけどな。

445の言い方をすればちょっと乱暴な運転しただけで人を殺せる車は良くないということだな。
普通の車なら、ちょっと乱暴な運転しただけでは人を殺せないからな。
なんなら、そこらへんの車で乱暴な運転してみ。あんたの腕では暴れもしないから。
もちろん、車というものは人を殺そうとして運転すれば人を殺せる。

# 日本車でちょっと乱暴な運転で暴れるのは前期SW20か。

447 名前:デフォルトの名無しさん mailto:sage [04/01/06 12:38]
>>445←こういうのが俗に言うJava厨の慣れの果て

448 名前:デフォルトの名無しさん mailto:sage [04/01/06 14:30]
Swing のシングルスレッド規則なんか、そうしないと使いもんにならない
くらい遅かったから後付けしたんだろ。JComponent#setText とかは
「このメソッドはスレッドセーフですが、〜」って中途半端なんだよ。




とかよく知らずに言ってみる。

449 名前:デフォルトの名無しさん mailto:sage [04/01/06 15:10]
> そうしないと使いもんにならないくらい遅かったから後付けしたんだろ。
イベントディスパッチスレッドで重い処理すれば止まるのは Windows も同じ。

450 名前:デフォルトの名無しさん mailto:sage [04/01/06 17:23]
>>446
> VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
例えば BCB で OnMouseMove 内に while(true); だけ書いておけば即死すると思うが。

> 445の言い方をすればちょっと乱暴な運転しただけで人を殺せる車は良くないということだな。
書き方が悪かったか? まぁその部分は枝葉だし
「ちょっと余所見したぐらいで、人を殺せてしまうのも、自動車の良くないところですね」
「ちょっと巻き込み確認を怠ったぐらいで、人を殺せてしまうのも、自動車の良くないところですね」
でも何でも良いわけだが。

451 名前:デフォルトの名無しさん mailto:sage [04/01/06 18:42]
>>450
> 例えば BCB で OnMouseMove 内に while(true); だけ書いておけば即死すると思うが。

明らかに殺意あり。密必の恋。

452 名前:443 mailto:sage [04/01/06 18:48]
>>450
そのたとえに、やっちゃいけないことやったらよくない結果になる、という以上の意味はあるのか?
っていうか、お前はちょっと余所見したくらいで人殺してしまうくらい殺伐とした道路事情の場所に住んでるのか?
そこは中国か?勇気がないと道路渡れんようなところか?

まぁ、発言するたびにバカ晒してる感じだから、そろそろやめとけ。

453 名前:デフォルトの名無しさん mailto:sage [04/01/06 18:57]
>>451
> 明らかに殺意あり。密必の恋。

単に
> > ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
が間違いだって例をだしただけ。



454 名前:デフォルトの名無しさん mailto:sage [04/01/06 19:01]
>>453
while(true);が「下手糞な」コードだ、と?

455 名前:443 mailto:sage [04/01/06 19:04]
>>453
で、その例が、適切でないという指摘をうけたわけだな。

Swingの場合、コーディングの自由度が高いから、安易に組むと、最適に組んだときとのパフォーマンスの差が大きいという話をしてるわけだろ。
VCLの場合、コーディングの自由度が低いから、差はでにくい、と。VBよりは自由度あるけど。
VCLでもコーディング次第でパフォーマンスを落とせるとか、そういう話じゃないだろ。

456 名前:デフォルトの名無しさん mailto:sage [04/01/06 19:05]
>>452
> そのたとえに、やっちゃいけないことやったらよくない結果になる、という以上の意味はあるのか?
無い。

> っていうか、お前はちょっと余所見したくらいで人殺してしまうくらい殺伐とした道路事情の場所に住んでるのか?
仮に、脇見運転で人を殺したら道路事情のせいにするのか?

> そこは中国か?勇気がないと道路渡れんようなところか?
例え話にそんなツッコミされても…
中国行ったこと無いし。

457 名前:デフォルトの名無しさん mailto:sage [04/01/06 19:09]
>>454
> while(true);が「下手糞な」コードだ、と?
イベントディスパッチスレッドを止めるような事をしてはイカンのは
Java も BCB も同じという例だから、while(true); でなくても別に構わないんだけどね。

458 名前:デフォルトの名無しさん mailto:sage [04/01/06 19:13]
>>455
> VCLでもコーディング次第でパフォーマンスを落とせるとか、そういう話じゃないだろ。
Swing 以外でも同じようにコーディング次第でパフォーマンスが落とせるなら、
Swing が悪いわけでは無いという事になりますが…

459 名前:443 mailto:sage [04/01/06 19:15]
> 仮に、脇見運転で人を殺したら道路事情のせいにするのか?

するわけないだろ。

歩行者もバカじゃないし、普通の速度でちょっとくらい脇見しても、死ぬようなタイミングで突っ込んできたりはせんよ。
普通車で自転車まきこんでも、よほど壁にはさんだりしない限り、死ぬようなこともないし。
だからといって、脇見や巻き込み確認をしなくてもいいわけじゃないよ。
たとえが適当じゃない、っていいたいだけ。

460 名前:443 mailto:sage [04/01/06 19:16]
>>458
その直前の文章くらい、読んでくれ。

461 名前:デフォルトの名無しさん mailto:sage [04/01/06 19:18]
>>459
> > 仮に、脇見運転で人を殺したら道路事情のせいにするのか?
>
> するわけないだろ。
普通はそうだよね。

プログラム組む時も同じような心構えなら
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
とか言わんと思うんだが。

462 名前:デフォルトの名無しさん mailto:sage [04/01/06 19:22]
>>460
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
とかゆー発言から、
「Swing だけが、ヘタクソなコードでパフォーマンスに大きく影響が出る」
のかを問題にしてる。

463 名前:デフォルトの名無しさん mailto:sage [04/01/06 20:22]
>>461
もう放置しろよ。屁理屈捏ねる粘着相手にしても切がないでしょ。




464 名前:デフォルトの名無しさん mailto:sage [04/01/06 20:55]
>>463
「ちょっと下手糞に書くとSwing『だけ』パフォーマンスが『著しく低下する』」
に対する反論はしないわけ?
それともできないわけ?

窮地に追い詰められた時に「屁理屈捏ねる粘着相手」と相手を蔑むことで
その場から逃げようとする姿勢は情けなく思います。

465 名前:デフォルトの名無しさん mailto:sage [04/01/06 21:55]
俺Swingはヘタレなんで知らないけど

下手糞なコーディングする自分を恥じる心は無いわけ?
「うわぁい、俺実装のクイックソートはバブルソートより遅いぞ☆」
悪いのはクイックソート?下手糞な俺実装?それとも使ってる言語か?

466 名前:デフォルトの名無しさん mailto:sage [04/01/06 22:07]
>>465
ワラタ そりゃー下手糞なコーティングしてるヤシが悪いだろ。
俺はSwingとか今から始める段階だから知らないんだけどさ
「ちょっと下手糞に」の「ちょっと」ってのが嫌だナァ。

言葉だと面倒だから良いコーティングと悪いコーティングのソースキボン

467 名前:デフォルトの名無しさん mailto:sage [04/01/06 22:13]
>>465
> 下手糞なコーディングする自分を恥じる心は無いわけ?
そりゃ恥じるべきだよ。
> ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> VBとかVCLとかだと、ヘタクソなコードでパフォーマンスに大きく影響が出たりしないからな。
とかゆー発言から、
「Swing だけが、ヘタクソなコードでパフォーマンスに大きく影響が出る」
のかを問題にしてる。


468 名前:デフォルトの名無しさん mailto:sage [04/01/06 23:09]
具体的に、どんなヘタクソなことができるの?

469 名前:デフォルトの名無しさん mailto:sage [04/01/07 00:14]
俺Swingは趣味(?)でやってて、仕事で個人的に使うツールを作って使ってるだけなんだけど
2GHz512MBでもちょっと遅い・・と思うけどなぁ
あと4倍は速くなって欲しいと思う。いつになったら8GHzの時代になることやら。。
あと、専門でやってるわけではないのでヘタレコーディングになってるかもしれない
自分では普通につくっているつもりなのだが。

470 名前:デフォルトの名無しさん mailto:sage [04/01/07 00:24]
>>469
SWTスレの↓なのが気になったけどどうなんだろ?
> Eclipse3.0M6からの、SWTへのSwing埋め込みを試してみた人レポートよろ

471 名前:デフォルトの名無しさん mailto:sage [04/01/07 01:06]
>>470
元カキコした者です。↓が簡単な紹介になってます。
download.eclipse.org/downloads/drops/S-3.0M6-200312182000/eclipse-news-part1-M6.html

自分で評価しろやゴルァと言われそうですが、僕はSWTでしかJavaのGUI作ったことないので評価しにくいのですよ。

472 名前:デフォルトの名無しさん mailto:sage [04/01/07 01:30]
>>470
dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/snippits/snippet135.html
SunをEclipseコンソーシアムに引きずり込みたいIBMが
「SwingのコードもEclipseに組み込める」というために
つくったものだったけど、結局無駄になったね。internal
なAPIから正式なAPIになったけど、これ以上すすめる
モチベーションがIBM/OTIにあるのかは疑問。

473 名前:デフォルトの名無しさん [04/01/07 01:53]
とりあえず、443は何故そんなに必死なんだ?



474 名前:デフォルトの名無しさん mailto:sage [04/01/07 01:59]
SWTにSwing組み込めるのは、おまけだろ
SWTはSWTで組まないと意味内


475 名前:デフォルトの名無しさん mailto:sage [04/01/07 07:50]
へたくそが使っても、へんなふうにはならない部品というのは、
たしかにすごいけど、SwingやAWTにそこまで求めるのも酷のような気がする。
まあそこまで使い勝手のいいようにラップされた部品というのも、
Java以外のなにかのシステムのGUIコンポーネントには、あるのかもしれないけど。

Javaチュートリアルを日本語に訳して誰でも読めるようにしてくれれば、
固まるようなJavaのGUIアプリも、ずいぶんと数が少なくなりそうなんだが。

>>468
俺も、すごく基本的なことしかわからないけど、
まず基本的な問題として、Javaにおいては、
ボタンがクリックされときに処理をするとか、画面を描画したりするとか、
そういうGUI関連の処理をしてくれるスレッドは、ひとつしか存在しない。

ゆえに、
「ボタンをクリックしたら10秒くらいの時間がかかる処理をはじめる」
とか、そんなソフトをなんの考えもなしにつくったら、
そのボタンをクリックしたら最後、10秒くらいGUIが固まっちゃうのさね。

これを固まらないように作るとすれば、
別のスレッドを用意して、10秒くらい時間のかかる処理は、
その別スレッドにまかせてしまうという感じ。

SwingWorkerクラスとか色々あるので、まじおすすめ。

476 名前:デフォルトの名無しさん mailto:sage [04/01/07 13:11]
Win上でSwingアプリをSpy++で見ると
InternalFrameとかタブとかあっても一つのjavax.swing.JFrameしか
見えないんだけどこれってその窓に全部自前で描画してるってこと?

477 名前:デフォルトの名無しさん mailto:sage [04/01/07 13:37]
そういうこと。

Swingの重量コンポーネントと軽量コンポーネントでぐぐるとその辺のことが出てる。

478 名前:デフォルトの名無しさん mailto:sage [04/01/07 14:31]
>>476
だから、リソース的には軽い。

479 名前:468 mailto:sage [04/01/07 15:03]
>>468
> 「ボタンをクリックしたら10秒くらいの時間がかかる処理をはじめる」
> そのボタンをクリックしたら最後、10秒くらいGUIが固まっちゃうのさね。

これって、SwingだけじゃなくほとんどのGUIツールキットで起こらない?
逆に、スレッドや同期が気軽に使えるSwing(Jave)のほうが有利なくらいだと思うのだけれど。

「リストにアイテムを突っ込むときに○○○してからじゃないと遅い」
とか
「モデル側でのエレメントの取得処理は十分高速でないといけない」
みたいな例があるのかと思って。
素人ですんまそん。

480 名前:468 mailto:sage [04/01/07 15:04]
レス番間違えた >>475

481 名前:475 mailto:sage [04/01/07 16:46]
>>479
>これって、SwingだけじゃなくほとんどのGUIツールキットで起こらない?
たとえば、つぎのようなGUIコンポーネントのシステムが
考えられるとおもうよ。

システムが、ワーカースレッドを複数つくっておいて、それをプール。
クリックされたときなどに行う処理は、ワーカースレッドにすべて引き渡す。
こういったことを、プログラマーが意識しなくとも、システムが自動的におこなってくれる。

これなら、へたくそなプログラマーが、
どんなに重い処理をなんの考えもなしに記述しても、
描画や、ボタンがクリックされたかのチェックを行うスレッドは、固まらない。

キューを作っておいて、そこのキューに仕事をため込むことで、
あるていどのバッファとしたりしてもいいかもしれない。

もちろん、重い処理をつぎつぎと発生させれば、
ワーカースレッドも、つぎつぎと浪費されていくことにはなるし、
キューも、やがてはあふれて処理を取りこぼすだろうけどね。

それはさておきJavaでも、既存のSwingのうえに
このようなコンポーネントシステムを構築(ラップ)することは可能だとおもう。
ただ、Javaの場合は、
もうひとつ『シングルスレッドルール』なるものを考慮しないといけないけどね。

// つーか俺がしらないだけで、
// Swingを使ったそういうコンポーネントのシステム、どこかにありそうだけどね。

482 名前:475 mailto:sage [04/01/07 16:47]
>>479
>みたいな例があるのかと思って。
その手の例なら、最近のJava Live Transcriptsのテーマにあったとおもう。
俺は、英語苦手だから、全部目を通したわけではないが。
java.sun.com/developer/community/chat/JavaLive/2003/jl0121.html

483 名前:デフォルトの名無しさん mailto:sage [04/01/07 17:44]
>>481
> たとえば、つぎのようなGUIコンポーネントのシステムが
ちなみに、そのような方法を採用したGUIコンポーネントのシステムってあるの?



484 名前:デフォルトの名無しさん mailto:sage [04/01/07 19:41]
>>481
画面からの入力がコマンドになってるCommandパターンなわけね。
面白いと思うけど、各処理を同期させないといけない場合なんかは
面倒くさそうだな。


485 名前:デフォルトの名無しさん mailto:sage [04/01/07 21:17]
coreJava2Vol2.応用編より

Swingの設計者は、2つの理由からSwingをスレッドセーフにしないことを決めた。
まず、スレッドの同期には時間がかかるため、Swingの処理速度を
これ以上遅くしたくなかった。
さらに重要な理由として、他のチームがスレッドセーフな
ユーザーインターフェースツールキットを開発したときの経験が挙げられる。
ユーザーインターフェースツールキットを構築する場合、
他のプログラマがユーザーインターフェースツールキットに独自の
要素を追加できるように拡張性を持たせたい。
しかし、スレッドセーフなツールキットを使うと、同期を行わなければ
ならないという制限のためにプログラミングが難しくなり、
デッドロックの可能性を秘めたコンポーネントが生成される傾向がある。

486 名前:デフォルトの名無しさん mailto:sage [04/01/07 22:37]
>>481
そういうのは今まで見たことがないな.

アプリケーションへのコールバックがマルチスレッドで行われる場合,
イベントハンドラが全てスレッドセーフになっていなければならないってことになるよ.
foolproofのつもりが,かえってプログラマに対する要求がきつくなってる.

あと,いわゆる先行入力ができなくなる.
たとえばボタンを押すとダイアログボックスが開くというような場合,
普通のツールキットならダイアログが開くまで
重い処理があっても入力はキューされるので
ユーザは先行してEnterとか入力することができるけど,
おまいさんのモデルの場合はダイアログが開く前の(重い処理中の)
入力が他のウィジェットに吸収されてしまうので,先行入力ができない.
こういうのはくだらないと思うかもしれないけど,
ユーザの使い勝手の点では重要.

普通に使われてるウィンドウツールキットが
同期的なイベントハンドリングをするのにはしっかりした理由があるので,
ちょっとした思い付きで改善できるならとっくにそうなってるよ.
その点に関してSwingはVBやVCLと比べて優劣の違いはない.普通.
AWTと比べればスレッドアンセーフだけど,むしろその方が一般的だし.

487 名前:デフォルトの名無しさん [04/01/07 23:06]
結論:MFC >>>>>>>>>>>>>>>>> Swing

488 名前:デフォルトの名無しさん mailto:sage [04/01/07 23:21]
>>487
プログラムの組みやすさ以外は、ある意味そうだと思う。

489 名前:デフォルトの名無しさん mailto:sage [04/01/07 23:29]
>>488
マルチプラットフォームだしね。
www.bristol.com/windu/

Mac版もあったけど資料が見当たらない……。

490 名前:デフォルトの名無しさん mailto:sage [04/01/07 23:40]
動作速度、カスタマイズ、大きさ、全てにおいて、MFCの勝ちだな。

491 名前:デフォルトの名無しさん mailto:sage [04/01/08 00:10]
>アプリケーションへのコールバックがマルチスレッドで行われる場合,
>イベントハンドラが全てスレッドセーフになっていなければならないってことになるよ.
>foolproofのつもりが,かえってプログラマに対する要求がきつくなってる.

Swingの場合、それをシングルスレッド規則が包括しているわけですの。
「コールバックしたらイベントキューに突っ込め。ユーザスレッドで再描画するな。」
ですから。

シングルスレッド規則って、しらん人多いんでわ。←これが問題


492 名前:デフォルトの名無しさん mailto:sage [04/01/08 00:58]
シングルスレッド規則知らん人なんですけど
「コールバックしたらイベントキューに突っ込め」
これがどういう事なのかすらわからないのですが

といか、そこまでSwingきわめて、ちみらいったい何つくったわけよ?

493 名前:デフォルトの名無しさん mailto:sage [04/01/08 01:37]
極める何てレベルでなく
基 本 中 の 基 本
です



494 名前:デフォルトの名無しさん mailto:sage [04/01/08 03:10]
>>493
どっちでもいいけど何作ったの?

495 名前:デフォルトの名無しさん mailto:sage [04/01/08 03:34]
>>494
簡易ダウンローだ

496 名前:デフォルトの名無しさん [04/01/08 06:30]
>>494
>>395

497 名前:デフォルトの名無しさん mailto:sage [04/01/08 08:55]
>>491
> シングルスレッド規則って、しらん人多いんでわ。←これが問題
普通は知ってる。

理由:他のGUIツールキットも同じだから

498 名前:デフォルトの名無しさん mailto:sage [04/01/08 10:00]
>>434
あのな。わしが言いたいことは
VBとか.net frameworkとかはAPIの質が低いといっているのだよ。
なんというか、初心者みたいなのとかオブジェクト指向を知らない香具師とか
使い捨てプログラムしか作る気がない香具師には便利なんだろうけど。

拡張性を求めるとあれらのAPIはごちゃごちゃして使い勝手が悪い。
(ドキュメントを見る限りでは)WinFXでもまだまだ汚なさは残っているようだ。


499 名前:デフォルトの名無しさん mailto:sage [04/01/08 10:04]
>>445
> > ちょっとヘタクソなコード書いたくらいで、パフォーマンスに大きく影響がでるのも、Swingの良くないところだな。
> ちょっと乱暴な運転したぐらいで、人を殺せてしまうのも、自動車の良くないところですね。
その喩えは奇異だ。そういうのは

ちょっと乱暴なコーディングをしたぐらいで、メモリリークやバグを量産させてデスマーチを起こせてしまうのも、
COBOL, C/C++の良くないところですね。

というならなるほどって思うが

500 名前:デフォルトの名無しさん mailto:sage [04/01/08 10:09]
>>452
そういう危険な国は中国と言うよりむしろポルトガルだよ。
世界一交通死亡事故がおきやすい道路というのがあそこにある。

アメリカや日本の警察のように、国が事故原因をしっかりと詳細に調べず、
事情聴取なとといったこともろくにせず
道路標識を修正・追加するとか、その後の対策をしっかりととらないから
いつまでたっても死亡事故が減らない。

なんだか、C++プログラマを見ているようだ。

501 名前:デフォルトの名無しさん mailto:sage [04/01/08 10:38]
>>498
> VBとか.net frameworkとかはAPIの質が低いといっているのだよ。
そーゆー事は「質の高いAPI」を作ってから言ってください。

502 名前:デフォルトの名無しさん mailto:sage [04/01/08 11:05]
>>499
> というならなるほどって思うが
なるほどって思っちゃうのか。困ったもんだ。

503 名前:デフォルトの名無しさん mailto:sage [04/01/08 13:17]
>>502
なんか読み違えてない?



504 名前:デフォルトの名無しさん mailto:sage [04/01/08 13:32]
>>500
> なんだか、C++プログラマを見ているようだ。
そーゆー話をしたければ死滅スレにでも行け。

505 名前:デフォルトの名無しさん mailto:sage [04/01/08 13:41]
>>501
比較すればSwingAPIの質は高いと思うぞ。

506 名前:デフォルトの名無しさん mailto:sage [04/01/08 19:22]
APIの美しさだけ見ると、一番優れているのはなんだろう。

507 名前:デフォルトの名無しさん mailto:sage [04/01/08 19:30]
>>506
とりあえず「API の美しさ」を定義してください。

しっかし厨が好きそうな話題ですな。

508 名前:デフォルトの名無しさん [04/01/08 21:07]
ttp://cgi.io-websight.com/index2/uploarder/img/hare7300.bin
ttp://cgi.io-websight.com/index2/uploarder/img/hare7301.bin

こんな感じのアプレットをサーブレットで動かそうと考えたのですが
普通に開くと見られるのですが
サーブレットで開くとアプレットを開くことが出来ません。

いろいろいじってみたのですが、行き詰まりました、
もしよろしければ助言いただけないでしょうか

509 名前:デフォルトの名無しさん mailto:sage [04/01/08 22:19]
>>508
サーブレットで開くというのが意味不明。
要解説

510 名前:デフォルトの名無しさん mailto:sage [04/01/08 22:37]
普通に開くは、HTMLとしてアプレットを表示するだけのソースで開き

サーブレットで開くというのは
localhost〜/servlet/MondaiL4 
と言う感じにサーブレット通して開こうとすることを思って書きました。

一応アプレットとして開くと見られるのですが
サーバー通して動きを付けようとサーブレットで開くとアプレットすら表示されません
アプレット表示されて、動きが現れない、なら対処しようがあるのですが
アプレット表示することが出来ず立ち止まっています。

511 名前:デフォルトの名無しさん mailto:sage [04/01/08 22:39]
>>510
で、そのときのHTMLはどんなのが出力されてるの?

ま、「サーブレットで開く」って言葉から、理解不足がありあり感じられるわけで、そろそろ「スレ違い」という目も怖くなってくるわけで。

512 名前:デフォルトの名無しさん [04/01/08 22:46]
Swingのおすすめの本を教えてください

513 名前:デフォルトの名無しさん mailto:sage [04/01/08 22:46]
Swingスレでサーバサイドの話題かよ!



514 名前:デフォルトの名無しさん mailto:sage [04/01/08 23:30]
>>507
何とかかんとか2 とか 何とかかんとかEx
みたいなクラス名, メソッド名があるのは美しくないですね。
意味不明な略語が使われてるのも美しくないですね。

515 名前:デフォルトの名無しさん mailto:sage [04/01/08 23:43]
JavaWebStartアプリをHttpServletと会話させてリッチクライアントな
Webサービス、ってのはアリじゃないのかね。

516 名前:デフォルトの名無しさん mailto:sage [04/01/08 23:46]
>>514
privateなら"なんとかかんとか0"ってのがあっても良いの?

517 名前:デフォルトの名無しさん mailto:sage [04/01/08 23:47]
>>515
Avalonがそれに近いことを実現させようとしている

518 名前:デフォルトの名無しさん mailto:sage [04/01/09 00:44]
>>515
「API の美しさ」ってのは名前だけで決まる、と。

ところで、JComponent とかの J は許せるのか?

519 名前:デフォルトの名無しさん mailto:sage [04/01/09 00:44]
>>516
private なものは公開しないことが前提
裏でどうなっていようと利用する側から触れないところならば問題ない

520 名前:デフォルトの名無しさん mailto:sage [04/01/09 00:45]
>>518
名前も美しさの一因だろうが「名前だけで決まる」なんて書いてないだろ。

521 名前:デフォルトの名無しさん mailto:sage [04/01/09 00:49]
>>520
>>514 では名前に関してしか書いてない。

ところで、JComponent とかの J は許せるのか?

522 名前:デフォルトの名無しさん mailto:sage [04/01/09 00:56]
名前に関してしか書いてないから名前だけで決まる
と考えるなんてすごい○○○ですね。
JComponent の J はない方が美しいでしょうね。

523 名前:デフォルトの名無しさん mailto:sage [04/01/09 01:02]
>>522
> > とりあえず「API の美しさ」を定義してください。
の答えが
> 何とかかんとか2 とか 何とかかんとかEx
> みたいなクラス名, メソッド名があるのは美しくないですね。
> 意味不明な略語が使われてるのも美しくないですね。
だったら、それが全てと解釈されても仕方ない。
他にも条件があるような事も全く書いてないし。



524 名前:デフォルトの名無しさん mailto:sage [04/01/09 01:08]
>>515
アリ。俺そんなの作って公開してるから探してみな

APIの課題になってるけど
JavaAPIについて

boolean型の戻り値を持ってるメソッドの、isXXXXX / getXXXXXXはどういうきり分けになっているのだろう?って思う、どちらかに統一してくれれば良いのに、、と思うけど
あと、.length()、.getLength()、.size()も統一して欲しい
あと、.size()とかって、ゲッターでしょ?getSize()にすべきなのではないか?と思うけど

反論求む

525 名前:デフォルトの名無しさん mailto:sage [04/01/09 01:18]
>>524
Swing に関して言えば、そこそこ統一されてると思うが。

526 名前:デフォルトの名無しさん mailto:sage [04/01/09 01:19]
Jなんとかって汚過ぎ。何のためのpackageなのか分からん。

527 名前:デフォルトの名無しさん mailto:sage [04/01/09 01:20]
>>524
immutableかどうかで変わるとかJava厨が言ってた。
オレは納得してないがな。

528 名前:デフォルトの名無しさん mailto:sage [04/01/09 01:44]
>>527
そう?.getLength()、.size()があるあたりimmutableかどうかで命名されているとは考えにくいのだけど
ちょっと調べてみよ

Jなんとかはいいでしょう
packageはネームスペースの意味もあるけどクラスライブラリの分類/整理が主目的だと思うよ
パッケージが分かれてもクラス名なんか一致しないほうが良いと思う
AWT、Swingは共存して実装できるのだからもしJがなかったらコード醜くなると思うよ

529 名前:508 mailto:sage [04/01/09 02:54]
>>510  すいません、問題はclassの抜け落ちでした。。。。

ところで、サーブレットで開くという表現を使ったのですが
どんな言い方をすればよかったのでしょうか。。。スレ違いですね、ありがとうございました。

530 名前:デフォルトの名無しさん mailto:sage [04/01/09 03:05]
>>508のは「普通に開く」といっても、
>>508のいう「普通」ってどういうことを想定して「普通」と言っているかもわからないし。
「サーブレットで開く」もよくわからないし。

でも、そんな>>508の書き込みでも、
APIの美しさについてのどうでもいいような話よりは、
まだ有意義かもしれないとおもったよ。

言葉の正確さはともかくとして、>>510
>サーブレットで開くというのは
>localhost〜/servlet/MondaiL4 
>と言う感じにサーブレット通して開こうとすることを思って書きました。
で、だいたい言わんとするとは理解できたよ。

つーか、なんでSwingスレで、質問しようとおもんたんだい?

531 名前:デフォルトの名無しさん mailto:sage [04/01/09 03:06]
もしSwingを使ったアプレットなら、そっちの話でもしてみないかい。
なんか解らんことがあったら、解る範囲で答えるよ。

532 名前:508 mailto:sage [04/01/09 03:15]
では、お言葉に甘えて
ttp://cgi.io-websight.com/index2/uploarder/img/hare7301.bin
これが、アプレットなんですが
Appletを継承しています。
JAppletを継承して初めは作っていたのですが、見つけたソースがAppletだったため
Appletになってしまいました、これはAwtと言う奴で、Swingとは違うのでしょうか?
その辺が良くわからず、困惑しています。変な質問すいません

JAppletに戻すにはどうしたら良いかとやってみたのですが出来なかったもので
もしよろしければ、教えていただけると幸いです。

533 名前:デフォルトの名無しさん mailto:sage [04/01/09 04:01]
SwingとAWTは別物だよ。

あと基本的なこととして、
WindowsのIEがデフォルトで使用するマイクロソフトのJavaVMでは、
Swingが使えない。

Swingを使用するためには、Sunなどが提供している最近のJavaVMを
クライアント側がインストールしておく必要がある。

ただWindowsマシンでも、
東芝やDellのマシンでは、もしかしたらデフォルトでSwingが使えるかもしれないけどね。

そんなわけで、現状ではAWTのほうが、
より多くの人がそのままで利用できるアプレットにはなるとおもうけれど。
まあ、それでもSwingでアプレットを作ってみたいなのなら、
ここが参考になると思うよ。英文だけど、断片的なソースの所は理解できるだろうから。
java.sun.com/docs/books/tutorial/uiswing/converting/how.html
How to Convert



534 名前:デフォルトの名無しさん mailto:sage [04/01/09 04:34]
ああいま中身をみたけどこれならSwingでも問題なさそうだね。
とりあえず、 extends Applet を、extends JAppletに。

535 名前:508 mailto:sage [04/01/09 04:46]
>>534 JApplet にすると動かなくなりました。

あと、今困っていることが増えまして
ソースの
MyCellRenderer_Aと↓にあるコピー&ペーストを一緒に使いたいのですが
@ ttp://www.javaworld.com/javaworld/javatips/jw-javatip77.html

@を使おうとすると、MyCellRenderer_Aで設定したことが消えてしまいます。
これは、競合??してるからなのでしょうか、これから勉強してみますが
もし、すぐわかることでしたら、教えていただけると幸いです。

536 名前:デフォルトの名無しさん mailto:sage [04/01/09 04:59]
>>535
だからよー。そのJavaPluginはSwingに対応してるのかい?

537 名前:508 mailto:sage [04/01/09 05:21]
一応使えると思います
@もMyCellRender_Aもバラバラには使えるので

両方同時に使おうとすると@の方だけになってしまうので、今困ってます


538 名前:デフォルトの名無しさん mailto:sage [04/01/09 05:38]
www3.starcat.ne.jp/~ura228/java/work1/Applet1.java
元にしたのはこれか

>>535
どこが動かない?

539 名前:508 mailto:sage [04/01/09 05:57]
そうです
1:テーブルのヘッダーの撤去と列番号の入力

上記@のコピー&ペーストの実装を同時に行おうとすると、
列番号など表示されず
さらに、@の機能まで、縮小されてしまいます
(範囲内でペースト可能なのが、選択1セルに対してのみペーストするようになってしまいます)

両方の機能を同時に使いたいのですが、どこを直したら良いのかわからず困っています


540 名前:デフォルトの名無しさん [04/01/09 15:24]
凄くお馬鹿な質問なんですが、出来なかったので質問させてもらいます。

アプリケーションとして作ったものをアプレットにするにはどうしたらよいのでしょうか
アプリケーションはJFrameを継承しています
アプレットはAppletを継承しないとできませんよね、、、

どうやって、機能を移したら良いのかわからず、何でわからないのかすらわかっていない自分、、ダメすぎでした。。。

541 名前:デフォルトの名無しさん mailto:sage [04/01/09 15:28]
>>540
JFrameを使うアプレットにすればいいじゃん。

542 名前:デフォルトの名無しさん mailto:sage [04/01/09 15:40]
あぁーあ、質問スレになってしまった。

543 名前:デフォルトの名無しさん [04/01/09 15:43]
【クレジットカードのショッピング枠を現金化!】

クレジットカードで買い物をすると、商品代金の80〜90%のキャッシュバック!!
10万円の買い物をすれば8〜9万円の現金がお手元に!!

■■朝日カード■■
www2.pekori.to/~ryu/asahi/




544 名前:デフォルトの名無しさん [04/01/09 19:17]
>>520=522
美しさの例として、よりにもよって最初に挙げたのが名前だった君の言葉じゃ説得力なし。

545 名前:デフォルトの名無しさん mailto:sage [04/01/09 20:01]
>>544
ほんきのあふぉ?






[ 続きを読む ] / [ 携帯版 ]

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

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