[表示 : 全て 最新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とやっていくみんなのスレッドです。

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
ほんきのあふぉ?

546 名前:デフォルトの名無しさん mailto:sage [04/01/09 20:25]
>>545
必死だな。これだから「Java厨は…」って言われるんだよ。



547 名前:デフォルトの名無しさん [04/01/09 20:44]

  ま  た  J  a  v  a  厨  か  !  !  

半可通の分際で「美しさ」とか言うから、墓穴を掘るんだよ。

548 名前:デフォルトの名無しさん mailto:sage [04/01/09 20:56]
>>546-547
ヒッシダネ

549 名前:デフォルトの名無しさん mailto:sage [04/01/09 21:12]
>>547
死滅スレで好きなだけやってくれ。
pc2.2ch.net/test/read.cgi/tech/1047748598/


550 名前:デフォルトの名無しさん mailto:sage [04/01/09 21:20]
>>533
このまえ hp のパソコンかったら、プリインストールの Windows に
JRE1.4.2_01 がすでにインストールされていました。
各メーカーがこういう取り組みをしてくれると、開発者としてうれしいなぁ。

551 名前:デフォルトの名無しさん mailto:sage [04/01/09 21:23]
>>550
このまえ富士通のパソコンかったら、プリインストールの Windows に
.NET Framework 1.1 がすでにインストールされていました。
各メーカーがこういう取り組みをしてくれると、開発者としてうれしいなぁ。

552 名前:デフォルトの名無しさん mailto:sage [04/01/09 22:25]
>>551
単に富士通の糞ランチャーなどの独自アプリが使ってるからでは?

553 名前:デフォルトの名無しさん mailto:sage [04/01/09 22:32]
>>552
Office 2003 PersonalのHomeStyle+が.NETを使ってるから、
Office 2003 Personalプレインスコのマシンにはメーカー問わず入ってる。

554 名前:デフォルトの名無しさん mailto:sage [04/01/10 00:00]
>>552
.netとは直接関係ないが、今現在のOSにはVBランタイム 6.0, 5.0はデフォルトで
入っているのと同じ感覚なのだろう。

4.0や、3.0,2.0はさすがにランタイムが入っていないが

555 名前:デフォルトの名無しさん mailto:sage [04/01/10 01:23]
>>554
今現在のOS? Windows だよね。Linuxとかにも .net ランタイムが
入ってるのか?

556 名前:デフォルトの名無しさん mailto:sage [04/01/10 01:25]
そんなんだから「Java厨必死だな」といわれるわけだ。



557 名前:デフォルトの名無しさん mailto:sage [04/01/10 01:43]
そろそろSwingの話を……

>>492や俺のような基本中の基本も理解していないレベルのやつのために
シングルスレッドルールや、その意味合いなどを。

558 名前:デフォルトの名無しさん mailto:sage [04/01/10 01:54]
結城氏のJavaデザインパターンマルチスレッド編とかいう本を読むとよくわかるよ

559 名前:492 mailto:sage [04/01/10 02:28]
>>557
たのむ教えてくれ

>>558
読むのめんどくさいから教えてくれ

560 名前:デフォルトの名無しさん mailto:sage [04/01/10 02:51]
そういえば、イベントディスパッチスレッド以外から、Swingコンポーネントをいじくろうとすると、
イベントディスパッチスレッドがデッドロックを起こすことってありますかね?

むかし、訳もわからないままJTableをいじってて、
GUIが完全に固まったことがあったんですが。

もうそのときのソースは学校のハードディスクの中なので確認はできませんが、
ほかのスレッドは、コンソールにメッセージを出し続けていたようだから。
今にして思えば、JTableなどのSwingコンポーネントのメソッドを
イベントディスパッチスレッド以外から呼び出して、
デッドロックを起こしたと解釈すれば納得が。

561 名前:デフォルトの名無しさん mailto:sage [04/01/10 03:39]
>>559
教えてもらう側なのにえらそうだな。死んでいいよ。

562 名前:デフォルトの名無しさん mailto:sage [04/01/10 04:30]
>>561
教える側なのにえらそうだな。

563 名前:デフォルトの名無しさん mailto:sage [04/01/10 04:37]
まずスレッドに対する一般的な知識として、ここを。
www-6.ibm.com/jp/developerworks/java/010427/j_j-thread.html
dW : Java technology : マルチスレッド化Javaアプリケーションの作成

Swingにおける具体的な例としてはこのサイトが、例も短くて理解しやすい。
black.sakura.ne.jp/~third/system/java/swing4.html
Swing とスレッド

英語ならここが短くまとめられている。
www.math.cuhk.edu.hk/TechInfo/JavaTutorial-2/ui/swing/threads.html
Threads and Swing
ここの三つの記事などを一通り読むのも。
java.sun.com/products/jfc/tsc/articles/threads/threads3.html
The Last Word in Swing Threads
Swing自体についてはここも。
java.sun.com/products/jfc/tsc/articles/painting/
Painting in AWT and Swing

>>560
ソースを見ないと正確なことは言えないが、有り得る。

564 名前:デフォルトの名無しさん [04/01/10 05:01]
Javaのレイアウトって使えないよね

565 名前:デフォルトの名無しさん mailto:sage [04/01/10 05:29]
>>557-560
シングルスレッドルールといっても、
Javaチュートリアルのページにもあるようにそれほど恐ろしいものではないよ。
普通にイベントハンドラに、処理を書いておく限りにおいては、
>>560のようにデッドロックを引き起こすことはまずないし。

もちろん長時間かかる処理を行わせれば、処理が終わるまでGUIは固まるが。


マルチスレッドなシステムによる描画なら、MVCの構成が参考になるかもしれない。
システムをMとVCに区分けして、画面の描画はpaintComponent()メソッドにのみ置く。
paintComponent()メソッドは、モデルのデータを読みとって画面に描画する。

イベントディスパッチスレッド以外のスレッドは、
モデルのデータをいじっても、ビューに対する描画は行わないようにする。
スレッドが、モデルのデータをいじったあとは、
repaint()などの、どのスレッドから呼び出してもかまわないメソッドのみを呼び出し、
イベントディスパッチスレッドにpaintComponent()メソッドを呼び出させてビューを更新する。

566 名前:デフォルトの名無しさん mailto:sage [04/01/10 05:35]
>>564
そう?
使えないって、使い方がわからないだけ?



567 名前:デフォルトの名無しさん mailto:sage [04/01/10 12:40]
>>540
JFrameの部分をJAppletに変えればいいじゃん。

568 名前:デフォルトの名無しさん mailto:sage [04/01/10 13:08]
>>564
>Javaのレイアウト

満足行くようにしたかったら自作せよ。そんなに難しくない。
それかSpringLayoutを使いこなせ。
それ以外のレイアウトをそのまま使う奴は素人。
nullを指定するやつはド素人。


569 名前:デフォルトの名無しさん mailto:sage [04/01/10 14:00]
>>568
漏れにとっては、GridBagLayoutのほうが使いやすい。
SpringLayoutは良く分からん。


570 名前:デフォルトの名無しさん mailto:sage [04/01/10 14:29]
そこでNetBeansですよ

571 名前:492 mailto:sage [04/01/13 01:25]
EmptyBorderを簡略化するとレイアウトしやすいよ、
俺はEmptyBorderDecoratorを作ってレイアウトしてる。
↓こんな感じ、どう?
// 空白の枠を「5」にして、ボタンを配置
getContentPane().add(
  new EmptyBorderDecorator(new JButton("ボタン"), 5));



572 名前:デフォルトの名無しさん mailto:sage [04/01/13 17:01]
>>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());
}
}

573 名前:デフォルトの名無しさん mailto:sage [04/01/16 18:29]
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
java.sun.com/products/jfc/tsc/articles/getting_started/index.html

574 名前:デフォルトの名無しさん [04/01/16 19:02]
Mac用L&Fは、Macでしか動かない罠。

575 名前:デフォルトの名無しさん mailto:sage [04/01/16 19:20]
>>574
そういうローカルルールのような物をゆるすから、めちゃくちゃになって
ゆくんだよ

576 名前:デフォルトの名無しさん mailto:sage [04/01/16 19:26]
>>573
Apple の行動から察するに、
Mac 用 LookAndFeel は Apple の知的財産なので(以下略)
と言われた、とか言われて訴訟沙汰になるのを Sun が恐れたのでは、と推測。



577 名前:デフォルトの名無しさん mailto:sage [04/01/16 19:29]
>>575
UIManager 使えばインストールされてる LookAndFeel のリストとかが得られるので
めちゃくちゃにはならない。

もっとも、UIManager の使い方しらない馬鹿はめちゃくちゃにするかもしれないが。
それは使い方知らない馬鹿が悪いって事で。

578 名前:デフォルトの名無しさん mailto:sage [04/01/16 20:07]
>>574
そんなんですか。残念です。
それでダウンロードはまだ可能なのでしょうか?
他のプラットフォームでは動かなくてもダウンロード可能なら手に入れてみたいのですが。

>>576
>Mac 用 LookAndFeel は Apple の知的財産なので(以下略)
その辺の理由で、separate download にされたっぽいですよね。
>>573の記事が書かれたのもけっこう昔っぽいから、また状況がかわって、
ダウンロードもできなくなったんでしょうかね。

それらしいものがなかなか見つかりません…

579 名前:デフォルトの名無しさん mailto:sage [04/01/16 20:09]
そんなんですかじゃなくて、そうなんですかです。
すみません…

580 名前:デフォルトの名無しさん mailto:sage [04/01/17 01:01]
Windows で Mac の L&F 動かした香具師がサイト公開してたぞ。どこか忘れた。
やり方は問題があるので公開できませんってあったけど。
たぶん os.name 判定いぢるだけでいけそうだ。

581 名前:デフォルトの名無しさん mailto:sage [04/01/17 01:10]
jdk1.5.0βのSwingはどうですか?

582 名前:デフォルトの名無しさん mailto:sage [04/01/17 12:12]
>>581
Swing に関しては何も変わってない。

583 名前:デフォルトの名無しさん [04/01/17 12:43]



 ま た A P P L E か ! 





584 名前:デフォルトの名無しさん mailto:sage [04/01/17 21:46]
>>582

そう?

Metal Look and Feel にグラデーションがかかって
多少見栄えが良くなったよ。
フォントは相変わらずだけど。

585 名前:デフォルトの名無しさん mailto:sage [04/01/21 14:30]
このアプレットを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);
      }
    });
  }
}

586 名前:デフォルトの名無しさん mailto:sage [04/01/21 16:43]
init() 文の中で setFocusable(true); をすれば良さそうだと
java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/event/KeyAdapter.html
からたどれる
java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html
を読めば見当がつく。



587 名前:585 mailto:sage [04/01/21 23:41]
>>586
ありがとうございます。できました。

588 名前:デフォルトの名無しさん mailto:sage [04/01/24 01:22]
>>584
同意、最初は「ああ、まぁマシになったな」くらいにしか思わんかったけど
見慣れてくるとWindows LookAndFeelよりいいかも、とさえ思える

589 名前:585 mailto:sage [04/01/27 14:31]
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は呼ばれないと思う
のですが、この違いを無くすにはどうすればいいでしょうか。

590 名前:デフォルトの名無しさん mailto:sage [04/01/28 09:53]
何故このスレで聞くのか謎な気もするけども。

ttp://forum.java.sun.com/thread.jsp?thread=478835&forum=31&message=2226939

で全く同じ問題が議論されてる。

「System プロパティを見てプラットフォームごとにコードを変えろ」とか
「Press されるたびにそのキーを監視しろ」とか
「初めてキーが押されたらタイマーを開始して云々」とか書いてある。

591 名前:デフォルトの名無しさん mailto:sage [04/01/28 12:44]
>System プロパティを見てプラットフォームごとにコードを変えろ
Javaなのに???
Javaってプラットフォーム非依存なんじゃないの???

592 名前:デフォルトの名無しさん mailto:sage [04/01/28 14:29]
煽りはスルーなのでございます。

593 名前:デフォルトの名無しさん mailto:sage [04/01/28 17:30]
>>591
ネイティブコードではそれさえできない

594 名前:デフォルトの名無しさん mailto:sage [04/01/28 18:12]
なるほど。Bug Paradeにも山ほど報告されてるね。例えば、
ttp://developer.java.sun.com/developer/bugParade/bugs/4274879.html
ttp://developer.java.sun.com/developer/bugParade/bugs/4504217.html
ttp://developer.java.sun.com/developer/bugParade/bugs/4153069.html
>>591は、これを読んで感想文を提出するように(400字程度)。

> It may not be desirable to fix this: most people will want Java applications
> to act the same as other applications on their system.
とも言ってるけど、GUIに関しては違いを吸収するためのAWTと、
Metal L&FのSwingを用意してるんだし、
キーイベントも、Metal L&Fでは共通であった方が良いと思うが。
ネイティブに近い動作を望んだときは、例えばMotifとかWindowsに変えれば良い。
・・・と言う考え方は間違ってるのかな。
上記のリンク先でも似たような意見が却下されてるし。

595 名前:585 mailto:sage [04/01/28 18:31]
>>590
ありがとうございます。

596 名前:デフォルトの名無しさん [04/02/02 01:19]
同じコンポーネントを移動させたいんですけど、
なんかしっくりくるやりかたがありません。
なんかいい方法ありますか?

具体的にいいますと、フレーム内に
パネルAパネルBパネルCと三つパネルがあるとして、
ボタンを押すことで、パネルAの位置にパネルBが
パネルBの位置にパネルCが、パネルCの位置にパネルAが
くるようにしたいんです。

なんかいい方法ありますかね?



597 名前:デフォルトの名無しさん mailto:sage [04/02/02 01:45]
レイアウトマネージャ自作したら?

598 名前:デフォルトの名無しさん mailto:sage [04/02/02 02:01]
removeしてaddするんじゃだめなのか?






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

前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