Java低速GUI Swing 2

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
そんなSwingと引き続き付き合っていくみんなのスレッドです。

前スレ
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50

参考スレ
Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1068349883/l50
22:04/09/17 15:16:57
クライアントサイドJavaどうよ?
http://pc3.2ch.net/tech/kako/1002/10021/1002160815.html
クライアントサイドJavaどうよ?:part2
http://pc2.2ch.net/tech/kako/1032/10326/1032665721.html
クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/tech/kako/1045/10458/1045891783.html

参考スレッド。
Java 高速GUI SWT
http://pc5.2ch.net/tech/kako/1032/10324/1032448424.html
Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1068349883/

FrontPage - java
http://www.wikiroom.com/java/
3デフォルトの名無しさん:04/09/17 15:21:18
4デフォルトの名無しさん:04/09/17 15:21:48
書籍
赤坂玲音著「Javaアプリケーション作成講座 - Swingプログラミング徹底攻略」
http://www.amazon.co.jp/exec/obidos/ASIN/4839913862/

大村忠文著「Java GUIプログラミング」Vol.1〜3
http://www.amazon.co.jp/exec/obidos/ASIN/4877830510/
http://www.amazon.co.jp/exec/obidos/ASIN/4877830529/
http://www.amazon.co.jp/exec/obidos/ASIN/4877830537/

サンソフトプレス「グラフィックJava2」AWT編、Swing編(上)(下)
http://www.amazon.co.jp/exec/obidos/ASIN/4756134513/
http://www.amazon.co.jp/exec/obidos/ASIN/475613582X/
http://www.amazon.co.jp/exec/obidos/ASIN/4756135838/

Java実践プログラムによるデザインパターン入門講座
- Swingプログラムで体得する23のパターン
http://www.amazon.co.jp/exec/obidos/ASIN/4894712563/
5デフォルトの名無しさん:04/09/17 15:28:47
スレ立ててみたかっただけの>>1は糞ですね
6前スレであがったリンク:04/09/17 15:31:35
Creating a GUI with JFC/Swing
http://java.sun.com/docs/books/tutorial/uiswing/


為政敦男氏が1998〜1999年にSwingExamplesを書き、
オリジナルサイト消滅後もミラーされ続けている。
5年以上前にSwingの素晴らしい使い方を示してくれた為政さんに感謝します。
http://www.senun.com/Left/Programming/Java_old/Examples_swing/JTableExamples1.html
http://www.physci.org/codes/tame/
7デフォルトの名無しさん:04/09/17 15:44:39
いらね。SwingはJavaスレで。SWTはSWTスレで。
8デフォルトの名無しさん:04/09/17 15:58:57
私、人の話を聞かない>>1みたいな人って嫌いです。
9デフォルトの名無しさん:04/09/17 18:04:22
Ruby <<<<<<<<>>>>>>>>>>>>>>>>>>>Swing
10デフォルトの名無しさん:04/09/17 18:09:19
Ruby <<<<<<<< AWT >>>>>>>>>>>>>>>>>>> Swing
11デフォルトの名無しさん:04/09/17 18:15:08
Ruby <<<<<<<< (^^) >>>>>>>>>>>>>>>>>>> Swing
12デフォルトの名無しさん:04/09/18 02:02:43
>>7
SWTもJavaスレで。
13デフォルトの名無しさん:04/09/18 03:05:59
StrutsもTomcatもSpringも、Javaスレで。
C#も起源はJavaなんだから、Javaスレで。
.NETもJavaのパクリなんだから、Javaスレで。
デザインパターンもJavaで広まったんだから、Javaスレで。
プロ野球の合併問題も、Javaなら解決してたんだからJavaスレで。
14デフォルトの名無しさん:04/09/18 03:16:46
つーかjavaスレ多すぎ
おまえらム板のjavaスレ数えたことあるか?
15デフォルトの名無しさん:04/09/18 04:25:21
16デフォルトの名無しさん:04/09/18 04:25:49
17デフォルトの名無しさん:04/09/18 04:26:51
http://pc5.2ch.net/test/read.cgi/tech/1068829475/D言語 vs Java
http://pc5.2ch.net/test/read.cgi/tech/1059208396/JSF(JavaServer Faces)【.NET死亡?!!!】
http://pc5.2ch.net/test/read.cgi/tech/1089158103/[無料でラクラクJava帳票作成] JasperReports使い集合
http://pc5.2ch.net/test/read.cgi/tech/1033795664/★お前らJavaはJNIで組もうぜ★
http://pc5.2ch.net/test/read.cgi/tech/995044723/[Java]JBuilder5[Java]
http://pc5.2ch.net/test/read.cgi/tech/1017214967/【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc5.2ch.net/test/read.cgi/tech/1081242461/【議論】Javaに関する野次馬的話題【中傷】
http://pc5.2ch.net/test/read.cgi/tech/1082346861/JavaとC♯.netどちらがコード量が多くなるか】
http://pc5.2ch.net/test/read.cgi/tech/1038118138/【統合】Java開発環境スレ
http://pc5.2ch.net/test/read.cgi/tech/1088259393/未来型Javaへの布石
http://pc5.2ch.net/test/read.cgi/tech/1088835058/土日でできるプログラミングシリーズ4(Java編)
http://pc5.2ch.net/test/read.cgi/tech/1056191116/***Javaのオススメ入門書***
http://pc5.2ch.net/test/read.cgi/tech/1068370977/JavaでVCバリのゲーム開発可能
http://pc5.2ch.net/test/read.cgi/tech/1081051446/Java=Win32APIオープソ化計画の結論
http://pc5.2ch.net/test/read.cgi/tech/1086238859/Java ネットワークプログラミング 【教えて!】
http://pc5.2ch.net/test/read.cgi/tech/1033703640/【徹底討論】Java3Dの可能性について考える
http://pc5.2ch.net/test/read.cgi/tech/1083480216/Jikes使ってる人いる?【高速Javaコンパイラー】
http://pc5.2ch.net/test/read.cgi/tech/1081086751/ | Java 座談会 |
http://pc5.2ch.net/test/read.cgi/tech/1029407008/【Java】NetBeans vs Eclipse【IDE】
http://pc5.2ch.net/test/read.cgi/tech/1026974531/【C++】2ちゃんねらーはOO嫌い?【Java】
http://pc5.2ch.net/test/read.cgi/tech/1080961057/【ようこそ】 Java1.6=J♯? 【MSワールドへ】
18で?:04/09/18 04:29:20
で?
19デフォルトの名無しさん:04/09/18 04:37:25
結論
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>..Jab d
20デフォルトの名無しさん:04/09/18 04:39:20
乙。
同じように.NET系についてもまとめよろ。
21デフォルトの名無しさん:04/09/18 04:51:10
http://pc5.2ch.net/test/read.cgi/tech/1083995297/ VisualStudio.NET(MSDN Deluxe) Part13
http://pc5.2ch.net/test/read.cgi/tech/1095325802/ 激安で買えるVisual Stdio.NET theSpoke Disc.8
http://pc5.2ch.net/test/read.cgi/tech/1088812165/ VB.NET質問スレ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1080916113/ 【Whidbey】Visual Studio 2005スレ【.NET 2.0】
http://pc5.2ch.net/test/read.cgi/tech/1080006204/ 【Cマガ】そろそろ.NET Frameworkを始めておこう2
http://pc5.2ch.net/test/read.cgi/tech/1069805286/ 【.NET】荒らし対策自治スレ【WinFX】
http://pc5.2ch.net/test/read.cgi/tech/1023727377/ フリーの.NET統合開発環境「SharpDevelop」
http://pc5.2ch.net/test/read.cgi/tech/1053157149/ VB.NET房をプログラマのレベルまで育てるスレ
http://pc5.2ch.net/test/read.cgi/tech/1040651917/ C、VB、VC++以外の.NETを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1033489735/ ミ,,゚Д゚彡フサギコのフサフサ.NET談話室
http://pc5.2ch.net/test/read.cgi/tech/1080844925/ 【Cマガ】そろそろ.NET Frameworkを始めておこう3
http://pc5.2ch.net/test/read.cgi/tech/1045307942/ VC♯.NET統合スレッド
http://pc5.2ch.net/test/read.cgi/tech/1027559190/ .NET で作られた有名ソフトって何がある?
http://pc5.2ch.net/test/read.cgi/tech/1034785925/ .NET大ブーム9 来年60%? 非クロスバレバレ
http://pc5.2ch.net/test/read.cgi/tech/1056736788/ Visual Studio.NET Academic利用例をあげて下さい
http://pc5.2ch.net/test/read.cgi/tech/1058786955/ 【.NET】C♯Builder Personal update 2【フリー】
http://pc5.2ch.net/test/read.cgi/tech/1055869013/ (・∀・) Visual J .NET 2003 (・∀・)
http://pc5.2ch.net/test/read.cgi/tech/1031758069/ .NET大ブーム5
http://pc5.2ch.net/test/read.cgi/tech/1082255564/ VB.NETばかりではC中心の.NETは普及しなくなる
http://pc5.2ch.net/test/read.cgi/tech/1031580690/ Visual J .NETどうよ?
http://pc5.2ch.net/test/read.cgi/tech/1051594350/ 【企業】.NETが普及すると共産主義となる【人民】
22だからなに?:04/09/18 04:52:29
だからなに?
23デフォルトの名無しさん:04/09/18 05:08:59
どうせなら名メ本にしろよハゲ
24留byは最奥言語p!:04/09/18 05:27:39
lynx -source "http://pc5.2ch.net/tech/subject.txt" | grep -i hoge | wc -l

るbっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっy
るbyぼいtらめならしねつy!



!!!!!!!!rびゅ1!!!!!!!!!!!
25デフォルトの名無しさん:04/09/18 06:12:00
このスレでは、 .NET や Ruby はスレ違いなんだが、それと同様に、
Java3D も JAI も JMF も同じくスレ違いなんだよなあ。

誰かついでに、 Java クライアントサイドスレッドもきぼんぬ。
立ててくれるんなら、関連サイトあつめてくるよー。
26デフォルトの名無しさん:04/09/18 09:41:56
JMFなんて死んだシロモノ、使ってる香具師が居るのか?
27デフォルトの名無しさん:04/09/18 11:47:17
ぅるるるるるるぅううぅうううううびぃいいぃぃぃぃぃぃぃぃぃぃ
28デフォルトの名無しさん:04/09/18 11:56:37
JMFってWMVってよめる?
29デフォルトの名無しさん:04/09/18 15:16:52
男はだまってQuickTime for Java。
30デフォルトの名無しさん:04/09/18 15:36:29
JMFってCODECは固定なのだろうか…?
固定なんだろうなぁ…。
31デフォルトの名無しさん:04/09/18 16:49:32
>>30 機構的には固定じゃない。
alphaworksあたりからMPEG4周りで出てた気もするが
それ以外codecを供給しているとこを見たことがない。
32デフォルトの名無しさん:04/09/18 17:57:55
コーデックはライセンスで縛られるから難しいよなぁ
mp2までは標準であるがmp3がないとか・・

まぁサンプリング系はOggが普及してくれればそれでいいか
33デフォルトの名無しさん:04/09/18 23:48:30
プロパティーリストボックスってないでしょうか?
IDE なんかでプロパティをいじったりするアレです。
34デフォルトの名無しさん:04/09/19 00:19:39
それはどういう意味だ?
あれはJTableで柔軟にやってるとおもうんだが?
35デフォルトの名無しさん:04/09/19 00:31:11
JTable で作っているとしても、有能な Java屋さんだったら
再利用可能なクラスとして設計するんじゃないかなー、と思って。

beans をセットすると、そのプロパティが自動で列挙・編集できる。
プロパティの型はプリミティブ型とそのラッパークラスとStringを
サポートしていれば十分です。

欲を言えばプロパティが Color, Font だったら、それぞれのチューザが出るとか。
Point, Dimension, Rect などもサポートしていると感動します。
36デフォルトの名無しさん:04/09/19 00:34:35
ちょっとまった、まさにjava.beans.PropertyEditorを実装したクラスを欲しいのか、
それとも自分のGUIアプリでそれっぽいコンポーネントが使えればそれでいいのかどっち?
37デフォルトの名無しさん:04/09/19 00:37:35
Jakarta Commons って便利なクラス集を提供しているけど、
GUI は含まれていないんですよね…。Commons みたいな感じで
汎用 Swing コンポーネントを作ってる集団とかないですかね?
デートタイムピッカーとか、カレンダーコントロールとか。
38デフォルトの名無しさん:04/09/19 00:38:29
Netbeans Platformにあるんじゃないか?
39デフォルトの名無しさん:04/09/19 00:41:20
>>36 自分のGUIアプリケーションにペタッと貼り付けて使いたいです。
JComponent のサブクラスで、PropertyEditor インターフェイスを
実装しているのが理想です。
40デフォルトの名無しさん:04/09/19 00:53:08
>>39 やっぱそういう話なわけ? うーん、JavaBeansフレームワークを意識して
Swingするのってあんま盛り上がってないからなあ... Swingの部品ビジネスとか。
https://bean-builder.dev.java.net/
このへんになんかない?
41デフォルトの名無しさん:04/09/19 01:01:45
IDEくらいしかそういうのはやらんし、それ以外は個別にカスタマイズして作った方が楽だしなぁ
42デフォルトの名無しさん:04/09/19 01:27:51
NetBeans って IDE だけじゃなくて、それに必要となるクラス群を
整備・公開しているんですね。知りませんでした。

NetBeans Platform に PropertyPanel というそのものズバリの
部品があるようです。情報ありがとうございまいした。
43デフォルトの名無しさん:04/09/19 01:57:17
>>42 公開しているけどライセンス気をつけてね。結構きついよ。
44デフォルトの名無しさん:04/09/19 02:30:35
ほらよ。

JIDE Grids is a 100% Swing-based GUI component library focusing on JTable.
http://www.jidesoft.com/products/grids.htm
45デフォルトの名無しさん:04/09/19 02:35:58
>>43
どんな感じなの?
46デフォルトの名無しさん:04/09/19 14:32:29
http://www.jidesoft.com/purchase/index.htm
高いな。でもすごく便利そうだ。
Jakarta GUI きぼんぬ。
47デフォルトの名無しさん:04/09/19 16:09:49
むしろ言い出しっぺの法則で・・
48デフォルトの名無しさん:04/09/19 17:54:25
そんな有害無意味な法則持ち出されても。
49デフォルトの名無しさん:04/09/19 18:17:20
>>46 ドッキングウィンドウならフリーでもあるよ。

http://www.infonode.net/index.html?idw
50デフォルトの名無しさん:04/09/19 18:33:03
>>49
Demoみるとなにげにプロパティ画面もついてるみたいだな
51デフォルトの名無しさん:04/09/20 06:44:42
TreeTableが欲しいぞな
52デフォルトの名無しさん:04/09/20 20:59:07
GUIエディタ作りたい。すげーやつ。
53デフォルトの名無しさん:04/09/20 21:20:25
>>52
jEditみたいなやつ作ってくれ
54デフォルトの名無しさん:04/09/21 01:18:16
>>53
jEditってGUIエディタだっけ?
55デフォルトの名無しさん:04/09/21 07:27:42
違うねえ。
56デフォルトの名無しさん:04/09/21 19:56:13
お前ら、ホントにSwing好きだな
57デフォルトの名無しさん:04/09/21 20:22:29
>>56
好きじゃあ ないですヨ
ただ Write once, run anywhere が好きなだけで・・
58デフォルトの名無しさん:04/09/21 20:31:17
SWTって低レベル過ぎるし。
59デフォルトの名無しさん:04/09/21 22:09:27
Write once, run anywhere って
60デフォルトの名無しさん:04/09/21 22:17:40
>>58 そこで、JFace ですよ。
61デフォルトの名無しさん:04/09/21 22:21:21
いつもの展開になってまいりました。
62デフォルトの名無しさん:04/09/21 23:19:08
遅いTableをラッパーで包んでも速くは為らない罠。
63デフォルトの名無しさん:04/09/21 23:19:49
結局SWTがSwingを置き換えるレベルの水準までいってないからな
64デフォルトの名無しさん:04/09/21 23:39:55
漏れは Swing 好きだ。
API も LF も好きだ。
遅いのが、ちょっとだけ嫌いだけど、最近は許容範囲だと思っている。

>>54
GUIのテキストエディタですな。
65デフォルトの名無しさん:04/09/21 23:40:32
なにより、ツールがないからな。
GUIを手書きで書くのはばからし。
66デフォルトの名無しさん:04/09/21 23:41:27
ところで、J2SE5RCでNativeLAF使えるの?
67Bill Joy:04/09/22 01:36:19
今のプログラマはパフォーマンスにゃうるせーからナ
「遅いんですよ このプログラム」 きまってこのセリフだ
遅いのはてめーのコードがタコいからなんだよ

なんてコタあいわねーよ・・客だからナ
だから素人用に内部でバリバリに最適化したライブラリを作ってやる
これが大ウケだ
68デフォルトの名無しさん:04/09/22 01:37:34
よっぽど失望したみたいだナ
このSwingに

いえ・・失望したのは自分自身にですヨ・・・・
これほどのクラスライブラリを与えられて
それをプロとしてキチンと使いこなせなかった自分自身に
69デフォルトの名無しさん:04/09/22 01:45:03
おもしろくねーですよ。
70デフォルトの名無しさん:04/09/22 08:36:43
そういやム板に湾岸スレってなかったな。
71デフォルトの名無しさん:04/09/22 19:44:10
これはまだここでは紹介されてないよね?

Java+Swingによる2chブラウザ V2C
http://pc5.2ch.net/test/read.cgi/software/1083091118/
72デフォルトの名無しさん:04/09/22 21:45:17
>>71
何かそれ作者がSwingの使い方間違ってるんだってさ。
悪い見本?だから、Swingの評判を落としてるって。
Swingスレじゃないっぽいけど、ム板かマ板に書いてあった。
73デフォルトの名無しさん:04/09/22 22:08:37
ありゃりゃ残念
74デフォルトの名無しさん:04/09/22 22:16:06
Java使いって、間違った人多いですね
そもそもJavaを選んだその時から人生踏み外してるのかもしれませんね
75デフォルトの名無しさん:04/09/23 00:06:51
>>72 具体的にどこがどう悪いの?
76デフォルトの名無しさん:04/09/23 01:07:22
>>75
知らない。「遅い」って俺が言ったら、「Swingが遅いんじゃなくて作者が悪い」って返ってきた。
77デフォルトの名無しさん:04/09/23 01:39:55
速度が欲しかったらJComponent継承して直さ

Swingのすばらしさ90%くらい捨てるけどな
78デフォルトの名無しさん:04/09/23 01:46:38
J2SE5で実行するべきだ。
79デフォルトの名無しさん:04/09/23 01:48:45
5?
80デフォルトの名無しさん:04/09/23 01:52:19
>>79
そう。
81デフォルトの名無しさん:04/09/23 02:18:08
ニヤニヤ
82デフォルトの名無しさん:04/09/23 03:45:05
javaでguiなんかやるんじゃねーよこのバカチンが
83デフォルトの名無しさん:04/09/23 04:12:49
J2SE5って、Swing速くなってるの?
VMの起動は速くなってるみたいだけど。
84デフォルトの名無しさん:04/09/23 07:14:13
わたしゃ常にJComponentとJava2Dで書いてますが何か?
ボタンだろうがリストだろうがテーブルだろうがお手の物ですが何か?
85デフォルトの名無しさん:04/09/23 08:12:18
おれはV2Cは速いと思うが....
Linuxで動かしたら結構サクサクだったのに、Winマシンで動かしたら遅かった、
とかいう話があったようだな。
86デフォルトの名無しさん:04/09/23 08:16:38
そうやって、マイクソOSがJavaと名の付くアプリに高負荷を掛けてると
言いたいんですねあなたは
87デフォルトの名無しさん:04/09/23 09:03:45
>>86
それをいいたいのはあんただろ。
おれは >>71 のとこにそんなことが書いてあったので書いた
だけだ。

ただしいま読み返してみると、どうもLinuxマシンのほうに速い
マシンを使っていたのは事実のようだ。
いまいちあてにならん。なんで自分のWinに入れてみた。

Pentium 4 1.6GHz 512MBメモリでやってみたが、爆速だった。
これで遅いというやつっていったい何を考えてるのかと思うくら
い速い。

Linux(Fedora Core 2)の自作VIA C3 1GHzでもやっぱりかな
り速い。やっぱ速いだろ、このSwingアプリ。

88デフォルトの名無しさん:04/09/23 09:21:14
>>87
遅いというやつは1.3以前で動かしてるというオチ
89デフォルトの名無しさん:04/09/23 09:25:10
1.4以上じゃなかったっけ?
90デフォルトの名無しさん:04/09/23 09:40:31
こういうのは主観だからな。
うちではPenIII750MHz・Java1.4.2でストレスなく使っているが、
これで遅すぎると言う者もいるだろう。
91デフォルトの名無しさん:04/09/23 09:43:23
遅いといいたい人にとっては遅い。
残念ながら事実だ。
遅いといいたい人に遅くないと言わせるほどは速くない。
92デフォルトの名無しさん:04/09/23 10:00:08
>>87
作者乙
93デフォルトの名無しさん:04/09/23 10:15:17
Ruby >>>>>>>>>>>>>>>>>>>>>
94デフォルトの名無しさん:04/09/23 10:18:20
あっちのスレに出張した荒しがいるな
95デフォルトの名無しさん:04/09/23 15:29:58
つーかランタイム別途用意する必要のある時点でこりゃつかえねーな、
と思うわけですよあなた
96デフォルトの名無しさん:04/09/23 16:54:45
>>95
ランタイム同梱すればいいじゃない?

あとHPやDELLとか大手って意外と標準で1.4入ってる
ブラウザでアプレットが動くようにだろうね
97デフォルトの名無しさん:04/09/23 20:11:20
>>95
Javaって、ネイティブアプリとは住み分けができてるものだと思ってた。
98デフォルトの名無しさん:04/09/23 23:37:56
アプレットでSwing使ってる人いますか?
99デフォルトの名無しさん:04/09/24 01:02:03
そりゃいっぱいいるがな。
100デフォルトの名無しさん:04/09/24 01:50:14
CPUよりメモリがネックなんだよなぁ
Javaアプリってかなりメモリ食うから、
128MBで2k動かしてると、どうしてもスワッピングが激しくなる
それで遅くなっちゃうんだよね
一般のアプリがスワッピングしても、たいしてメモリ食わないからそんなに遅くはならんのだけども
101デフォルトの名無しさん:04/09/24 01:54:56
2kなら512以上載せとけよ
常識だろ
102デフォルトの名無しさん:04/09/24 02:01:40
>>101
最大256MBなんだ・・・どうせ年明けに買い換えるし、しばらくの辛抱だ
103デフォルトの名無しさん:04/09/24 12:36:47
今のマシンはXPとはいえローエンドでも256M標準だから
OSで192M喰ったとしてもそれなりに楽だな

他に立ち上げてるときついが、昔に比べればかなり余裕
104デフォルトの名無しさん:04/09/25 03:25:23
>>72
俺はソース見てないからSwingがどう使われてるか知らないけど、
触ってみた感じかなり丁寧に造りこまれてるのはわかるし、
動作だって決して遅くないと思うんだが、どこが遅いと思ったんだ?
少なくともSwingの評判落すようなものには見えないぞ。
MMX233MHz64MBのマシンでも使ってるって言うならそりゃ遅いだろうが。
105デフォルトの名無しさん:04/09/25 11:27:26
結論:SWT使っていればこんなことには…
106デフォルトの名無しさん:04/09/25 11:30:43
質問です。
Swingのドラッグ&ドロップってカーソルの形状変えられないのでしょうか。
107デフォルトの名無しさん:04/09/25 12:39:43
>>105
SWTだとすべて自前で作らないとだめで結局使い物にならない
Swingにしておけば・・・

ってのを一つ見たことある
108デフォルトの名無しさん:04/09/25 14:26:24
>>107 そこで、JFace ですよ。
109デフォルトの名無しさん:04/09/25 18:14:23
>>106
swingのDnD=transferHandlerは、簡単で便利だがドラッグ中&ドロップ時の
マウスポインタが取得できなかったり、ドラッグ中にマウスカーソルを
自由に変更できないといった明らかに手抜きな部分がある。
自由に操作したいのなら、awtのdndパッケージを使うしかない。
110デフォルトの名無しさん:04/09/25 19:20:33
TransferHandlerとawt.dndでは考え方が全く違うからなぁ

awt.dndはドラッグ&ドロップそのものを実装、
TransferHandlerはコンポーネント間のデータ転送
111デフォルトの名無しさん:04/09/25 22:25:19
JFace に日本語チュートリアルきぼんぬ
112デフォルトの名無しさん:04/09/25 22:31:14
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=JFace

JFaceて何?
SWTのラッパってことですか?
113デフォルトの名無しさん:04/09/25 22:36:16
Rubyyyyyyyyyyyyyyyyyy >>>>>>>>>>>>>>>>>>> JFあcえ>>>>>>SWRT
114デフォルトの名無しさん:04/09/26 10:51:14
>>112
そのリンク先を見ても「JFaceて何? 」とか言っているようでは…絶望的だな。
115106:04/09/26 11:43:02
>>109-110
なるほど。サンクスです。
これでawt.dndの方で実装する決心がつきました。
116デフォルトの名無しさん:04/10/03 03:14:44
ところでSwing 3年以上使ってるヤツいるか?
いくらなんでも2年使って見切りをつけれないやつは死んだほうがいいと思っているのだが、、

117デフォルトの名無しさん:04/10/03 03:16:16
Swig(というかJava)でGUI作ったこと無いんだけど、
どんなのができるの?
Swig製のスナップショットあるサイト知りませんか?
118デフォルトの名無しさん:04/10/03 03:16:46
>>116
どういうところが?
っていうか、必死だね。
119デフォルトの名無しさん:04/10/03 03:21:32
120デフォルトの名無しさん:04/10/03 03:28:53
Swingの成りすましUIは在日的発想。プゲラ
121デフォルトの名無しさん:04/10/03 03:30:50
>>120
プゲラも注目する新Swing、ってことだね。
122デフォルトの名無しさん:04/10/03 03:37:44
>>117
とりあえず本家のSwingSightings
ttp://java.sun.com/products/jfc/tsc/sightings/S19.html
123デフォルトの名無しさん:04/10/03 05:02:29
V2C使ってみたけど、全く違和感がないね。
重いと思うこともないし。
124デフォルトの名無しさん:04/10/03 07:37:00
looking glassが速くリリースされるといいね
125デフォルトの名無しさん:04/10/03 09:10:17
>>122
こんなにあるんだ……
126デフォルトの名無しさん:04/10/03 12:22:01
>>121
それマルチポストだから
127デフォルトの名無しさん:04/10/08 07:25:07
正直、Swingが低速だったのは過去になっちゃったなぁ。
1.4でもだいぶ許せたけど、1.5は全然OK。かくいう俺もV2Cからの書き込みなんだが。
128デフォルトの名無しさん:04/10/08 07:26:58
>>119
Swigはこっち。ttp://swig.shibu.jp/
129デフォルトの名無しさん:04/10/08 09:19:25
>>127
でも、スレの描画がおかしくなることない?
いままで使ってないからJ2SE5の影響か普通にバグかはしらないけど
130デフォルトの名無しさん:04/10/08 15:32:01
んーとたぶん実装のせいだと思うけど、範囲選択はおかしいね。これはn|a氏の修正をマッタリまってまつ。
リフレッシュのタイミングもちょっと変かな?メール欄を中身表示と非表示切り替えたときのリフレッシュがなかったり、
PCがレジュームから帰ったときに再描画がなかったり(これはSwing側の問題かな?)
まぁ、動作は完璧じゃないね。速度が速いから納得してるけど。漏れは。
131デフォルトの名無しさん:04/10/08 19:37:21
結論:J2SE5のSwingはバギーで使い物にならない。
132デフォルトの名無しさん:04/10/08 19:50:57
Ruby >>>>>>>>>>>>>>>>>>> Java
Javaなんてうんこ。
133デフォルトの名無しさん:04/10/08 19:52:39
Rubyは貧弱杉だろ…HSPと張り合ってるのがお似合い。
134デフォルトの名無しさん:04/10/08 19:58:15
>>131
まじそうなのかも。だっておれもV2C使ってるけど、1.4.2(Mac OS X)では
>>130の言っていることが一つも再現しない。
135デフォルトの名無しさん:04/10/08 20:10:00
V2C良いんだけど、マック上のJavaでは重いんだよなあ、残念ながら。

しかし、マックでは他にまともな2chビューアがないので愛用しているのであった。
136デフォルトの名無しさん:04/10/08 22:41:53
V2CのJavaWebStartはサンドボックスも糞もねぇな(w
「このアプリは全てのアクセスを要求?」
手抜きすぎ。
137デフォルトの名無しさん:04/10/08 23:29:53
>>136
え?
138デフォルトの名無しさん:04/10/08 23:52:27
公開するJavaWebStartアプリとして、
jnlpで
<security>
<all-permissions/>
</security>
っていいんかな〜

って言いたかった。
せっかくJAVAのブラウザなんだからセキュリティー上クライアントのシステムリソースには触れて欲しくないのが心情。
アクセス履歴とかを残せなくなるのは仕方が無いが・・・。どうだろうか。

「アプリケーションは、あなたのローカルマシンおよびネットワークに対して無制限のアクセスを要求しています。」
ってきつくない?ブラクラだったら即死?
139デフォルトの名無しさん:04/10/09 00:09:31
しかし全権限を要求しないJava WebStartアプリケーションというのを
あんまり見ないのも事実。
140デフォルトの名無しさん:04/10/09 00:15:35
そうだったのか。スマソ。じゃいいよ。
141Javaなんてうんこ:04/10/09 00:19:30
ばーーーーーーーーーーーーか
142デフォルトの名無しさん:04/10/09 00:25:15
>>141
なんだと
143デフォルトの名無しさん:04/10/09 15:23:30
>>138
ダウンロード版があるんだから、あまり気にしてもしかたないよ。
144デフォルトの名無しさん:04/10/09 22:52:34
ネイティブアプリなら承諾さえ求めないんだしね。
特定のフォルダだけアクセスできるモードがあれば便利かも。
145デフォルトの名無しさん:04/10/10 00:46:15
秀和システムからVisualEditorの本が出ていたから早速試しているのだが
これはかなりいいね。今までサーバサイドJavaの仕事ばかりやってたので
Swingは敬遠していたのだが、これだけ簡単に作れるのなら面白そうだなと思った
146デフォルトの名無しさん:04/10/10 00:57:49
VEで感動しているということはNetbeansではもっと感動するかもね
癖はあるけどまだまだこっちがいろんなところで強い
147デフォルトの名無しさん:04/10/10 01:03:02
NetBeansの挙動は頭悪いけどな。
でも、NetBeans4.0でWebサービスが気軽に使えるようになるし、プロファイラも出るし、おもしろい状況になるかも。
148デフォルトの名無しさん:04/10/10 01:14:31
おれはNetbeans 4.0beta2使ってパフォーマンスが格段に上がってて感動した。
これかなりいいよ。
149デフォルトの名無しさん:04/10/10 01:25:25
このスレの名前どおりSwingを重視だとまだまだNetbeansだな
J2se1.4.2までしか安定版はないのが欠点だが

4.0はあまりに3.6と違いすぎるのも問題が多そうだ
150デフォルトの名無しさん:04/10/10 01:39:19
みんなEclipseばっかり使っててNetBeansなんか使ってないからモウマンタイ
151デフォルトの名無しさん:04/10/10 12:29:16
もう少し太字の文字をきれいに表示してくれると良いのだけど。
アンチェリはぼやけるだけで余計見にくかったりする罠。
152デフォルトの名無しさん:04/10/10 13:29:43
>>151
J2SE5使え。
153デフォルトの名無しさん:04/10/10 13:30:13
>>151
捩れる位に同意。


何とかしてくれ、Swing manども!
154デフォルトの名無しさん:04/10/10 13:41:40
>>153
J2SE5使え。
155デフォルトの名無しさん:04/10/10 13:53:59
>>152
>154
J2SE5ってTrueTypeレンダラ改善されたの?
全然気づかなかったんだけど。
156デフォルトの名無しさん:04/10/10 14:29:07
少なくとも、NetBeansの太字はかなり改善される。
アンチエイリアスもきれいになる。
157デフォルトの名無しさん:04/10/10 15:13:50
J2SE5って遅くなってない?>Swing
158デフォルトの名無しさん:04/10/10 15:36:15
むしろ、NetBeansが軽く動くようになった気がするのだけど。
159デフォルトの名無しさん:04/10/10 17:04:15
確かに、5.0 付属の SwingSet2 デモの太字はかなりきれいになっていた
160デフォルトの名無しさん:04/10/10 19:09:11
>>157
さわってみたら?
161デフォルトの名無しさん:04/10/11 16:24:43
Swingでネイティヴハンドルを取得するのってANIを使わんとできない?
162デフォルトの名無しさん:04/10/11 17:57:09
Swingはハンドル持ってるのはFrameだけだからな
あとは自前ですべて処理

もし本当にいじりたいのならAWTのJNIサポートをみてみるといいよ
レンダリングをJNIで処理とかできる
163デフォルトの名無しさん:04/10/14 01:18:52
164デフォルトの名無しさん:04/10/19 23:41:27
ずっといじってきたけどVMのコア自体は1.4から5.0で速度的に大きく変わった点はないかな
1.4.1ではもちろんShift_JIS方面の変更が大きいし、一部ハードウェアアクセラレーションを使った
機能が追加されて体感速度はあがったけどね。

1.4.2ではほんのすこしで5.0はコンパイルがききやすいヘビーな処理は1.4.2と変わらない感じ。
ただしgcの速度が大幅に改善されていることと、インクリメンタルが別物になったとか大きい変更点はある。
起動時間はWindows使ってる限り改善されているように感じないし。
165デフォルトの名無しさん:04/10/19 23:51:43
コピペ楽しいか?
166デフォルトの名無しさん:04/10/19 23:52:52
「Swingをテストしたけど、全然速さ変わってない」っていってるやつは、どういうテストしてんだかね。
167デフォルトの名無しさん:04/10/20 01:13:55
>>166
JFrame一個上がってくるまでの時間(=ほとんどプロセス起動とクラスロードじゃん)
をはかっているんだろう。
168デフォルトの名無しさん:04/10/20 01:30:05
Swingのもたつきを感じる部分はほとんどがその最初のクラスロード時だし
SystemLAFしか俺は使ってないがたしかに体感速度的には変わってないよ

JTableとか重そうなのをこれから調べてみるかな
169デフォルトの名無しさん:04/10/20 19:47:22
まぁ、1.4.2から劇的に変わると思っていたJava2Dが
Windowsではほとんど変わってないのにショック受けたしな
OpenGLも手元の環境では有効にならないし・・・動いたという報告も聞いたことない

BufferedImageのキャッシュはやり方知っていれば1.4.2でも適切に処理ができた
それでも敷居が下がったのはいいだろうね
170デフォルトの名無しさん:04/10/20 19:54:34
またコピペ厨か
171デフォルトの名無しさん:04/10/20 20:52:18
マルチポストじゃないか?
172デフォルトの名無しさん:04/10/20 22:13:28
ArithmetricExceptionたんハァハァ(*´Д`)
173デフォルトの名無しさん:04/10/26 18:55:11
Swing アプレットで paint をオーバーライドすると
配置したボタンなどが消えてしまいますが、なぜでしょうか?
同じ事を awt ですると消えないです。
174デフォルトの名無しさん:04/10/26 20:04:20
>>173
paintComponent(Graphics)をオーバーロードしたまい
175デフォルトの名無しさん:04/10/26 20:51:54
Swingはフレームが自前で子ウィンドウの描画をしてるから。
176デフォルトの名無しさん:04/10/26 21:10:44
ん?時代はSWTだってのに、まだSwingとか使ってる香具師がいるの?
177デフォルトの名無しさん:04/10/26 21:14:45
ん?時代はRCPだってのに、まだ時代はSWTとか使ってる香具師がいるの?
178デフォルトの名無しさん:04/10/26 21:37:20
SWTはEclipse専用
Swingとくらべて大幅に早いってわけでもないしな
そもそもカスタマイズしたGUIを作るのが大変
179デフォルトの名無しさん:04/10/26 21:42:22
そこでAWTですよ。
180デフォルトの名無しさん:04/10/26 22:05:15
Java に wxWidgets を組み込むとか、
そういう計画ってないの?
181デフォルトの名無しさん:04/10/26 22:07:36
182デフォルトの名無しさん:04/10/26 22:09:14
>>181
ありがとう。はじめて知ったよ。
これがまともに使えるようになったら Swing も SWT もいらない
ってなことになったりするのかなぁ。
183デフォルトの名無しさん:04/10/26 22:24:39
>>182
ならないだろうね。
184デフォルトの名無しさん:04/10/26 22:31:31
>>183 どうしてそう思う?
185デフォルトの名無しさん:04/10/26 22:35:48
>>184
特に理由は無いよ。
続きはスレ違いだから他所でやってくれ。
186デフォルトの名無しさん:04/10/26 22:58:05
>>185
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
187デフォルトの名無しさん:04/10/26 23:03:57
そういえばwxのスレ加速してるな
188173:04/10/27 23:56:30
>>174
ありがとうございます。できました。
原因を聞いておきながら、実は解決策を望んでいたわけです。

しかし、また新たな問題が出ました。
JPanel のサブクラスの paintComponent(Graphics) で描画しようとしてますが
その上に乗っているラベルやボタンなどの上には描画できません。
どうすれば良いでしょうか?
ちなみに super.paintComponent() はやっています。
189デフォルトの名無しさん:04/10/28 00:14:04
>>173
子コンポーネントが上に載ってるなら
そっちで上書きされるのがまともな挙動だと思うぞ

その上に描画したいのなら普通はGlassPaneとかでやるんじゃないかな
JFrame#setGlassPane(Component)ね
190デフォルトの名無しさん:04/10/28 00:27:23
173はどうもGUIの考え方がおかしいな
191173:04/10/28 00:45:45
>>190
すみません。やろうとしている事を言えば分かってもらえると思います。
今ゲームを作っています。そのゲームは 5*5 のマスがある盤が 2つあって
そこをそれぞれの戦車が自由に移動できます。
そして、相手の戦車に 2回弾を当てると勝ちです。
動作は 3つのコマンドを一気に入力して 2つの戦車を同時に動かします。
コマンドはガード、弱い弾、強い弾、移動があります。
ガードは弱い弾だけ跳ね返す事ができます。
コマンドは盤面の上にあるアイテムを取ると使えます。

あとの詳しい説明は GUI には関係ないので省略しますが、このゲームの構造から
盤をクラスにしました。しかし、弾を撃つアニメーションは 2つの盤をまたがって
しまいます。そこで、それらをパネルの上に置いてそのパネルに描画すれば良いのでは
ないかと考えました。
192デフォルトの名無しさん:04/10/28 01:07:17
そういう用途なら、まさにGlassPaneが適している。
厳密に言うと、GlassPaneを使うよりは別のレイヤーに弾をおいた方が
よさそうだが。
LayeredPane, GlassPaneなどのキーワードでAPIドキュメントを調べるのだ。
193デフォルトの名無しさん:04/10/28 01:18:15
Swingでやるならレイヤー勉強すればいいね

俺ならJava2Dで描画部分はまとめるけどね
194デフォルトの名無しさん:04/10/28 03:29:49
>>191
> あとの詳しい説明は GUI には関係ないので

そこにある詳しくない説明もGUIには関係ないと思うのだが・・・
ま、オレも普通に1枚のパネルに描画するけどね。
195デフォルトの名無しさん:04/10/28 14:51:53
>>191
動きのあるヤツなら、LayeredPaneなどSwingに重なり計算を任せずに
自前で重なり管理してやったほうがよくないか?
# スプライトクラスって誰か作ってないのかねぇ?
196デフォルトの名無しさん:04/10/28 19:12:02
>>195
一番作っていて楽しい部分だからみんな自分用にガリガリ書いていると思われ
つーか、Java2D機能豊富で透過指定も余裕だからなぁ
そこまでほしいクラスでもないと思われ
197デフォルトの名無しさん:04/10/28 19:51:29
ハードウェアのスプライト機能が使えるなら、必要だね。
198デフォルトの名無しさん:04/10/28 21:03:31
Java2Dってハードウェアアクセラレーションつかってるの知らないやついたのか
199デフォルトの名無しさん:04/10/29 02:00:34
JOptionPaneのように、
ダイアログを開いて、ボタンを押したときに呼んだ箇所へ値を返す仕組みは、
どのように作ればよいのでしょうか?
200デフォルトの名無しさん:04/10/29 11:01:17
201デフォルトの名無しさん:04/10/29 11:26:57
>>199
難しく考えないで。
いろんなやり方がありますから。。。
202デフォルトの名無しさん:04/11/16 12:43:34
Java初心者の質問スレにもポストしましたがスルーされてしまったのでこちらで質問させてください。

SwingでJProgressBarを使った開発を行っているのですが、
データ処理中にProgressBarを動作させる方法がわからず困っています。
JProgressBar1.setValue(JProgressBar1.getValue() + 1);
こんなのをフツウの処理(Threadではない処理)の中でぐるぐる回すだけではダメなのでしょうか?
203デフォルトの名無しさん:04/11/16 13:04:27
>>202
わずか2時間足らずの間レスがつかなかっただけでスルー扱いとは、随分と気が短いですね。
とりあえずこれでも読んで落ち着いてください。
http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html
204デフォルトの名無しさん:04/11/16 13:09:34
ちゃんとsetMinimumとsetMaximumしてるのか?
205デフォルトの名無しさん:04/11/16 13:20:16
>>202
ちょっとググったら日本語のやつがみつかったけど?

ttp://taka-2.com/jclass/JProgressBar.html
206202:04/11/16 17:49:27
>>203
>>205
をよんでみましたが私がやろうとしている処理ではプログレスバーを動かすことができませんでした。
処理中に画面が固まる。。。
というわけで
Runnableなクラスの中でぐるぐる回しつつ
jProgressBar1.paintImmediately(rectangle);
とかで強引にコーディングして逃げることができますた。お騒がせしますた。
207デフォルトの名無しさん:04/11/16 19:05:47
それでいいだろもしかしてイベント中にすべての処理やろうとしてたとか?
208デフォルトの名無しさん:04/11/16 19:08:52
SwingのGUI絡みの設定を変える時はinvokeLater()経由しないと駄目だったんじゃ
なかったっけ。
すみませんうろ覚えです。
209デフォルトの名無しさん:04/11/16 19:18:27
ワーカスレッドから UIスレッドのUI部品を更新するときには invokeLater は必要
http://java.sun.com/developer/onlineTraining/GUI/Swing1/shortcourse.html#JFCProgress
210デフォルトの名無しさん:04/11/19 00:26:20
202はまずスレッドから勉強するべし。
211デフォルトの名無しさん:04/11/19 22:09:49
GUIをこれからやるならどの本がオススメでしょう
212デフォルトの名無しさん:04/11/19 22:59:58
技術評論社のGUI徹底攻略とか?
213デフォルトの名無しさん:04/11/21 03:40:40
>>21
あの変な表紙の本は?
214デフォルトの名無しさん:04/11/21 12:19:07
>>211
Java GUIコンポーネント完全制覇
とか
215デフォルトの名無しさん:04/11/21 13:02:51
>>213
萌え絵が表紙のやつ?おれは買ったよw
216デフォルトの名無しさん:04/11/21 13:06:33
あの萌え絵の本は評判が良いらしく、売り切れてるな。

まあでも地味に「Java GUIプログラミング」がいいと思う。
217デフォルトの名無しさん:04/11/21 13:23:10
そこらへんの3冊が定番かね?
218デフォルトの名無しさん:04/11/21 16:59:19
>>216
買ったけど、地の文、漢字の誤変換大杉。萎える。
少数派だろうが、こういうのが気になる人は止めとけ。
初版だけかな?とりあえず校正の人は責任をとって欲しい。
219デフォルトの名無しさん:04/11/21 18:46:55
萌え絵の奴ってそんなに良いのか!
CPUの創りかたも萌え絵だったけど良かったなぁ
220デフォルトの名無しさん:04/11/21 18:53:35
何の本だったか忘れたが、導入部だけ萌え文で本文が目に悪い漢字専門用語のオンパレードの解説書に引っかかって、それ以外萌え本は眉唾
221216:04/11/21 19:01:39
いや俺は実は持ってない。アマゾンでの評価がやたら高いので本屋に買いに行ったら
売り切れてて買ってない。

↓その本
ttp://www.amazon.co.jp/exec/obidos/ASIN/4839913862/qid=1101031176/br=1-2/ref=br_lf_b_1/249-4488755-1849164
222デフォルトの名無しさん:04/11/21 19:15:00
値段が安いからいいね
Java GUIプログラミングと完全制覇のどちらも高いし
でも量考えるとGUIプログラミングの方がイイのかな
223 :04/11/21 19:15:51
萌え本は字が小さくて自分にはパッと調べにくいから買うの止めた。
三分冊の本も冗長すぎる気がする。
完全制覇のやつもいいとは思わなかった。AWT用のコードと説明が長すぎ。
いくらAwtがもとにあるとはいえ、不要に厚くなって使いづらいしSwingの深い情報ないし。
CoreJavaのGUIの説明みたいなのがいい。
レイアウトマネージャーに限ってはプロフェッショナルJavaがいい。
224デフォルトの名無しさん:04/11/21 19:22:27
やっぱりCore JAVAに行き着くのかw
225デフォルトの名無しさん:04/11/21 21:25:01
グラフィックJava2
Vol.1 AWT編
Vol.2 Swing編「上」
Vol.2 Swing編「下」

値段は高いし、量も多いから読むの大変だけど
図書館に置いてあったから借りて読んでる
まぁ、俺は複数の本を少しづつ読みながら先に進んでるからお薦めという本はない
226デフォルトの名無しさん:04/11/21 22:49:07
萌え絵の本って網羅してるのかな
227デフォルトの名無しさん:04/11/22 01:42:19
萌え絵の本は網羅まではしてないらしいよ。
ただGUIプログラミング初心者のスタートラインとしては最適らしいぞ。
アマゾンの感想読んだだけだけど....
228デフォルトの名無しさん:04/11/22 01:44:36
どれ読んだら良いんだよヽ(`Д´)ノウワァァン
229デフォルトの名無しさん:04/11/22 03:57:02
>>228
どれでもいいよ。表紙で選べ
230デフォルトの名無しさん:04/11/22 05:56:51
表紙で選ぶと「萌え以外」になるなあ。
231デフォルトの名無しさん:04/11/22 09:07:39
お持ち帰りまでが大変だ
232デフォルトの名無しさん:04/11/22 09:26:00
233デフォルトの名無しさん:04/11/22 10:07:16
萌え絵が表紙の本なんて日常的に買ってるだろ
234デフォルトの名無しさん:04/11/22 18:24:08
Java関連萌え書籍スレはここですか?
235デフォルトの名無しさん:04/11/22 20:48:54
萌え絵の本って何?
236デフォルトの名無しさん:04/11/22 20:58:53
これ?
「Javaアプリケーション作成講座〜Swingプログラミング徹底攻略〜」
http://book.mycom.co.jp/book/4-8399-1386-2/4-8399-1386-2.shtml
237デフォルトの名無しさん:04/11/22 21:04:24
それだと >221 にも書いてある...
238デフォルトの名無しさん:04/11/22 21:07:19
得ろげー勝ってるってことじゃないの
239デフォルトの名無しさん:04/11/22 21:40:32
萌える法律読本は糞だった
240デフォルトの名無しさん:04/11/22 23:21:06
みんな、けっこう萌えが好きみたいですねw
241デフォルトの名無しさん:04/11/23 08:26:17
2次元好きばっかでしょ
242デフォルトの名無しさん:04/11/23 08:47:43
最近は専ら一次元だな。
ただし挿絵は考慮しない。
243デフォルトの名無しさん:04/11/23 11:48:51
>>236
その本さぁ…表紙やイラストが萌え絵なのは、まぁどうでもいいが、
WEBブラウザのサンプル動かすと、エロゲメーカーのページに飛ぶのは
止めて欲しいんだが…。
244デフォルトの名無しさん:04/11/23 12:17:41
うげ……
245デフォルトの名無しさん:04/11/23 12:31:57
1. 今度の仕事はSwingだ。Swing全然知らねーが、でもがんばるぜ!
2. >>236の本を購入。絵がアレだが判りやすいと評判だしな。
3. まずはサンプルをビルド、よし、実行だ。
4. 月猫揚頁猥褻画像
5. 「仕事中に何見取るんじゃゴルァ」
6. 解雇
 ∧||∧
(  ⌒ ヽ  
 ∪  ノ
  ∪∪
246デフォルトの名無しさん:04/11/23 13:19:10
禿和良
247デフォルトの名無しさん:04/11/23 14:12:09
ひでー本
248デフォルトの名無しさん:04/11/23 14:37:30
あれじゃない?
いい本を書いて、萌え系の表紙・萌え系のサンプルにして、萌え系の人じゃないと受け入れられないようにして、萌え系の人だけがSwingわかるようにするという。
そして、萌え系の人がそうじゃない人に対して能力をつけ、世の中を萌え系の人中心で動かす、という巨大なプロジェクト。
将来的には秋葉原に政治の中心を移そうという壮大な計画。
249デフォルトの名無しさん:04/11/23 15:00:49
Java萌えヲタ晒しage
250デフォルトの名無しさん:04/11/23 18:39:47
毎日コミュニケーションもさー、萌え絵のイラストレーターを一人に絞ってさ、
装丁も統一感だせばいいのにな。
で、本屋の一角に並べる訳よ。そりゃもうオライリーのごとく萌え絵がずらりと。
251デフォルトの名無しさん:04/11/23 18:55:38
最悪な発想だな。萌え系とか言ってる奴等はみんな死ねよ。
本屋とかで買ってる奴を見かけると、マジで頭おかしいんじゃないかと思う。
252デフォルトの名無しさん:04/11/23 19:12:58
すまない、普通に笑った。

ttp://v.isp.2ch.net/up/bd75889d26d7.jpg
何の本だよ。
253デフォルトの名無しさん:04/11/23 19:16:58
レインタソを名乗ってコンピュータ本を出すとは大胆不敵だな。
254デフォルトの名無しさん:04/11/23 19:35:35
>>250のアイディアは普通にいいと思った
今の萌え技術書は微妙に萌えきれないイラスト
ばっかりで、なんか買うのが恥ずかしい。
255デフォルトの名無しさん:04/11/23 19:45:48
エロ漫画コーナーと間違えられる罠
256デフォルトの名無しさん:04/11/23 19:47:51
257デフォルトの名無しさん:04/11/23 19:49:33
結局のところ出入りする人間は変わらない罠
258デフォルトの名無しさん:04/11/23 20:14:23
日本の技術書は表紙がいまいちなのが多いなあ。
259デフォルトの名無しさん:04/11/23 22:43:52
>>236
って内容は良いの?
いいなら普通に読むぞ
260デフォルトの名無しさん:04/11/24 01:01:45
本屋のコンピュータコーナーでは、店が独自に萌え本を一カ所にまとめているので
既にコーナー化してるな。
261デフォルトの名無しさん:04/11/24 10:11:52
>>259
初心者向けの本としてはかなり良い。
262デフォルトの名無しさん:04/11/24 11:09:51
>>261
ありがと、買ってくる
263デフォルトの名無しさん:04/11/24 11:33:35
>>262
しつこいようだが、誤変換多発には注意
264デフォルトの名無しさん:04/11/24 12:14:31
>>263
横線引いて書き直しますわ
読み終わってもBOOKOFFに売るわけでもないし
265デフォルトの名無しさん:04/11/24 20:56:55
>>262
会社で君望ページなど接続してクビにならんようにな。
最近はログ取ってるし。
266デフォルトの名無しさん:04/11/25 17:44:37
>>265
なんでAgeのページ飛ぶんだ・・・・
ひょっとして提供とか?
267デフォルトの名無しさん:04/11/25 21:08:36
作者の趣味だろ
268デフォルトの名無しさん:04/11/25 23:49:54
Swingって、本や解説ページが多いのに使ってる人が少ないな
あとサンプルとか公開したりしてるけど、サンプルしかなかったり…
269デフォルトの名無しさん:04/11/26 08:26:21
そりゃもう、低速だからの一言に尽きる。
プログラムを組む側からすれば、すごく便利なんだけど。

270デフォルトの名無しさん:04/11/26 08:50:24
浦島太郎キタ━━━━(゚∀゚)━━━━ッ!!
271デフォルトの名無しさん:04/11/26 09:53:04
おれはいまや速度の問題はかなり小さくなったと思う。
むしろインターフェースが、ベースOSのものと異なっていたことのほうが大きいと思う。
J2SE 5.0でインターフェースがかなりネイティブ寄りになって良い感じ。
272デフォルトの名無しさん:04/11/26 18:22:35
UIマネージャ変えろよw
273デフォルトの名無しさん:04/11/26 18:31:34
↑インターフェイス=見た目 だと思ってるバカ
274デフォルトの名無しさん:04/11/26 18:44:04
そういっていただけるとありがたいです。
今後の励みになります。
275デフォルトの名無しさん:04/11/26 18:44:47
SwingとSWTはどっち勉強した方が役に立つ?
276デフォルトの名無しさん:04/11/26 20:33:45
>>275
Swing。
SWTがEclipse以外の用途で生き残るとは思えない。
てゆーか、Eclipseが生き残ったとしても、いずれSWTは
捨てられると思う。
277デフォルトの名無しさん:04/11/26 20:40:24
>>275
仕事で使う、または初心者ならSwing。
SWTを仕事で使ってるところは見たことが無いし(将来どうなるか知らんが)、
SWTは造りが非常にC的なんで、初心者には触らせたくない。

趣味でできる限り高速なアプリを作りたい、または既にオブジェクト指向を理解しているか
最初からC厨で影響受けることが無いならSWTでもいいと思う。
278デフォルトの名無しさん:04/11/26 20:49:58
じゃあ、今、Java製クライアントを作成するのに使うならどっち。
279デフォルトの名無しさん:04/11/26 21:08:58
間違いなくswing
280デフォルトの名無しさん:04/11/26 21:58:17
プログラミングの使い勝手的に、SWTはあきらかにSwingに劣るからなあ。
281デフォルトの名無しさん:04/11/26 22:48:55
あんなのJavaじゃねえ
282デフォルトの名無しさん:04/11/26 23:22:09
AWTが最強
283デフォルトの名無しさん:04/11/26 23:26:35
だってそんなこと言ったって、客がSWTがいいって言うんだから。
284デフォルトの名無しさん:04/11/26 23:29:36
Swing on SWT
285デフォルトの名無しさん:04/11/26 23:51:56
Swingはおくが深すぎる
慣れてくるとどんどん複雑なUIも作れるが・・・
速度調整のほうが大事やね
286デフォルトの名無しさん:04/11/27 02:06:11
>>278
仕事なら、RAD環境のあるSwing。
手書きでGUI書くのは、むなしい。
287デフォルトの名無しさん:04/11/27 03:00:58
つうかSWT語るならJFaceを忘れるなw
288デフォルトの名無しさん:04/11/27 04:57:33
swing使うときにどんなGUIエディタ使っています?
手討ち??
289デフォルトの名無しさん:04/11/27 05:06:12
>>273
> インターフェイス=見た目 だと思ってるバカ

271がいってるインターフェースは話の流れから察するにLook&Feelの
ことみたいだから見た目であってると思う。

んで、272のいってるUIマネージャ変えるってのはUIManager使って
Look&Feelを変更しろってことだと思う。たぶん。

自作のアプリじゃない場合は、オプションなどでデフォルトのLook&Feel
を指定すればいい。

> java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp

290デフォルトの名無しさん:04/11/27 11:26:49
SwingのJTableで、セルのデータ検証(バリデーション)を行う標準的な
仕組ってないのかしらん?
今自前のAbstractTableModelとTableModelListenerを使ってやってるんだけど、
セルにデータを保存するとき、選択行が変わろうとするとき
で別々のリスナーを作らないと共通に使える仕組が作れないっぽい
291デフォルトの名無しさん:04/11/27 11:53:40
>>288
NetBeansで。
292デフォルトの名無しさん:04/11/27 12:08:06
まともにGUIやろうとしたらNetBeans以外ありえんね
293デフォルトの名無しさん:04/11/27 13:18:52
eclipse + Visual Editor 見たいな、GUIプラグインの組み合わせは?
Visual Editorはeclipseプロジェクト内の発足だし、Version1.0もリリースされたから、結構使えるんじゃないかと思ってたんだが。
294デフォルトの名無しさん:04/11/27 13:34:06
VEは使い物にならん
1.0になったというのはSwingを改良したというよりはSWT対応という意味が大きい
295デフォルトの名無しさん:04/11/27 13:35:48
>>294
なんで使い物にならないんだ?


逆に、SWTなら、使い物になるのか・・・?
296デフォルトの名無しさん:04/11/27 13:37:27
SWTのほうが力はいってるとおもわれ
297デフォルトの名無しさん:04/11/27 13:37:52
おれもNetbeans派なんだが、JBuilderはどうなんだろうと気になっている(使った事ないんで)。
使用者の感想はどうですか。
298デフォルトの名無しさん:04/11/27 13:53:59
VE1.0.1.1でも使っててエラーログにどんどんぬるぽ溜まっていくとか
ちょっと品質悪いよね。1.1の計画からもSpring layout
対応とか外れるみたいだし、Swingに力が入ってるとは
思えないな。かといってSWT対応も主担当はIBMじゃなくて
ISCらしいし、どっちもIBMがまじめにやってる感じじゃなかったな。
まあVE1.0の見所を強いていうならEclipse3.0に対応し
ましたってとこじゃないの? 来週RAD6発売だけどVE1.0
からどこまで枯れたか見もの。
299デフォルトの名無しさん:04/11/27 14:12:47
JBuilder昔使っていたけど、悪くはない
でもGUIエディタとしてNetBeansが細かいことができすぎる

ウィザードやら親切なものがJBuilderのほうが満載なので
最初にIDEにふれるならEclipseやNetBenasよりは先にさわらせたいかなぁ

地味にDB管理ツールがらくだったり
300デフォルトの名無しさん:04/11/27 14:13:31
SWTはSWTで問題も多いからなぁ
SWTスレのぞいてみなされとしか
301デフォルトの名無しさん:04/11/27 14:50:21
SWT はノキアやモトローラが味方について組み込み向け JFace とか
作るみたいだし、貧弱な実行環境向けでは残るんじゃないかな。
SwingもJ2ME向けにProfile作ればいいのにな。最近のPDAならそろそろ
いい気がする。
302デフォルトの名無しさん:04/11/27 19:53:52
テキストエディタでSwingを使うのはおかしいのか…
303デフォルトの名無しさん:04/11/27 21:00:13
V2Cの作者はemacsで作ってるとのこと
304デフォルトの名無しさん:04/11/27 22:52:59
テキストエディタでGridbag書くのは精神衛生上よろしくない
305デフォルトの名無しさん:04/11/28 01:45:49
>>302
おかしいとはいわないけど、量産にはむかない。
306デフォルトの名無しさん:04/11/28 01:49:00
>>303
ツールの場合はRADのうまみがあまりないので、問題ないと思う。
業務システムで年端もいかないプログラマにコーディングさせると問題。
307デフォルトの名無しさん:04/11/28 09:37:59
画面数少なければ、そりゃ問題ないよな・・・。
308デフォルトの名無しさん:04/11/28 10:08:15
>>307
それと、ツールの場合、画面の動的な制御が多いから、RADであらかじめ画面を作れてもおいしくない。
309デフォルトの名無しさん:04/11/28 11:11:49
そこでSwiXmlですよ
http://www.swixml.org/samples/index.html

SwiXml, is a small GUI generating engine for Java applications and applets. Graphical User Interfaces are described in XML documents that are parsed at runtime and rendered into javax.swing objects.

…いや、ThinletとかSwingMLでもいいかもしれないんだけどね
310デフォルトの名無しさん:04/11/28 12:56:42
NetBeansのフォーム定義XMLからフォームが生成できるエンジンがあってもいいね。
311デフォルトの名無しさん:04/11/28 15:38:29
>>309
すごいネーミングのセンスだな。
Xwingじゃだめだったのか?
312デフォルトの名無しさん:04/11/28 16:26:21
>>311
Xwingは商標的な面倒に巻きこまれそうだ。
313デフォルトの名無しさん:04/11/28 17:59:31
ある意味、宗教的
314デフォルトの名無しさん:04/11/29 02:46:33
むしろ宗教そのもの
315デフォルトの名無しさん:04/11/29 15:13:17
ちゃんとした現世利益があれば宗教だってかまわんだろ
316デフォルトの名無しさん:04/11/29 15:40:29
>>310
それだ!

っていうか「NetBeansのフォーム定義XML」ってどういうの?
どっかに仕様書とかある?
.formファイルの例ってない?
ttp://jp.sun.com/software/sundev/ffj30/faq/GUI.html
とか見つけたけど、詳しく書いてないし。

当方eclipseユーザなもので…。
317310:04/11/29 20:40:46
実は、前から作りたいと思って探してたんだけど、みあたらない。
本気では探してないけど。
NetBeansのXML定義からSpringやSeasarのBean定義に変換するのもおいしそう。
そんなアイデアも、form定義の仕様を探さないことには。
実際には、イベントまわりの実装に腐心しそうだ。
318デフォルトの名無しさん:04/11/29 21:22:41
XMLからフォーム作るのはいいんだけど、イベントとか動的な処理をどこで設定するの?
319309,316:04/11/29 22:12:33
>>318
SwiXmlの場合、
SwingEngine#render("コンポーネントのViewの定義.xml")で、
コンポーネントのツリーを組み立ててから、
SwingEngine#find("コンポーネントの名前")で、
該当するオブジェクトの参照を取り出して、
そこにイベントハンドラをaddしてゆく、
…というのが基本的な使い方になります。

>>317
このSwiXmlみたいに、
「XMLはViewを定義するだけ。Model や Controller は、Javaでソースを書け!」
ってことにして、とりあえず切り放して考える、というのもアリだと思うよ。
320デフォルトの名無しさん:04/11/29 22:48:37
>>319
うん、おれは話題からして、UIをXMLからロードして作れる程度のものを想像していた。

SwingUIMgr mgr = new SwingUIMgr( hoge.xml);
JFrame frame = mgr.getJFrame( "hoge");

てな感じで。あとはframeつかって好きにしろや、ってことでよろしく。
321デフォルトの名無しさん:04/11/29 22:56:34
XMLで別定義とかしたいところだが、特に要望の強いであろう業務系では
イベントとかの嵐だしプロパティをガンガンいじるからなぁ
322デフォルトの名無しさん:04/11/29 23:25:48
NetBeansの.formファイルを、
XSLTでSwiXmlに変換して使えるとしたら、
実装はわりと簡単になるよな。
323デフォルトの名無しさん:04/11/29 23:42:14
XMLもいいがGroovy(Groovy Markup)はどうかね。
324デフォルトの名無しさん:04/11/29 23:57:01
>>323
どんな書き方になるの?
325デフォルトの名無しさん:04/11/30 00:04:48
Groovy Markup。Swing以外にも使える。

ttp://groovy.codehaus.org/GroovyMarkup
326デフォルトの名無しさん:04/12/01 00:20:30
>>318
現実的な話をすると、OGNLとか式言語を使えるようにして、リスナーを追加できるようにするのがいいのかと。
327デフォルトの名無しさん:04/12/01 20:19:35
winlaf 0.5 が出ている。 https://winlaf.dev.java.net/
328デフォルトの名無しさん:04/12/04 16:16:55
オススメのビルダー教えてください。
できれば無料ので
329デフォルトの名無しさん:04/12/04 16:26:47
もっと勉強してからにしなさい
330!= 328:04/12/04 16:36:27
>>329
何を勉強すればいいんですか?
331デフォルトの名無しさん:04/12/04 16:38:47
329のように電波ゆんゆんになるための勉強(というか修行)
332名無し:04/12/04 16:43:37
そういうことはhttp://shkell.net/でお願いします
333デフォルトの名無しさん:04/12/04 17:09:42
せっかくWindowsのシステムクリップボードにファイルをコピーできるようになったと思ったら
Linuxでは駄目なのね
悪いのは俺なのかJavaなのかLinuxなのか…
334デフォルトの名無しさん:04/12/04 18:03:33
>>333
なんの話?
335333:04/12/04 19:11:39
>>334
クリップボードはAWTだからスレ違いか
336デフォルトの名無しさん:04/12/04 20:05:51
>>333
どっちかというと、「Linux」の名のもとにクリップボードの仕組みを統一できてないLinuxが悪いね。
337デフォルトの名無しさん:04/12/05 02:00:53
現状LINUX上でCUIで動いているプログラムにできるだけ簡単に!、
GUIを実装したいのですが何を使ったらよいでしょうか?

javaでswingを使うなど考えたんですが、CUIとのデータのやり取り
が大変そう(自分の実力のなさから、、、)でどうしたものか悩んでるところです。
CUI側プログラムにwebサーバを実装して、GUI(javaが適当?)プログラムでは、
local接続して値をやりとりするってのはどうなんでしょか?
338デフォルトの名無しさん:04/12/05 02:06:28
普通にファイル経由。これ。
339デフォルトの名無しさん:04/12/05 03:04:20
>>337
CUI側のプログラムを別のマシンで動かそうという考えがなければ別にソケット使う必要はないよ
(別のマシンで動かす場合でもwebサーバー実装は大げさというか無意味)
340デフォルトの名無しさん:04/12/05 05:33:45
>>337
そこでjettyですよ
http://jetty.mortbay.org/jetty/
341デフォルトの名無しさん:04/12/05 07:53:06
>>337
RMIが楽じゃないの?
342デフォルトの名無しさん:04/12/05 12:42:07
わざわざアプリ鯖立ち上げて通信させるくらいならそのままスタンドアロンアプリつくればよかろう
Swingってべつにそんなにたいへんなものではないし、レイアウトマネージャ理解してくれば別に問題なし

とりあえずNetBeansいれてぺたぺた貼り付けてみて問題があったらまた質問するがよろし
343デフォルトの名無しさん:04/12/05 13:47:30
とりあえず、そのCUIのプログラムって、どんなアプリなんだよ?
344デフォルトの名無しさん:04/12/16 02:23:15
Netbeans 4.0正式版が出たぜ!
345デフォルトの名無しさん:04/12/19 02:09:41
Netbeans 4.0をいじってて気がついたが、実行コマンドbin/netbeansにMac OS X用に
unameが「Darwin」だったら、てなところがあるんだよな。

で試しにMac OS X独自のプロパティ「apple.laf.useScreenMenuBar」を追加して、trueに
してみた。起動してみたらちゃんとMacのメニューバーになってやがる。

これNetbeans 3.6のころはちゃんと動かなかったんだよ。しかしDarwinだったら特殊な
プロパティを設定するような起動ロジックを入れるんなら、はじめからこのプロパティも
設定しときゃいいのに....
346345:04/12/19 02:23:25
ごめん、投げるところを間違えてるよな...
Netbeansスレに逝ってくる...orz
347デフォルトの名無しさん:05/01/02 06:18:04
tableで現在表示されている、可視領域の行のtopのINDEXを取得
する方法ってありますか?
348デフォルトの名無しさん:05/01/02 12:58:20
>>347
スクロールバーの値を取得して
JTableのrowAtPointを使えばいいんじゃない?
349デフォルトの名無しさん:05/01/03 05:51:39
JTableで、スクロールバーのイベントを捕まえる
にはどうすればよいですか?
350デフォルトの名無しさん:05/01/03 10:36:33
>>349
JTable自身はスクロールバーを持たない。
持つのは、JTableをviewに設定したJViewport。
あとはJViewportの持つJScrollBarを拾ってきてあれこれする。
351デフォルトの名無しさん:05/01/03 18:10:22
>>347
atmarkit にも ほとんど同じ質問が出てるな。

そーいや Eclipse スレだったか SWT スレだったかで
JTable 使えねーとかわめいてる奴もいたな。
352デフォルトの名無しさん:05/01/04 20:41:43
>>351の2行目までと、3行目以降が繋がらないんだが、分裂病もとい統合失調症か何かですか?
353デフォルトの名無しさん:05/01/04 20:56:35
354デフォルトの名無しさん:05/01/06 11:42:05
質問ですが起動時に最大化するにはどうしたらよいでしょうか?
それと起動時からルックフィールをWindowモードにするのも教えてください。
355デフォルトの名無しさん:05/01/06 13:25:38
・起動時に最大化(JDK1.4以降限定)
frame.setExtendedState(Frame.MAXIMIZED);
setStateというメソッドもあるが、アイコン化と通常状態への戻ししかできない。

・起動時にL&FをWindowsに。
ウィンドウを1つでも開く前に
UIManager.setDefaultLookAndFeel(クラス名);
クラス名は
XP風なら
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
それ以前の(95以降XPより前)なら
"com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"

作ってしまったウィンドウのL&Fを変えるには、
そのあとで
SwingUtilities.updateComponentTreeUI(最上位のComponent);
する。invokeLaterから呼ばないとダメかも。
356デフォルトの名無しさん:05/01/06 16:10:49
LAF設定はSystemLAFにしたほうがいいかと
357355:05/01/06 16:24:30
>>356
御意。

もとの質問者の意図が、
「どんなプラットフォームで動かされたときでもWindows L&Fにしたい」
なら355の方法、354がたまたまWindowsを使っていて、
「動いているプラットフォームの標準L&Fにしたい」なら、クラス名の所は
UIManager.getSystemLookAndFeelClassName()
の返値を使ってくれ。
358デフォルトの名無しさん:05/01/07 00:00:52
>>357
>>355 は Windows 以外じゃ動かないんじゃない?
359デフォルトの名無しさん:05/01/07 00:11:55
>>358
sunのWindowsLAFが用意されてる環境なら、どんなプラットフォームでも動くけど、デフォルトやライセンス的にはWindowsだけだな。
厳密にいえば、355は特別なことをしてなければWindows上のSunのVMでしか動かないね。
360デフォルトの名無しさん:05/01/07 00:21:01
そういえばWindows以外でWindows Look and Feel使うと例外になるんだったな。
361デフォルトの名無しさん:05/01/07 11:23:56
初カキコです。

Swing部品で、手入力可能な部品があるぢゃないですか?
(例えば、JTextFieldやJComboBox)
その部品で以下の現象が発生します。

 IMEを起動し、よみ入力状態(未確定)中に
 Ctrl+V(ペースト)を押下するとExceptionが発生する。
 ※JDK1.3でも1.4でも発生するようです。

この問題の回避方法を検討しているのですが、
良い方法が思いつきません。
過去に解決した方いらっしゃいましたらアドバイスおながいします。

あと、この問題を解決する上で一つ試してみたい方法があります。
「現在読み入力中である。」というのが分かれば
その時だけCtrl+Vをconsumeしてやれば
回避できそうな気がしているのですが、
Javaで「現在読み入力中である。」というのは
判断可能なんでしたっけ???

教えてくんですんませんが、よろしくです。
362361:05/01/07 15:18:49
自己解決♪

読み入力中かどうか判断できたので、
コピペのキーイベントを消費すれば
回避はできますたー。

でも、これってswingの
障害に見えるのですけど
どーなんですかねぇ???(*´д`*)
363デフォルトの名無しさん:05/01/07 18:37:47
>>361
Windows2000SP4 & j2sdk-1.4.2_06 の環境では発生しないんだけど、
そちらの環境はどんな?
364デフォルトの名無しさん:05/01/07 20:08:05
環境と例外のスタックトレース晒してくんない?
あと、IME に何をつかってるかにもよるのかも?
WindowsXP + MS-IME
java version "1.5.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)
だと例外は出ない。
365デフォルトの名無しさん:05/01/08 14:55:00
結論:MFC使え。
366デフォルトの名無しさん:05/01/08 19:20:45
MFCって、広く使われてるクラスライブラリの中では最悪の部類に属するよね。
367デフォルトの名無しさん:05/01/10 02:38:33
うん。MFC以下の商用ライブラリを知らない。
368デフォルトの名無しさん:05/01/10 19:16:14
そこでAWTですよ。
369デフォルトの名無しさん:05/01/10 21:18:38
ここはSwingスレだしAWTやMFCは・・・
370361:05/01/11 15:06:04
当方では、1.3.1_01と1.4.1_03で現象が発生することを確認してますね。
1.3.1_01は、以下のVMです。
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01a)
Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)
1.4.1_03は失念です。。。…(;´Д`)

発生Exceptionはこんな感じ。
java.lang.IllegalArgumentException: Invalid substring range
at java.text.AttributedString$AttributedStringIterator.<init>(Unknown Source)
at java.text.AttributedString.getIterator(Unknown Source)
at javax.swing.text.Utilities.drawComposedText(Unknown Source)
at javax.swing.text.PlainView.drawElement(Unknown Source)
at javax.swing.text.PlainView.drawLine(Unknown Source)
at javax.swing.text.PlainView.paint(Unknown Source)
at javax.swing.text.FieldView.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintWithBuffer(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
371361:05/01/11 15:08:05
ちなみに、OSは
WindowsXP SP1 + MS-IME
ですた。
372デフォルトの名無しさん:05/01/11 15:09:07
1.4.2だけどそんなえらーでねぇよ
373デフォルトの名無しさん:05/01/11 15:18:33
どっちにしてもバージョンが低すぎる
1.4.1だけみても_07までいってるわけだしな
1.3.1なんて_14だ
374デフォルトの名無しさん:05/01/11 17:04:14
そうだね。
1.3.1の最新と1.4.1の最新で試してみたら?
375デフォルトの名無しさん:05/01/11 17:19:08
demo/jfc/Notepad/Notepad.jar で試してみたけど、
1.3.1 も 1.4.1 も例外吐くね。素直に 1.4.2 を使えって事か。

java version "1.3.1_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_15-b01)
Java HotSpot(TM) Client VM (build 1.3.1_15-b01, mixed mode)

java version "1.4.1_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_07-b02)
Java HotSpot(TM) Client VM (build 1.4.1_07-b02, mixed mode)
376デフォルトの名無しさん:05/01/11 17:21:43
1.4.1は問題多かったし1.4.2へ移行できるからいいけど
1.3.1は1.3系最終だからきっついな

どっちにしろ移行フェーズにはいってるVMだからなんとも
377デフォルトの名無しさん:05/01/11 18:30:27
1.3でSwing使うな、っていう考え方だな。
378デフォルトの名無しさん:05/01/11 18:53:18
>>377
1.3 で Swing 使うならその程度の不具合があっても我慢しろ、でなくて?
379デフォルトの名無しさん:05/01/11 18:58:42
1.3のSwingには重いという最大の不具合が。
380デフォルトの名無しさん:05/01/11 19:36:51
>>379
Swing が重いのは 1.3 に限った事ではない。
スレタイにも低速って書いてあるしな。
381デフォルトの名無しさん:05/01/11 20:09:54
1.4.1以降でSwingさわってないやつまだいたのか
382361:05/01/12 09:10:18
>>372-381

ま、みなさんのご意見は
ごもっともですわぁ。

ただ、いろいろ事情があって
そう簡単にバージョンも
上げられんのですよ。

swingの障害だということが
分かったことだけでも
ちょっとスッキリ?です。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4686956
383デフォルトの名無しさん:05/01/12 16:26:38
ダイヤログボックスのボタンが「了解」になってるんだけど変えることは出来ませんか?
384デフォルトの名無しさん:05/01/12 16:57:09
>>383
UIManager.put("OptionPane.okButtonText", "表示させたい文字列");
385デフォルトの名無しさん:05/01/12 17:08:32
>>384
ありがとうございます。
もひとつ、ウィンドウの大きさを固定するには(ウィンドウの角にマウスを合せても何もできない)
どうしたらいいでしょうか?
386デフォルトの名無しさん:05/01/12 18:02:58
java.awt.Frame#setResizeable(boolean)
387デフォルトの名無しさん:05/01/12 19:56:09
UIManagerはともかくResizeableはAPIみてればすぐにわかるような・・・
388デフォルトの名無しさん:05/01/13 01:44:41
UIManagerの設定値ってどうやって知るものなんですか?
ソースから見つけるとしても、ある程度アタリつけて探さないとだめだし。
389デフォルトの名無しさん:05/01/13 16:08:42
タイトルバーを右クリックすると移動とか閉じるとかのメニューが出ますよね。
あそこにメニューを追加することできますか?
390デフォルトの名無しさん:05/01/13 16:31:31
>>389
Mac OS X + Java 1.4.2_05ですが、そのメニュー出ないです。
JVMはちゃんと右クリックにも対応してるんですけど。
391デフォルトの名無しさん:05/01/13 16:42:24
>>389
Javaでは無理だと思う
392デフォルトの名無しさん:05/01/13 23:38:43
>>389
java.awt.Frame#setUndecorated(boolean) で
ネイティブのタイトルバーとか出ないようにした上で、
自力でタイトルバー表示して自力で右クリックメニュー表示するとか。
393デフォルトの名無しさん:05/01/14 00:27:23
そうなるとウインドウの移動とか大変だな
まぁWindowはライトウエイトじゃないからな
394SQRT ◆1udXdvAcZc :05/01/24 10:38:54
カキコ少ないぞ。
やはりSWTなのか
395デフォルトの名無しさん:05/01/24 12:46:05
396デフォルトの名無しさん:05/01/24 13:04:29
>>394
書き込みがないということは、
みんな問題なくSwingを使いこなせているということ。
素晴らしいことではないか。
397デフォルトの名無しさん:05/01/24 17:11:05
普通に業務系ではSwingつかってるしなぁ
SWTはユーザーの多いWindows等でしか安定動作してなかったとか
低機能がきつかったかと

業務系はテーブル使ってなんぼだからね
398デフォルトの名無しさん:05/01/25 08:15:27
そうだなあ。SWTはWindowsアプリをJavaで書くためのライブラリって感じだな。
漏れも結局Swingしか使ってない。
399デフォルトの名無しさん:05/01/30 23:08:46
>>394
Swingの方がいいな。
それにしてもこのスレ下がりすぎ。
400デフォルトの名無しさん:05/02/04 00:32:30
JTextAreaに行番号ふるのって簡単にできませんか??
ttp://forum.java.sun.com/thread.jspa?threadID=585673&start=0&tstart=0
これぐらいしないとダメ??
401デフォルトの名無しさん:05/02/04 00:58:25
>>400
100行ちょっとじゃん。全然大した事無いような……
402デフォルトの名無しさん:05/02/04 01:07:43
コピペすれば5秒
403デフォルトの名無しさん:05/02/04 01:36:54
1行でできないかなーって。
ゴメンネ。
404デフォルトの名無しさん:05/02/04 13:17:57
JTextAreaのキーバインドをカスタマイズしようと思います。

InputMap inputMap = myTextArea.getInputMap( JComponent.WHEN_IN_FOCUSED_WINDOW );
ActionMap actionMap = myTextArea.getActionMap();
inputMap.put( KeyStroke.getKeyStroke( "ctrl S" ) , actionMap.get("caret-begin-line"));

とした場合、ctrl s に行頭まで移動を割り当てることができるのですが、
"ctrl S"の部分を"ctrl A"にするともとから定義されていた select-all が呼び出されてしまいます。
inputMapからremove、もしくは上書きしたいのですが誰かアドバイスをくださいませ。
removeというメソッドはあるのですが、そこに何を代入してよいのか分かりません。

405デフォルトの名無しさん:05/02/04 13:36:24
>>404
input.remove(KeyStroke.getKeyStroke("ctrl A"));
でいいんじゃない?
406404:05/02/04 18:27:26
>>405
いや、これがダメなんですよね。消えてくれない。
407デフォルトの名無しさん:05/02/04 18:48:00
>>406
inputMap.remove(KeyStroke.getKeyStroke('A', 2));
変わってないけどためしに
408404:05/02/04 18:58:24
>>407
んーやっぱダメみたいです。
ちなみに環境は Win2000 + Java1.4.2_01 です。

ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10208&forum=12&0
こんなの見つけましたが、"ctrl A"に新しく関数上書きしている場合は
関係ありませんよねぇ・・。
409デフォルトの名無しさん:05/02/04 19:13:54
>>404
↓を使うんじゃないかな?
javax.swing.text.Keymap
JTextComponent.getKeymap()
410404:05/02/04 19:50:20
>>409
KeyStroke ctrlA = KeyStroke.getKeyStroke(KeyEvent.VK_A, Event.CTRL_MASK);
Keymap map = myTextArea.getKeymap();
map.removeKeyStrokeBinding(ctrlA);

としたけどダメでした。

他のサイトではこの方法でEnterを消すことはできるようでした。
ttp://www.vc-net.ne.jp/~ytp/bbs/java/bbs1337.html
ttp://java-house.jp/ml/archive/j-h-b/026722.html
そこで、自分の環境でEnterもためしにやってみましたが消えません。
情報が古いのかなぁ?

411デフォルトの名無しさん:05/02/04 21:29:04
>>410

KeyStroke ctrlA = KeyStroke.getKeyStroke("ctrl A");
inputMap = textArea.getInputMap(JComponent.WHEN_FOCUSED);
while (inputMap != null) {
 inputMap.remove(ctrlA);
 inputMap = inputMap.getParent();
}

JTextComponentの編集用キーバインディングは WHEN_FOCUSED のInputMap
に登録されているのでそれを再帰的に辿って消せば消せます.

でも削除しなくても上書きで問題ないはずです.
特定のテキストエリアについて編集用キーバインディングを上書きしたいなら
InputMap newMap = new InputMap();
newMap.setParent(textArea.getInputMap());
newMap.put(ctrlA, "hoge hoge");
textArea.setInputMap(JComponent.WHEN_FOCUSED, newMap);
と,新しいInputMapを作ってやるのがマナーかもしれません.
412411:05/02/04 21:31:38
あとKeyMapで変更した場合は

KeyMap keyMap = textArea.getKeyMap();
// keyMap の変更
textArea.setKeyMap(keyMap);

と,setKeyMap()しないとダメだったと思います.
(JTextComponent#setKeyMap() の内部でKeyMapを元にInputMapとActionMapを
更新していたと思います.
413404:05/02/04 22:30:22
>>411
ありがとうございます!!

411の方法でバッチシ消せました。
そして412のKeymapの変更はどうやらいらないようです。

自分の方法がダメな原因がわかりました。
JComponent.WHEN_IN_FOCUSED_WINDOWとしていたからでした。
ここをJComponent.WHEN_FOCUSEDとしないと上書きが反映されないようです。

Swingも書籍はある程度出版されていて助かるのですが、
やはり細かいところになると情報がすくなくてつらいときあります。

ほんとにありがとうございました。
414411:05/02/05 14:34:09
>>413
>>412 に書いたのはKeyMapを使ってキーバインディングを上書きする方法だから
InputMap を変更する場合に KeyMap を更新する必要はありません.

swing は jdk の src.zip にソースコードがあるので読んではいけない
理由(クリーンルーム実装する仕事があるとか)がないなら読んで調べる
のが一番確実です.最終手段ですけどね…
415デフォルトの名無しさん:05/02/05 22:43:58
エクスプローラの詳細ファイルリストのようなリストを作りたいんだけど、なに使えばいい?
JListだと列がないし、JTableだと行でなくフィールド一つ一つ選択できてしまう。
416デフォルトの名無しさん:05/02/06 00:23:21
>>415
jtable.setRowSelectionAllowed(true);
417デフォルトの名無しさん:05/02/06 00:55:24
>>416
うほ・・・さんくす
がんがってみます
418デフォルトの名無しさん:05/02/07 13:23:48
SWTの時代で、もうSwingは要らない時代でつか?
419デフォルトの名無しさん:05/02/07 14:04:50
Swingの時代でSWTが要らない時代になりますた。
420デフォルトの名無しさん:05/02/07 18:27:28
SWTでお仕事はまずないな
421デフォルトの名無しさん:05/02/08 02:02:32
Swingの仕事ももちろんないわな。
422デフォルトの名無しさん:05/02/08 02:34:35
おいおい、Swingの仕事やってる俺はどうなるんだ。
423デフォルトの名無しさん:05/02/08 08:37:29
某がSwing/SWTのクロスライブラリ出せばヨインダ



ってもうある?
424デフォルトの名無しさん:05/02/08 09:19:04
>>423
そんなん使うならSwingでよい。
SwingをSWTのインターフェイスで使うのはあほらしいし、わざわざSwingのインターフェイスでSWTを使うほどSwingとSWTの速さに差はない。
425デフォルトの名無しさん:05/02/08 10:16:30
そんなん使うならSWTでよい。
とはならないわけ?
426デフォルトの名無しさん:05/02/08 11:14:37
SWTは仕事で使う分には機能不足
Swingいまだに使えないと思っているやついるんか
427デフォルトの名無しさん:05/02/08 13:03:21
あ、そうなの?

Swingいまだに使えないと思ってたが、V2Cみたいなのは凄い。
ポトペタで作れる?
428デフォルトの名無しさん:05/02/08 13:58:37
ポトペタがないと作れない奴は使いものにならない。
429デフォルトの名無しさん:05/02/08 14:12:47
GUIで売れ行きや使われ具合が決まるんだから、
GUIはポトペタ、これ定番。
430デフォルトの名無しさん:05/02/08 14:14:39
>>429
前半と後半の論理がつながっていない。
431デフォルトの名無しさん:05/02/08 15:09:53
>>429
ポトペタで作ったら売れ行きが良くなったり使われ具合が良くなったりするのか?
逆に言うとポトペタ使えないと、売れない使われないGUIしか作れない、と。
それって >>428 を肯定しているだけでは?
432デフォルトの名無しさん:05/02/08 15:55:48
ポトペタがないと作れない奴はバカのは確かだが
ポトペタがあるのに意地でも使わないのもバカ
433デフォルトの名無しさん:05/02/08 16:45:17
バカ(良い意味で)
434デフォルトの名無しさん:05/02/08 17:51:10
おまいヴぁか>>431
DelphiのポトペタIDEはDelphiのポトペタで作られてる。

JBuilderのポトペタIDEは、、、知らん。
435デフォルトの名無しさん:05/02/08 19:04:52
ぽとぺたは開発効率という点で重要だろう
それはコストや出来具合にかかわってくる

JavaのGUI]ツールとしてのできは

NetBeans>JBuilder>JDev>EclipseVE

ってところだろう
436デフォルトの名無しさん:05/02/08 19:09:37
JDevとJBuilderって、同じものじゃないの?
NetBeansも使いづらいと思ってるんだけど、JBuilderってそれより悪い?
Delphiのアクションまとめるやつが、すげー使いやすかって忘れらんない。
437デフォルトの名無しさん:05/02/08 19:17:10
ポトペタにはNetBeansが良いわけ?
ランタイム用にインストールして起動もしなかったヨ。

大昔にJBuilder使って最近Eclipse触っただけだったんだが、商用が良い筈と脳内で勝手に思ってたよ。
438デフォルトの名無しさん:05/02/08 20:01:20
>>436
昔は完全なOEMだった
だから今でも互換性のためにGUI部分はほぼおなじ
ただしバージョンは古いのかな

メニュー周りとかウィザードとかそういったところがJBuilderと比べて弱い
結果としてJBuilderのほうがいいというわけ

NetBeansは慣れるまで多少かかるが、慣れてくるとあふぉのようなつくり込みがイカス
ただし、Swingの仕組みをある程度知っている人向け
というか、JavaのGUIエディタすべてはSwingの最低限の知識ないときついけどな

>>437
ランタイム?JREじゃだめだよ、SDKいれないと

EclipseはJBuilder並みの親切さはないからその点はきついかな
というかJBuilderだけがとびぬけて親切度は高いと思う

初めてJavaのGUIいじるならJBuilderを進めたいけど、結局Swingを理解していないと
細かいところですぐに躓く

NetBeans以外はフレームとか地獄のサイズ指定になっているので
実際にアプリを組むときそのあたりで多少手がかかるかもしれない
439デフォルトの名無しさん:05/02/08 21:04:25
JBuilder軽いな・・・Eclipse使ってる俺が馬鹿のようだ
というか馬鹿だ
440デフォルトの名無しさん:05/02/08 21:16:23
Eclipse自体重くはないがVEは重い
JBuilderは6あたりからかな、軽く感じるようになって来たのは
NetBeansも3.6からはLAFの影響か軽く感じやすい
441デフォルトの名無しさん:05/02/08 22:20:45
>>438
解説サンクス
442デフォルトの名無しさん:05/02/08 23:45:25
ロジックをEclipseで書くからGUIもEclipseの方が楽なんだよね
確かに重いんだけど、GUIいじる時間もそんな長くないし
443デフォルトの名無しさん:05/02/09 00:37:50
業務用アプリのような膨大な項目をパネル単位で管理とか
そういったことしているとNetBeansじゃないと大変な希ガス

そもそもsetSizeしている時点でだめすぎ>VE
444デフォルトの名無しさん:05/02/09 08:39:48
じゃ、ポトペタでJavaアプリ作るんならお金出せるならJBuilderだね。

SwingとSWTのアドバンテージが?でつ。
上ではSWTが機能不足とあるけど、自分の認識ではSwingに対して後だしジャンケンのSWTが高速、だったんだけど違うの?
EclipseとSWTがセットなんだっけ?
445デフォルトの名無しさん:05/02/09 09:38:34
ポトペタ部分をJBuilder Personalで大雑把に作り、
あとはそれを継承したクラスのイベントロジックをEclipseで作るってのはどうでしょう?

>>443
>そもそもsetSizeしている時点でだめすぎ>VE
詳しく教えて。setSizeってどこでされるの?
446デフォルトの名無しさん:05/02/09 10:30:11
自分でsetSizeする必要がるってことじゃないか?
447デフォルトの名無しさん:05/02/09 11:41:05
pack()とかつかってないということだろう。
JBuilderもそうだけど、JFrameとかJDialogとかはタイトルバーや
四方のインセットも含めてのサイズ指定が必要。

インセットを取得してそれを計算してサイズ調整しないと
環境によって表示が崩れる。
Swingの基本は推奨サイズを指定していってその結果
ウインドウサイズが決まるというもの。
各コンポーネントも環境によって必要サイズが違うからね。
また、環境をWindowsに固定したとしてもXPと従来のクラシックスタイルとでも
タイトルバーの太さとかかなり違うのは知っているだろう。

448デフォルトの名無しさん:05/02/09 12:00:49
>>444
機能不足と高速と、違う次元で比べて矛盾だと思ってるようでは甘いな。
449デフォルトの名無しさん:05/02/09 12:05:04
>>444
後出しじゃんけんというか、SWTがでたときはJ2SE1.3の時代。

このときのマシンパワーは低く、Pentium3/1GHzが比較的スペック高いほう。
メモリも今ほど贅沢にあったわけじゃないし、同じJREでアプリを動かしたとしても
今の環境とでは大きく差が出る。

そしてSwingも1.4になってから大幅に速度改善されて実用的になったのだが
ちょうどその直前あたりにでたのでSWTは当時としては軽かった。

ただし、どんどんSWTは重くなってるし逆にSwingはどんどん軽くなってきてる
また、ユーザーの多い環境であるWindowsは安定しているけどそれ以外が
わりと不安定だったりした。>SWT

そしてもっとも問題なのがSWTはあくまでもWindowsのアプリをJavaで
作ろうという程度のものであって作り方からまるで方向性が違う。
感覚的にはWin32APIで作ろうとするのに似ている。
業務系に多用されるであろうテーブル系の機能不足とかほかにもコンポーネントの
機能不足がかなりの問題になる場合もある。

マシンパワーの向上とVMの大幅なパワーアップが原因だな。
現状SWTのアプリがあまり作られていないことからSWT=Eclipse専用とおもっていい。

一応両方触ってみるといい。まったくべつものでびっくりするから。
450445:05/02/09 12:15:02
>>447
なるほど、普段packつかってなかったから、知らんかった。
packして推奨サイズにされる事が、「あれ?なんでちっちゃくなったの?」って思ってた。
一つ一つ推奨サイズを指定しなきゃいけなかったのか。

>タイトルバーの太さとかかなり違うのは知っているだろう。
このあたりはちょっと余裕もってsetSizeしてた。

推奨サイズを指定してレイアウトマネージャに配置を任せてはいるけど、
ウィンドウサイズは自分で指定したかったのでそうしてた。
451デフォルトの名無しさん:05/02/09 13:35:40
>>450
絶対的なサイズを扱いたいときはJFrameにJPanelをトップに貼り付ける
そのJPanelに推奨サイズを指定、JFrameにpack()をセット

あとはnullレイアウトだろうがご自由にどうぞ

余裕持ったサイズってのはWindowsだけならまだしも、Windows以外の環境を考慮すると
結構厳しいものがあったりする
Windowsでも年いった管理職の人とかタイトルバーとか外枠大きくしたりしている人も割といる
452444:05/02/09 13:53:35
Swing良くなってるんだー。

自分が使ってた頃は、レイアウトマネージャとかいうのが邪魔して、
仕方ないからグリッドレイアウトを見えないように使って自由にポトペタやったんだけど、
それは今も一緒?
453デフォルトの名無しさん:05/02/09 13:56:29
Swingって遅いの?
454445:05/02/09 14:07:32
>>451
>絶対的なサイズを扱いたいときはJFrameにJPanelをトップに貼り付ける
>そのJPanelに推奨サイズを指定、JFrameにpack()をセット

参考になりました。
ウィンドウサイズだけはキッチリ合わせられないもんだと思ってた。

>>452
>自分が使ってた頃は、レイアウトマネージャとかいうのが邪魔して、
>仕方ないからグリッドレイアウトを見えないように使って自由にポトペタやったんだけど、

今でもレイアウトマネージャは使うし、理解しなければGUIは面倒だよ。
VBみたいにやるのを想像しているならば、弊害も理解したうえでnullレイアウトでやればいいけど。
「グリッドレイアウトを見えないように」ってどんな使い方だ?
455デフォルトの名無しさん:05/02/09 14:48:21
>nullレイアウト
これって昔っからあったっけ?

>弊害も理解したうえで
環境変わるとコントロールがはみ出る程度の弊害、と理解したけどおk?
456デフォルトの名無しさん:05/02/09 15:07:23
>>455
nullレイアウトは昔からある。
Swingがでるまえから。

・絶対座標で扱うので文字のサイズとかちゃんとあわせないとダメ
・あわせたとしても特定環境でしかあわせられない

という点にきをつければいい。

VBやBCB、Delphiのように手軽に貼り付けれるし、これらもフォントサイズとか
環境をかえるとちゃんと動かないので、Windows専用とか割り切って作るなら
十分実用的。

特にWindowsとWindows以外ではOSのDPIの設定値が違うためにフォントは
問題になりやすい。

とはいえレイアウトなんて
・フロー
・ボックス
・ボーダー
の3種類の組み合わせだけで実現できるけどね。
これでできないようなのは通常の使用ではまずない。
457デフォルトの名無しさん:05/02/09 15:18:34
>>453
Swingがでたときは1.1のオプショナルパッケージで環境的に非常に遅かった。

Swingでなくともインタプリタメインで一部JITがではじめたりしたがJITも
コンパイル速度が問題になったり万能ではなかった。

マシンも200MHz以下、32MBとかの時代で特にメモリが厳しかったと思われる。
メモリが少ないとGCも頻繁に入るし、世代別GC導入前なのでループ中に
GCいれたりとかあほな環境だった。

1.2で標準で取り込まれ、クロスプラットフォームな高精度なGUIがでたのはいいのだけれども
重さは1.1以上に悪化したり。

1.3でhotspot導入などで高速化、安定化されサーブレット/JSPが流行り始めて
業務で使えるVMになってきたが、クライアント分野でのパワーアップは誰も見向きもしなかった。

1.4でさらなるクライアント方面のパワーアップに加えて描画がアクセラレーションが
環境に合わせてきくようになってSwingがはじめて実用的になる。1.4.1や1.4.2と
マイナーバージョンアップするにつれて速度が向上。
サーバーVMを筆頭にVM自体がどんどん頭よくなってきたのもこのころ。

と、Swing自体の改良もあるけどVM自体の改良や1GHz超えてメモリ256M
のってるのがすでに標準とか、そういったことも影響している。
458デフォルトの名無しさん:05/02/09 16:38:55
つーか、SWTをSwingの比較対象にもってくることが
おかしいよね。IBMですらSWTを単体で使うような真似は
ほとんどしていない。

例えばWMEではSWTの上をAWTで覆ってSWTを完全に隠蔽しているし、
SWTがメジャーになったきっかけのEclipseでもJFaceなどの
ライブラリを併用している。

SWTの単独利用をIBMが正式に打ち出したのは唯一eSWTだけ
だけど、これは組み込みのような貧弱な環境向け。
#しかしこれもモトローラなどと共同でeJFaceの開発が始まってるらしい。

要するにSWTは各ウィンドウシステムの差異を最小限の厚さの
レイヤでおおうだけのライブラリ。Swingとくらべるようなもんじゃないよ。
459デフォルトの名無しさん:05/02/09 16:49:58
比較する位地付けとしてはAWTピアのほうが近いのだろうか?
となるとAWT-Swing, SWT-Swing, SWT-Jfaceといった使い分けになるのかな?
460デフォルトの名無しさん:05/02/09 17:32:56
>>459 そんな感じかなあ。JFace付けてもまだSwingに比べて機能的に
足らない気がするけど。
現状ではRCPのようなアプリケーションフレームワークまで含めてアプリ
ケーション全体の構築コストを考えてどっちを選ぶかって感じだと思う。

ところで、SWTってあれだけデザインパターンが多用されているEclipse API
のなかで、ぽつんと異質なものが混じってる感じなんだよね。
あと継承不可とかコーディング規約とか。エリック ガンマの本でも
SWTのとこになるとちょっと調子狂うし。あの部分だけ、
IBMから組み込み処理系を請け負っていたOTIが組み込み用に
別途作っていたライブラリを使いまわしたんじゃないかって気がする。
ってSwingの話じゃなくてすまん。
461デフォルトの名無しさん:05/02/09 19:20:19
じゃ、SWTは一時期薄いAWTのラッパとして存在したが、
異質でイビツなのでスルーでおk?
462デフォルトの名無しさん:05/02/09 19:25:19
まぁスルーでOKでそ。
463デフォルトの名無しさん:05/02/09 19:28:20
>>461 逆。IBMの一部処理系で、SWTをAWTで包んでいた。具体的には
Qt/motif/Win32/gtkをSWTでラップ、さらにその周りをAWTでラップ。
464デフォルトの名無しさん:05/02/09 22:53:41
まぁSWTも当時の出たばかりの勢いはないのは確かだな
Swingは立地クライアントで地味にのびてる
アプレットでもアプリケーションでもWebStartでもいいわけで
465デフォルトの名無しさん:05/02/10 01:37:23
1.4系統でJFrameの常に前面表示はできないでFA?
466デフォルトの名無しさん:05/02/10 02:28:59
NetBeans4.0日本語版リリースされた模様
これでJ2SE5のさらによくなったGUI(Swing)が組めるよ

5.0のWindowsLAFの出来のよさもすばらしい・・・
一番体感するところはJava2Dのアクセラレーションがきく描画かどうか
比較的意識しなくてもつかえるようになってるあたりか

J2SE5はGC時間も早いのですんげーべんりだな
467デフォルトの名無しさん:05/02/10 09:11:59
Swingが便利になったので、Javaでリッチクライアント作るのは楽勝でつか?
468デフォルトの名無しさん:05/02/10 10:44:15
Swingでここ3年ほどリッチクライアントつかってますが?
いまからなら1.4.2か5.0だと思うからデメリットはほとんどない

楽勝かどうかは腕次第だからなんとも
469デフォルトの名無しさん:05/02/10 11:55:08
めちゃくちゃ簡単、とか、超楽勝とか逝って、Java開発者を増やしてよ。
470デフォルトの名無しさん:05/02/10 12:09:53
SwingだろうがSWTだろうがDelphiだろうがVBだろうが、クライアントは楽勝じゃないなぁ。
細かい要望が多くて。
通信のタイミングとかも、考えるの大変だし。
471デフォルトの名無しさん:05/02/10 12:20:18
ユーザーの直接触れる部分であるからこそしっかりつくりたいところ
見た目で張ったりかましていればなんとかなるという親父もわりといる

俺はずっとクライアントサイドかいていたから慣れてるけど、WEBアプリが
流行ったのだってここ4,5年程度だし、その前はみんなC/Sだったし

実際のところWEBアプリのほうがあらゆるユーザーの挙動を考えると大変だよ
セッションなんてold世代にのこるから何も考えないとFullGC発生しやすいし
472デフォルトの名無しさん:05/02/10 13:01:13
>Delphiだろうが
>クライアントは楽勝じゃないなぁ。
これ恐ろしく楽勝だけど
473デフォルトの名無しさん:05/02/10 13:07:20
>>472
自分で考えて作るならどれも楽勝だと思うが
474デフォルトの名無しさん:05/02/10 13:15:23
>>471
そうそう、WEBアプリで良いものって面倒だよねー。

Javaで楽にC/Sなら、クライアントJDBC直接続?Java RMI?
XMLが無難なんだろうなー。
475デフォルトの名無しさん:05/02/10 13:40:16
C/SならJDBC直かと
3層式ならXMLを使うけどC/Sで業務でXML直接受けるDBってあまりきかない希ガス
476デフォルトの名無しさん:05/02/10 13:56:59
>3層式ならXMLを使うけど
やっぱ、インターネッツに出ちゃう場合は3階層が安心?
その場合はJavaにもXMLパーサーがあるからXMLが良いんだろうね。
477デフォルトの名無しさん:05/02/10 15:43:07
>>465
JNI使えばWindowsでは比較的楽に出来るよ。
478デフォルトの名無しさん:05/02/10 16:07:19
>>477
その状況で別OSでJNIのコール時点でエラーになるんだっけ?
それともJNI使うと、他OSで起動もしない?
479デフォルトの名無しさん:05/02/10 16:29:23
>>478
たぶん
1.動的ライブラリ読み込もうとする際にリンクできねーってエラーが出る。
2.それ(1.)を無視して続けるとJNIコールの時点でネイティブメソッドが見つからねーってエラーが出る。
480デフォルトの名無しさん:05/02/10 16:31:35
サンクス>>479
なら、Win用にてきとーに作っといて、ライブラリのロード周りをきっちり作れば無問題だね。

で、ポトペタの動作はJavaとDelphiとどう?
D2005でかなり動作重くなったし、イイ勝負かな?
481デフォルトの名無しさん:05/02/10 17:57:39
DLLやSOファイルは拡張子なしでロードするからそれぞれちゃんと用意していれば
まったく問題なく動く

また、ロードに失敗した場合の処理もトラップが必須になってるし
Windowsだけを考えてもそこの処理はちゃんとするものだろう

>>480
Delphiがいいというのは.NET前までだと思ってくれ
その後はもう別物

というかBCBやDelphiやってきた人にとってwindows.formsは操作感覚が非常に近い
Swingはまったく別物だけど、機能おっかけていけばこんなこともできるんだ、という感じで
機能の多さにびっくりするかもしれない
なんというかたとえるならオーナー描画の柔軟さがすべてのコントロールでできるとか
そういう感じ
482デフォルトの名無しさん:05/02/10 18:16:52
> DLLやSOファイルは拡張子なしでロードするからそれぞれちゃんと用意していれば
System.load(String) 使えばライブラリのフルパス指定もできるんだけどね。
483デフォルトの名無しさん:05/02/10 19:09:33
>>481
やっぱ、ヘジがいたDelphiは良かったけどいなくなったDelphiはよくないってことだね。
そして、ヘジがいなかったMFCは良くなかったけど、ヘジが入ったwindows.formsはいいってことだな。
484デフォルトの名無しさん:05/02/10 19:15:43
>>482
拡張しつきやフルパスだったらクロスプラットフォームが実現しにくいじゃないか
485デフォルトの名無しさん:05/02/10 19:49:50
>>483
そろそろDelphiスレか.NETスレ行ってくれ。
Swingとは関係ない話題だし、暇人が宗教論争をしかけてるようにも見えるし。
486デフォルトの名無しさん:05/02/10 19:53:08
Swingはヘジルスバーグのコンポーネントから非常に大きな影響受けてるわけだが。
487デフォルトの名無しさん:05/02/10 20:11:34
でも結局SwingほどのGUIライブラリはないやね
これ作ったやつ頭おかしーだろ(いい意味で)というくらいのライブラリだよな
488デフォルトの名無しさん:05/02/10 20:24:15
>>486
ヘジルスバーグのスレでも作ってそこで雑談しろ。
489デフォルトの名無しさん:05/02/10 22:46:05
ヘルシーハンバーグ
490デフォルトの名無しさん:05/02/10 22:58:44
ヘルシーハンバーグ食べながら雑談か。素敵だな。
491デフォルトの名無しさん:05/02/13 00:23:25
492デフォルトの名無しさん:05/02/13 01:28:01
しーざーちゃんはいいものだが、そのCSクライアントという流れからは
必要性が感じられないぞ
493デフォルトの名無しさん:05/02/13 01:55:23
SpringならSpringRCPかなんかが開発中だね。
494デフォルトの名無しさん:05/02/13 14:26:53
レイアウトマネージャー、最初は
勝手に位置、サイズかえてんじゃねーとか
思ってたけど、わかると便利だね
495デフォルトの名無しさん:05/02/13 14:37:54
>>494
だんだんJavaのGUIにはまってきてるわけですな
特にSwingのコンポーネントにはまると、もう抜け出せなくなるな
496デフォルトの名無しさん:05/02/14 01:49:37
質問なんですが、
Webブラウジングクラスってどうなんでしょうか?
ブラウザ作ろうかなって思ってるんですが…。
そこはSWTのBrowser クラス使うべきかな?





SwingのWebブラウジングクラスの名前忘れた。
SWTのBrowser クラスの名前も違うかも…orz
497デフォルトの名無しさん:05/02/14 02:17:25
>>496
JDIC のブラウザコンポーネント使えば?
http://jdic.dev.java.net/

javax.swing.JEditorPane もHTML表示できるEditorKit持ってるけど、
標準の奴はHTML3.2対応だしCSSも半分ぐらいしか実装してなかったと思う。
498デフォルトの名無しさん:05/02/14 08:42:59
>>494
それ、どう分かるのか教えてキボンヌ。だってここはSwingスレでそ。
499デフォルトの名無しさん:05/02/14 09:03:50
>>498
何が言いたいんだ?
500498:05/02/14 09:15:58
>レイアウトマネージャー、最初は 勝手に位置、サイズかえてんじゃねーとか 思ってたけど、

これは分かる。

>わかると便利だね

これ分からないから説明しる
501デフォルトの名無しさん:05/02/14 09:23:55
>>500
レイアウトマネージャ(の使い方)が分かると、
(nullレイアウトで絶対位置を指定するよりも)便利だね
という意味では?

それともお前にレイアウトマネージャの分からない部分があるということか?
それなら何が分からないのか質問しろ。質問せずに「説明しろ」はこたえようがない。
502デフォルトの名無しさん:05/02/14 09:27:01
>>500
>>494じゃないが、Javaのレイアウトマネージャになれると便利だよ
ってことだろう、ウインドウの大きさを変えても自分で計算することなく
座標や大きさを勝手に計算してくれるし、プラットフォームを変えても
レイアウトが崩れにくいとかあるんじゃないのか?
503デフォルトの名無しさん:05/02/14 09:27:01
>>500
つまり、お前の日本語を意訳すると、

レイアウトマネージャーは、勝手に位置、サイズかえて使いもんにならない。
レイアウトマネージャーは不要で、nullレイアウト最強。
はぁ?「わかると便利だね」?あんなもののどこが便利なのか教えてくれよ

ってことか?
504498:05/02/14 09:41:13
みんなボンクラ杉。

レイアウトマネージャーウィザードが居るんなら、
Swingエバンジェリストとしてレスすれば良いだけ。

大騒ぎして叩くことが良いことだと思ってるだろ。
ふつーに、静かにレスしる!
505デフォルトの名無しさん:05/02/14 09:53:47
>>504
他人に注意するなら自分も気をつけてもらいたいものだ
506デフォルトの名無しさん:05/02/14 09:54:11
GUIえぢた使ってると、NetBeansでもJBuilderでもEclipseVEのどれでも、SplitPaneの左側が使いにくくなる。(最悪アクセスできなくなる)
まぁGUIのほうでアクセスできなくても、ツリーのほうでPanel追加してサイズ指定してやればいいんだろうけど・・・

もう少しどうにかならんの?
507デフォルトの名無しさん:05/02/14 10:00:54
>>506
dividerLocationを変えておけばいいんじゃない?
508デフォルトの名無しさん:05/02/14 10:12:27
>>504
誰もたたいてないだろ。お前の質問の意図が分からないから
聞いているだけだろ。で分かったのか?
509デフォルトの名無しさん:05/02/14 10:26:29
レイアウトマネージャを使うことで、修正が楽だったりすることもある。
FlowLayoutでコンポーネント並べて配置していたとする。
「この隙間にもう1つコンポーネント追加」って場合に、普通に追加することで
影響のあるコンポーネントも勝手にずれてくれる。

nullレイアウトで、自力でキッチリ配置してた場合には、
他のコンポーネントの配置も自分でずらしたりしなければならなくて大変。
510498:05/02/14 10:37:27
>>509
あ、なるほどプログラムでレイアウト処理入れるの開発効率も仕上がりも落ちし、改善大変であきらめちゃったりするよね。

Delphiのコンポーネント形式の、Align=alNone/alTop/alBottom/alRight/alLeft/alClient/alCustomと、
AnchorsセットのakLeft/akTop/akRight/akBottom=true/falseのんが良くない?
511デフォルトの名無しさん:05/02/14 12:12:54
うーん、それでJavaのレイアウトマネージャーと同じことができるとは思わんのだが。
それよりDelphiのActionListだったかなんだったかが欲しい。
512デフォルトの名無しさん:05/02/14 12:18:00
>>510

>Delphiのコンポーネント形式の、Align=alNone/alTop/alBottom/alRight/alLeft/alClient/alCustomと、
>AnchorsセットのakLeft/akTop/akRight/akBottom=true/falseのんが良くない?

Delphi知らないんで教えて欲しいが、これはどういうレイアウトをしてくれるんだ?
上部とか下部にぴっちりおくというのであれば、BorderLayoutのNORTHとかSOUTHで指定する。

>それよりDelphiのActionListだったかなんだったかが欲しい。
これもなにをしてくれるもんなんだ?
513デフォルトの名無しさん:05/02/14 12:24:55
>>511
よく知らんが、AbstractActionとjava.util.Listではだめ?
使い勝手はIDEの差によるものだと思うが。
514デフォルトの名無しさん:05/02/14 16:57:56
>>511
いやいや、レイアウトマネージャで全体設定するよりも、
コントロール1個1個が空気嫁んで場所移動したり大きさ変えれば良いんでわないかと。
515デフォルトの名無しさん:05/02/14 17:29:15
>>514
コントロール自身が、自らの配置を決めるような仕組みの場合、
他のコンポーネントの影響を考慮しづらいのでは?単純な配置しかできなくなりそう。

「コンポーネントAのサイズがでかくなったから、Bのコンポーネントの位置がずれる」とかは、
BがAのサイズ変更を受けて行なう仕組みではなく、
やっぱり全体管理するレイアウトマネージャーがやるべきだと思う。

面倒だけど、GridBagLayoutなんかは、コンポーネントそれぞれに
詳細なConstraintsを設定することで、意図を満たしているのでは?
詳細すぎて面倒くさいけど。
516デフォルトの名無しさん:05/02/14 17:58:04
>他のコンポーネントの影響を考慮しづらいのでは?単純な配置しかできなくなりそう。
これが間違いであることをDelphiアプリが証明している。
Panelの上にPanel貼りまくりだけどね。

>やっぱり全体管理するレイアウトマネージャーがやるべきだと思う。
”やっぱり”の結論しか出せないなんて頭カチカチだね。
517デフォルトの名無しさん:05/02/14 18:09:35
>詳細すぎて面倒くさいけど。

これだと、
>プログラムでレイアウト処理入れるの開発効率も仕上がりも落ちるし、
>改善大変であきらめちゃったりするよね。
といった要求を満たさない。
518デフォルトの名無しさん:05/02/14 18:17:01
>>516
単純な配置しかできなからPanelの上にPanelを貼りまくることになるのでは?
まぁ、それが悪いと言うわけではなく
>他のコンポーネントの影響を考慮しづらいのでは?単純な配置しかできなくなりそう。
が間違ってるかどうかというだけの話だけどね
519デフォルトの名無しさん:05/02/14 18:19:49
>>517
テキストエディタを使ってる人はGridBagLayoutを使わずに
別のLayoutを使うだけの話では?
520デフォルトの名無しさん:05/02/14 18:26:04
>テキストエディタを使ってる人は

これダメダメじゃん。GUIはGUIでポトペタとエディタでの修正と両方出来ないと。
521デフォルトの名無しさん:05/02/14 18:27:02
>>他のコンポーネントの影響を考慮しづらいのでは?
>>単純な配置しかできなくなりそう。
>が間違ってるかどうかというだけの話だけどね

複雑なGUIの場合Del/VCLが最強。
522デフォルトの名無しさん:05/02/14 18:32:25
>>520
ここで突っ込んでもしょうがない、その人に直接言わないと意味ないよ
523デフォルトの名無しさん:05/02/14 18:35:04
>>521
なんか関係の無い引用してないか?
しかも、思いっきりスレ違いじゃないか
524デフォルトの名無しさん:05/02/14 18:57:13
>>523
レスの流れなのにスレ違いと指摘とは、藻舞こそレス間違い。
525デフォルトの名無しさん:05/02/14 19:07:13
何が優れてるかなどと言ってないのに最強だというのが
レスの流れか
いくらなんでもそんな釣りは無いだろう
526デフォルトの名無しさん:05/02/14 19:23:38
Swing/レイアウトマネージャ vs VCL/Align & Anchors
の流れだよ。
527デフォルトの名無しさん:05/02/14 19:29:45
>>516
>>他のコンポーネントの影響を考慮しづらいのでは?単純な配置しかできなくなりそう。
>これが間違いであることをDelphiアプリが証明している。
>Panelの上にPanel貼りまくりだけどね。

「GUI全体で複雑に配置できない」という意味ではなく、レイアウトとして単純なものしか実現できないという意味でした。
複雑なレイアウトマネージャ使わずに、BorderLayoutみたいな
単純なレイアウトマネージャをPanel重ねまくってやるのはダメかい?

>>やっぱり全体管理するレイアウトマネージャーがやるべきだと思う。
>”やっぱり”の結論しか出せないなんて頭カチカチだね。

カチカチか。すまん。なぜ、”やっぱり”かと思ったかというと、
その前のほうに書いてあったように、あるコンポーネントのサイズが決まるのは、
他のコンポーネントの影響も受けるわけだ。
となると、影響を受けあうコンポーネント同士の配置を決めるのは、
コンポーネントを保持しているコンテナがその役割を担うべきで、
コンポーネントがする仕事ではないと思ったから。

考え方を変えれば、DelphiのPanelの場合は、
レイアウトマネージャに相当するものが1つだけあって、各コンポーネントに対して、
>>510のようなConstraintsを設定可能なモノとも思えるのではないかと。
528デフォルトの名無しさん:05/02/14 19:34:37
>>527
レイアウトマネージャはPanel(の拡張バージョン)として使える、という意味?
529デフォルトの名無しさん:05/02/14 19:36:32
>>528
というかJPanelというのがSwingにある
530デフォルトの名無しさん:05/02/14 19:38:33
>>529
自分が使ってたときはペイン(Pane?)てのしか無かった気がするが、Java2で増えた?
で、Delphi並みにポトペタできるようになった、と?
531529 != 527:05/02/14 19:49:14
>>530
Delphiを使ったこと無いからわからんが、多分Delphiよりめんどいだろうね
このスレでポトペタを検索すれば、その感想とかでてるから見てみたら?
532デフォルトの名無しさん:05/02/14 19:53:17
多少めんどくても良いけど、
レイアウトマネージャとJPanelを何層もネスト出来るんなら、
逝こうできそう。
(リッチクライアント作りたいので)
533デフォルトの名無しさん:05/02/14 19:56:13
> 自分が使ってたときはペイン(Pane?)てのしか無かった気がするが、Java2で増えた?
Java2になった後は触ってないのか……
534デフォルトの名無しさん:05/02/14 19:56:45
つかパネルばっかりになって発狂しそうだよ('A`)
535デフォルトの名無しさん:05/02/14 20:01:55
>Java2になった後は触ってないのか……
Java2でレイアウトマネージャが良くなったということ?
536デフォルトの名無しさん:05/02/14 20:12:52
Javaのレイアウトマネージャは特定のコンテナ部品が提供する機能ではなくて、
コンテナごとに設定されているもの、だということを理解していない人がいる
ように見える。
537デフォルトの名無しさん:05/02/14 23:09:56
>>512
>>それよりDelphiのActionListだったかなんだったかが欲しい。
>これもなにをしてくれるもんなんだ?

ボタンとかメニューとかのテキスト・アイコン・使用不可・イベントをまとめてくれる。
ボタンとメインメニューとサブメニューで同じ項目があるときに、テキストとかイベントとか、まとめれて非常に便利。
538デフォルトの名無しさん:05/02/14 23:25:00
Delphiが最強だろうがそうでなかろうがどっちでもいいんですが、
Delphiでの配置の仕方に似ているSpringLayoutというものもSwingには存在します。

新しめのレイアウトなんで知らない人も多いかと思いますが。
539デフォルトの名無しさん:05/02/14 23:27:24
>>537
javax.swing.Actionと機能的に何が違うの?
540デフォルトの名無しさん:05/02/14 23:58:43
>>539
>>513の通り、ActionとListを組み合わせた不可視コンポーネントのようなもんだろうか。
ActionListをペタッと貼り付けて、ダブルクリックすると、Actionの一覧が表示された
ダイアログが出てきて、追加、編集、削除とかできると。
Delphi使ったこと無いから知らんけど。
541496:05/02/15 00:01:04
>>497
レスthx!

亀レス、スマソ。
542デフォルトの名無しさん:05/02/15 00:23:37
いまどきJava2で・・・といわれてもな
もうJava2がでて何年たってるとおもうんだよ

俺はBCBもDelphiもJavaもやってるからわかるが、
DelphiやBCBはやはり方向的にはVBのように絶対座標でナンボの世界だよ
Windowsだけを意識していればいいので問題は少ないけど、DPIまわりでこけることも多少。

ただ、Swingに一番ほしかったのはDelphiやBCBのクライアントウインドウプロパティかと
特定のサイズにするのにJPanelをトップレベルに貼り付けてpack()とかinsets指定とか
とっつきわざと悪くしているだろうと思われ

デフォルトレイアウトもVBユーザー取り込むならNullでもよかったんじゃないかと

俺はnullレイアウトはもう5年ほどつかってねーけどな
543デフォルトの名無しさん:05/02/15 00:26:19
なんかよく分かってない人がいるようなんで書いとくが、Swingのレイアウトは
JPanelごとに指定できる(というかそうするもん)。一つ一つは単純なレイアウトだが、
JPanelを組み合わせて複雑なレイアウトを作る。

NORTHにJPanelはりつけて、そのJPanelにはFlowLayoutを適用すれば、画面上部に
ボタンを並べる領域を作れる、とか。当然このJPanel内にさらにJPanelを組み込むこと
もできる。

GridLayoutでまとめてやる手もあるが、まずはパネルの組み合わせで組み立てられな
いか考えたほうが早いな。
544デフォルトの名無しさん:05/02/15 00:28:22
GUIツールとか使ってみればすぐわかると思うが、
パネル(コンテナ)1つに対して、レイアウトマネージャを1つ設定できる。
#これってJava2以前から変わってないと思うが??

CotentPaneにBorderLayoutを設定して、
NORTH、CENTER、SOUTHにJPanelを1つずつ配置。
NORTHに配置したJPanelはFlowLayoutに設定して、横にボタンを並べて配置。
CENTERのJPanelは、またBorderLayoutを設定して...
545544:05/02/15 00:30:33
レスが、かなりかぶってしまった。
546デフォルトの名無しさん:05/02/15 00:35:15
面白いかぶり方だな
547デフォルトの名無しさん:05/02/15 00:52:34
レイアウトマネージャわからんやつはとにかくNetBeansとかでぺたぺたはりつけて
プロパティいじって挙動を把握してあらゆるGUIがこれだけで作れると確信するところまで
いければ万々歳

理解できないならプログラマやめたほうがいいかも
548デフォルトの名無しさん:05/02/15 02:19:38
NetBeansでNullLayoutでペタペタして、気が済むまでレイアウト調整したらGridBagLayoutに変更。
これ。
549デフォルトの名無しさん:05/02/15 02:30:24
>>548
それってきっちりできるの?
微妙な1ピクセルのずれなんかを、内部余白使ってGridBagLayoutで正確に
再現されたらかえって面倒だと思う。

nullレイアウトのままではなく、そこからGridBagLayoutに変更することで、
どんな利点があるのか?また修正するときはnullレイアウトに戻さないとできないんじゃないの?
nullレイアウトを使わずに、レイアウトマネージャを使えばいいってもんではないと思う。
550デフォルトの名無しさん:05/02/15 07:37:20
自分もNetBeansでレイアウトを考えるけど、
あるていどレイアウトのアイデアが固まったら、
GridBagLayoutを使って作り直す。
もしかしたら548が言いたかった事と同じことかも。
551デフォルトの名無しさん:05/02/15 09:18:08
一旦GridBagLayoutになっちゃったら、もう手直しし難くなることない?
画面てドラスティックに変えたいじゃん。
552デフォルトの名無しさん:05/02/15 09:45:22
>>551
初めからGridBagLayoutで作っておけば、
このコンポーネントは、gridx=1, gridy=2にあって gridwidth=2で...
ってある程度、ある程度見た目どおりに設定できるが、
nullレイアウトから、変換した場合、微妙なズレのせいで、x,yがずれてしまうしまい修正は難しいと思う。
JBuilderでやったときはそうだったけど、NetBeansはそうじゃないのか?

単にnullレイアウト使うのを避けてるだけで、
レイアウトマネージャーを使っている意味ないと思うが。
潔くnullレイアウトのままのほうが、まだ修正可能でよい気がする。
553デフォルトの名無しさん:05/02/15 09:47:46
GridBagLayoutはNetBeansであっても後々の修正が面倒なので俺は使わない
組み合わせでやったほうがはるかに楽
554デフォルトの名無しさん:05/02/15 10:02:06
じゃぁ、Swingがダメとは言わんが、レイアウトマネージャという代物はダメダメじゃん。
555デフォルトの名無しさん:05/02/15 10:10:28
>>554
まぁ、GridBagLayoutをあまり使いたくないと言う人もいるわけですよ
GridBagLayoutを使いたくなかったらBorderLayout、FlowLayout
、GridLayoutを組み合わせればいいんです、多分。
556デフォルトの名無しさん:05/02/15 10:22:08
ぼーだーとぼっくすとふろーの3つですべての画面つくってま
557デフォルトの名無しさん:05/02/15 12:12:13
>>556
その辺が分かりやすくて妥当。1.4からになるけど、SpringLayoutも覚えて損はない。
558デフォルトの名無しさん:05/02/15 12:16:30
ひょっとして、レイアウトマネージャを満足に使えない人って、
1つのコンテナの1つのGridBagLayoutで全体のレイアウトを
やろうとしてるんじゃないだろうか……。

559デフォルトの名無しさん:05/02/15 12:21:30
>>558
>レイアウトマネージャを満足に使えない人
は、GridBagLayoutの使い方すら知らんって。
デフォルトのレイアウト(FlowLayoutやBorderLayout)のまま使って、
「どうやってサイズ変えるんだよっ!使えねー!」
って思ってるのさ。

>1つのコンテナの1つのGridBagLayoutで全体のレイアウトを
それはそれで、そんなに間違ってないと思うけど。
それができるのがGridBagLayoutで、
単純にHTMLのTABLE程度の配置だったら、GridBagLayout1つで済ませちゃうよ。
560デフォルトの名無しさん:05/02/15 17:17:46
Panelは少ないほうが軽くなる?
561デフォルトの名無しさん:05/02/15 18:26:18
そりゃ、JavaVMが利用するウィンドウシステムに依るだろ。
562デフォルトの名無しさん:05/02/15 23:06:33
GridBagLayoutが使えてレイアウトマネージャが満足に使えない人って、なかなか特異だな。
563デフォルトの名無しさん:05/02/15 23:12:55
GridBagは修正が入ると目も当てられないので使わない方向で
564デフォルトの名無しさん:05/02/16 00:18:27
GridBagLayoutって便利だと思うけどな。
GridBagで修正が大変ってレベルまで変更を強いられるのは
クライアントと事前の打ち合わせができてないだけじゃないの?
565デフォルトの名無しさん:05/02/16 00:47:54
俺は割とGridBagLayout好きだけど、コントロール1つ1つにgridx, gridYを指定していることが、
後の修正を困難にしていると思う。
RELATIVEとか、REMAINDERを使えばいいのか。(使ってなかった)
566デフォルトの名無しさん:05/02/16 01:20:14
ところで、NetBeansじゃない人はGridBagLayout使うのにどうやってるの?
JBuilderにはなんかいいツールついてる?
567デフォルトの名無しさん:05/02/16 02:00:27
ソースコード手書きで・・・。
568デフォルトの名無しさん:05/02/16 02:06:44
>>557
SpringLayoutが追加されていたの知らなかった・・・。
さらっとAPIを読んだだけだけど、
簡単なダイアログを作ったりするのには便利そう。
569デフォルトの名無しさん:05/02/16 02:20:15
>>566
紙にレイアウトのイメージを書いて、それ見ながらテキストエディタのテンプレート
と入力補完つかってゴリゴリと。
570デフォルトの名無しさん:05/02/16 04:51:44
>>566
eclipse+VE

地震で目が覚めたよ・・・(こんなこと書いてる場合じゃないが)
571デフォルトの名無しさん:05/02/16 08:04:59
GridBagLayoutは手書きしたくないなぁ。
572デフォルトの名無しさん:05/02/16 09:26:56
>>564
>GridBagで修正が大変ってレベルまで変更を強いられるのは
>クライアントと事前の打ち合わせができてないだけじゃないの?
こういう考え方ヤだな。
大幅に変更する必要があったら、スルんだよ。
クライアントがどうこうじゃなくて、
逆にパッケージだと先行開発であって承認クライアントが居ないわけだし。
だから、画面は大幅変更の可能性がある、という前提じゃないと。
逆に、データ構造は何があっても大幅変更が無いように設計しとく、と。
573デフォルトの名無しさん:05/02/16 10:10:04
>>566
NetBeansの指定方法を知らないから、逆に教えて欲しいけど、
JBuilderは、普通に置く場所でgridx,gridyが決まったり、
つまんで伸ばしたりできる。あとConstraintsを設定するダイアログがある。
ダイアログで設定するのが、無難で確実なんで俺はそれを使っている。
Eclipseも似たような感じだった。

>>571
でも手書きでもあるi程度、楽できるようにはなっていると思う。
GridBagConstraintsは、1つ1つインスタンス生成しなくても、使いまわしできるし、
REMAINDER使って、改行しながら配置するってのも簡易的だ。
574デフォルトの名無しさん:05/02/16 10:24:49
>>572
単に設計が甘いだけでしょ。

画面全体をひとつのGridBagLayoutにまとめるとか無謀なことしなければ
困ること無いでしょ。
それでも困るほどの修正なら作り直した方が早いんじゃないの?
575572:05/02/16 10:34:40
>>574
実例を書いたんでなくて、上記の考え方を否定しただけなんだが。
冷静に読んで貰えば納得できるないようだと思うが。
576デフォルトの名無しさん:05/02/16 12:31:32
GridBagLayoutの使い勝手の話をしてるんじゃないの?
画面の修正の是非なら、必要なら修正するに決まってるでしょうが。

修正が大変だから使いにくいという前に利用方法・範囲の見直しや
事前に設計をよく練るなど利用する側にも工夫が必要だと言ってるだけなんだが。
何か変なこと言ってるか?
577デフォルトの名無しさん:05/02/16 12:51:22
修正が入るのを念頭において開発するという場合影響範囲を少なくするために
パネルで区切るなら、最初からGridBagLayoutつかわないほうがいい

何か変なこと言ってるか?
578デフォルトの名無しさん:05/02/16 13:07:43
>>577
>画面全体をひとつのGridBagLayoutにまとめるとか無謀なことしなければ
>困ること無いでしょ。

と、書いてあるんだが。意味が分からないの?

あんたの文章を読んで(あんたが)GridBagLayoutが使えない訳も
よく理解できた。まあ、好きにすればいいよ。

579デフォルトの名無しさん:05/02/16 13:08:35
へんなのがわいてるな
580572:05/02/16 13:37:18
RADとレイアウトマネージャやAlignとの相性とか考え方話してるのに、
GridBagLayoutを前提に、大騒ぎして叩くことに必死になる変なのがわいたなー。
581釣りだよね?:05/02/16 14:09:10
大漁だな>>572

て書こうと思ったが,どうやら本気で書いてるのか...
572の勝手な想定と激しい思いこみなんて誰の参考にもならないので消えてよね。

582572:05/02/16 14:10:36
>>581
大騒ぎして叩くのに必死な香具師は要らないというのが読めないのか?
583デフォルトの名無しさん:05/02/16 14:34:45
クスクス
584デフォルトの名無しさん:05/02/16 14:48:01
>>556
WMPのスキンのファイルとか見ると
レイアウトマネージャ自体が重量コンポーネント時代のなごりのようだな
585デフォルトの名無しさん:05/02/16 15:02:39
じゃ、これからJavaの人はレイアウトマネージャ無視しておk?
586デフォルトの名無しさん:05/02/16 16:44:51
>>581
改めて見直したら>>574がつりな様な気がしないでもない
でも、他のレイアウトは文句は出ないけど、Gridbagだけはまぁ昔からいろいろとあるな

>>584
レイアウトマネージャが必要な場合の用件とお手軽スキンで遊ぶ用件とでは求めるものが違う
OSによってDPIが違うし同じWindowsであっても絶対座標は危険

>>585
さすがに無視は無理
VBあがりでプラットフォームが開発OSと運用OSとまったく同じならいらないかもしれんが
XPと2000ですらかなり違うしなぁ
587デフォルトの名無しさん:05/02/16 21:46:40
>564 は理想論。
>572 は経験から言っている実際論者。
どっちも正しいんだけど、自分的には >572 のほうが実社会に則したレスだと思う。
588デフォルトの名無しさん:05/02/16 22:28:18
スレが伸びてると思ったら・・・orz
コーダーとプログラマの視点の違いってやつか。
普段どういう相手と仕事してんだよw予算とかw
まあそろそろスレ違いなんでこのへんで終わりって言うことで。
589デフォルトの名無しさん:05/02/16 23:31:32
実は全然わからなくてみてたんだけど、
590デフォルトの名無しさん:05/02/16 23:32:16
ごめんなさい、589の続きはコーダーとプログラマってどうちがうの?
591デフォルトの名無しさん:05/02/17 00:15:56
コーダーは仕様どおり打ち込むだけ
プログラマは創造するとでも言っておくか。
592デフォルトの名無しさん:05/02/17 00:16:52
コーディングとプログラミングの違いだよね?
コーディングはほんとに書くだけ。
プログラミングはクラス設計も含めて。

要するに使えないPGと使えるPGの違いってことか?

実は俺もよく知らんw
誰かまともなレスキボン
593デフォルトの名無しさん:05/02/17 00:34:00
>>590
人に聞く前に調査する。
クライアントとはよく話し合う(顧客がDQNでも、短納期でも、低予算でもやりかたはある)。
きちんと設計してから開発に取り掛かる。

これを理想論とかいってる間はコーダー(=ソルジャー)から抜け出せないよ。
先ずはググってみ。
594デフォルトの名無しさん:05/02/17 00:40:44
いやコーダーとプログラマというより、プログラマとSEなんじゃないか?
XPなのかウォーターフォールなのかによっても違うし。いずれにしても
議論としては不毛だと思う。どういう仕事分担なのかによって違うことだし。

ただレイアウトを決める行程が現状あいまいだという問題意識は重要だと思う。
GUIアプリのGUIデザインとかWEBアプリのHTMLデザインって誰の仕事なのか
わかりにくいことがある。WEBアプリだとWEBデザイナが入ってくることがある
けど、GUIデザインはねぇ。
595デフォルトの名無しさん:05/02/17 02:01:18
NetBeansのAbsoluteLayout最高!!
596デフォルトの名無しさん:05/02/17 10:29:58
NetBeansの評判の良いGUI設計がどんなもんかと、インストールしてみた。
Forteの時に一度使って、速攻消した覚えが歩けど、
想像以上に軽くてびっくりしたよ。Eclipseばっかり流行っているけど、
NetBeansも捨てたもんじゃないとおもった。

GUI設計の部分もクセがなくて、気に入った。
コード記述する部分は、ダサい。
スレ違いすまん。しばらく使ってみます。
597デフォルトの名無しさん:05/02/17 10:58:02
>>596
NetBeansでGUI作って、Eclipseでコーティングする人はうちにも結構いる。
598デフォルトの名無しさん:05/02/17 11:04:22
NtBeansはJComponentsを継承したクラスをクリップボードにコピーして
GUIエディット画面ではりつけれるのが便利
599デフォルトの名無しさん:05/02/17 13:41:15
>>586
WMPよりお手軽じゃないあなたのソフトの用件が気になるが
もうSwingはSynthで敗北宣言したじゃないか
レイアウトマネージャは実装の詳細に使うものだ
ボックス以外はいらないよ
600デフォルトの名無しさん:05/02/17 13:49:46
>ボックス以外はいらないよ
釣れますか?

Synthも含めてSwingだし、レイアウトマネージャが要らないということとは別次元かと
601デフォルトの名無しさん:05/02/17 14:50:07
Synthって何だ?
それがあると、レイアウトマネージャレスで逝けるかい?
602デフォルトの名無しさん:05/02/17 15:23:34
SynthってXMLでSwiingのL&F作れるやつじゃないの?
603デフォルトの名無しさん:05/02/17 17:18:27
わかりやすくいえばスタイルシートのようなものだな
604デフォルトの名無しさん:05/02/17 17:51:54
HTMLのtableタグが書かれたXMLファイルを元にGridBagLayoutを設定して
レイアウトしてくれるパネルを作ったんだけど、自分で言うのもなんだけど便利です。
tdタグとGridBagConstraintsが対応して、こんなメリットがあります。

・X, Y座標を直接書かなくていいんで、間にコンポーネント追加しても変更点が少なくて済む
・tableタグの入れ子構造に対応してるので一つの設定ファイルで細かいレイアウトまでできる
・コードとレイアウト情報を分離できる
・設定ファイルをHTMLとしてブラウザで表示するとレイアウトが見れてちょっと面白い

GridBagLayoutを理解していて、直書き派の人には向いてるんじゃないかと。
ドキュメント書くの面倒で公開してなかったんですが、試してみたい人います?
605デフォルトの名無しさん:05/02/17 21:10:35
>>603
それをいうならXAML,XULでしょ。
606デフォルトの名無しさん:05/02/17 21:42:17
「スタイルシートのようなもの」ってのが誰でも理解しやすく一番手っ取り早い
たとえばラベルのフォントとか色サイズなどをコードの中ではなくXMLの中にかいておくわけだから
もちろん、コードの中にそのボタンとかラベルとかを今までどおりに配置していく

あくまでも独自LAFを作るためのものだよ
607デフォルトの名無しさん:05/02/17 21:50:56
>>606
マジで?スマン。XMLの例見て勘違いしてた。
XMLからGUIを生成するわけではないのね。。。
>>605は無視してください。
608デフォルトの名無しさん:05/02/17 22:38:18
609デフォルトの名無しさん:05/02/17 22:44:58
レイアウトマネージャの話になぜSynthが出てくるのか分かっていない私。
610デフォルトの名無しさん:05/02/18 00:10:38
すべては>>599が振った話
レイアウトマネージャとLAFは直接的には関係ないかな
611デフォルトの名無しさん:05/02/18 00:18:02
WinXP上でのUIManagerのデフォルトってクラシックスタイル?
なんか俺の目が悪いせいか、そう見えるんだが…。

まぁいいか。
612デフォルトの名無しさん:05/02/18 00:20:26
1.5で使ってるがXPスタイルになってるよ。
1.4はワスレタ。
613611:05/02/18 00:24:39
>>612
即レスd。

じゃあ1.4なんでクラシックってことか。
なるほど。
ここでさらなる疑問。

NetBeans入れてるんだが、
なぜこいつは、

XP ス タ イ ル な ん だ ?

まぁ、いいか。
614デフォルトの名無しさん:05/02/18 00:50:54
1.4.2からはXPスタイルがデフォ
1.4.1まではダメ

クラシックスタイルに変えたいときは
http://shin.cside.com/product/javatips.htm
見る限りプロパティだけでいいっぽい
615611:05/02/18 01:20:47
>>614
d。

やっぱりSwingerに悪い香具師はいないな。

また何かあって解決できないときはヨロ。
616デフォルトの名無しさん:05/02/21 10:36:26
色んな意見が出たところで、レイアウトマネージャとJPanelの使い方の必勝パターンを整理してWikiしる。
617デフォルトの名無しさん:05/02/21 12:38:52
必勝パターンが存在すればいろんな意見がでることもないだろう
618デフォルトの名無しさん:05/02/21 12:45:51
BorderLayout、FlowLayout、BoxLayoutの組合せでレイアウトすること。
以上
619デフォルトの名無しさん:05/02/21 13:31:08
GridBagLayoutによる作り直しのメリットは軽いから?
最近のVM上でも重要なメリット?
620デフォルトの名無しさん:05/02/21 23:31:11
>>618
ゲラ
621デフォルトの名無しさん:05/02/21 23:31:24
>>618
俺のDOPかとおもた
622デフォルトの名無しさん:05/02/21 23:37:29
粘着君がいんしたお。
623デフォルトの名無しさん:05/02/22 00:17:37
いつものごとく618よりいいワザを誰も披露できないという
624デフォルトの名無しさん:05/02/22 00:43:58
実際その組み合わせで不満ないからな
625デフォルトの名無しさん:05/02/22 01:02:45
実際問題としてレイアウトを組み合わせるのが通常の使い方だろ。
626デフォルトの名無しさん:05/02/22 01:40:19
GridLayoutを使ってた。
627デフォルトの名無しさん:05/02/22 07:57:45
適材適所で使い分ければ良いだけ。
どういう画面を作りたいかも示さずにレイアウトマネージャの話をしても意味無し。
628デフォルトの名無しさん:05/02/22 10:50:55
618のワザって、レイアウトマネージャの中にレイアウトマネージャとネスト?
629デフォルトの名無しさん:05/02/22 12:21:51
>>628
技ってほどのことでないだろ。
パネル(コンテナ)とレイアウトマネージャは1:1
BorderLayoutのパネルを1枚。 この上に、
 ・NORTHの位置に、FLowLayoutのパネルを1枚。
 ・CENTERの位置に、BoxLayoutのパネルを1枚。
 ・SOUTHの位置に、FlowLayoutのパネルを一枚

レウアウトマネージャの中っていうかパネルを重ねるの
630デフォルトの名無しさん:05/02/22 13:23:43
628みたいなのって、やっぱりレイアウトマネージャと
コンポネントの区別が付いてない予感。
631デフォルトの名無しさん:05/02/22 13:57:35
divとpanelって似てない?
似てないか。
632デフォルトの名無しさん:05/02/22 13:57:42
JComponentを継承して新しいコンポーネントを作ってるんだけど
JScrollPane(JViewport)での描画領域を自分で作ったコンポーネントで
知るにはどうしたらいいの?
ChangeListenerを使って外部のJViewportから教えてもらうしかないの?
633デフォルトの名無しさん:05/02/22 15:15:06
>>632
詳しい仕様が良く分からないけど、
その独自コンポーネントの仕様は、JScrollPaneに依存するという前提なの?

依存するという前提ならば、JScrollPaneの参照持つ(必要なときに取得する)とか、
Listener追加する(常にJScrollPaneから通知してもらう)とか、好きにして良いと思う。
そうでないとしたら、その独自コンポーネントの仕事じゃないと思う。
634デフォルトの名無しさん:05/02/22 15:34:45
>>630
コンポネントつーか、コンテナね。
635628:05/02/23 11:16:39
わかりました。
レイアウトマネージャと言えどJPanel等と対であって、
JPanel貼ってその中にJPanel貼って、と等価と。

つまり、DelphiのAlignとPanelの方が最強。
636デフォルトの名無しさん:05/02/23 11:44:35
はぁ?
まあ自分が最強と思ってるんならそれでいいけど。
637632:05/02/23 11:54:17
>>635
つまり、自分がDelphiしか使えないからDelphi最強と言って、
使いこなせないJavaを否定したいわけか
638デフォルトの名無しさん:05/02/23 11:54:37
Swingは軽量コンポーネントだから、パネル何枚貼っても
ネイティブウィジットを消費しないし、それでOKだと
思うんだが、なにが気に入らないんだろ。
639デフォルトの名無しさん:05/02/23 11:56:17
Delphiなんかと同等だと思うけどな。
Delphiの場合
 ・Alighなんかが指定できる唯一のレイアウトマネージャがある
 ・それしか選べないからレイアウトマネージャという概念は使わない
Swing/AWTの場合
 ・シンプルなレイアウトマネージャや、複雑なレイアウトマネージャが色々ある
 ・パネル(コンテナ)単位でどれを使うか選べる。
 ・Delphiと同じようなレイアウトマネージャはない(作ることは可能)
640637:05/02/23 12:00:21
632じゃないよ、名前欄間違えてるorz

>>632
Listenerでいいと思うんだが、何かだめなのか?
641デフォルトの名無しさん:05/02/23 12:07:11
Delphiのalignって所詮ボーダーレイアウトと同じじゃないの?
642639:05/02/23 12:10:06
>>641
> Delphiのalignって所詮ボーダーレイアウトと同じじゃないの?
俺も詳しく知らないんだけど、昔使ったときは、そんなもんだと思ってた。
実際のところ、Delphiのレイアウトはどんなもんなんだ?
643632:05/02/23 19:07:27
>>633,640さんありがとうございます
使い道が限られてるものなのでJScrollPaneに依存させて、Listenerで通知してもうらことにしました
644デフォルトの名無しさん:05/02/23 19:37:46
MMOを作ろう!企画を立ち上げました。協力できる人はこちら
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm
645デフォルトの名無しさん:05/02/24 00:13:06
>>644
スレ違いだが、まとめ役が妄想厨で
スタッフ集めて自分の欲しいものを作ってもらおうってやつか。
途中でアボンするのが目に見えてるな
646デフォルトの名無しさん:05/02/24 14:24:24
Swing でMSNのようなメッセンジャー(家庭内LAN内オンリー)を作りたいのですが、
参考になるHPは無いでしょうか。浅煎り珈琲は読みました。
647デフォルトの名無しさん:05/02/24 14:58:43
>>646
通信部分はSwingとは関係ないし、Swingを使ったGUIの知識はメッセンジャーに限定されない。
Javaで通信する方法と、Swing一般を調べればいいんじゃないかな?
648デフォルトの名無しさん:05/02/24 15:58:26
>>647
ありがとうございます。Swing 一般は独自に勉強する事にします。
NetworkもCではSocketプログラミングは触っていたのでこれも独自に
勉強してみます。ただ、基本を学んでそれを応用に、という点で
不安が残ります。

HPももう少し自分で探してみます。
(もし)どこかご存知の方いらっしゃいましたら教えて下さい。
649デフォルトの名無しさん:05/02/24 21:01:49
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html

ここ、調べものする時によく使う。
650デフォルトの名無しさん:05/02/26 01:08:59
>>641
Delphiのレイアウトはalignじゃなくてanchorじゃないかな。
651デフォルトの名無しさん:05/02/26 09:28:44
>>628はalignといってるからなぁ
652デフォルトの名無しさん:05/02/28 09:41:31
DelphiというかVCLにはalignもanchorもあるから強いんじゃない?
653デフォルトの名無しさん:05/02/28 10:53:49
まぁ、Delphi自体が強いか弱いかという問題は別としてね。
654デフォルトの名無しさん:05/02/28 12:05:42
盲目的に GridBagLayout でせっせと並べてたけど
確かに drastic な変更には対応しづらいものがありますね。

でもまぁ、その時はその時で、かな。どっちみち辛いし。
655デフォルトの名無しさん:05/02/28 12:41:21
>>654
俺は、GridBagLayoutも便利だから、それじゃないと困るところでは使うべきだと思う。
ただ、GridBagLayoutがどんなレイアウトでも出来るからといって、これ1つで画面全体を
レイアウトしてしまうと、変更に弱いからしない。
GridBagLayoutで簡単にできることを、無理に使わずにやるのも無駄。
当たり前だけど、基本は、>>618の組合せで、
必要に応じてその中にGridBagLayout付のパネルも組み込まれるっていうのがいいと思う。

あなたの名前:[       ]  email:[        ]
住所:      [                      ]
電話番号:   [       ] Fax: [         ]

AAだとうまく表現できないけど、こういうレイアウトが、GridBagLayoutの得意分野と思う。
656デフォルトの名無しさん:05/02/28 12:57:44
ようするに、HTMLのテーブル。
657デフォルトの名無しさん:05/02/28 13:15:49
>>655
それって>>618の組み合わせでいいじゃない
boxで縦に並べて横方向へはflowやboxで
658デフォルトの名無しさん:05/02/28 13:34:05
>657
力点置かれてるのは
> GridBagLayoutで簡単にできることを、無理に使わずにやるのも無駄。
この部分だと思います。
GridBagLayout なら 1 Panel で出来るけれども
組み合わせ使うとその分複雑になると言うことで。

もちろん、使いやすいと思うほうを使えば良いわけですが。
659デフォルトの名無しさん:05/02/28 14:07:56
これから swing はじめようと思っていたのだが、
AWT というやつはあらかじめ習得しておく必要があるのですか?
660デフォルトの名無しさん:05/02/28 14:33:32
>>658
それ読み方違ってる。
GridBagLayoutが負けて、DelphiのVCL形式になった、と。
Delphi形式とはコンポとかコンポであるPanel張り合わせ、
その1つ1つがAlignとAnchorを持つ、と。
661デフォルトの名無しさん:05/02/28 14:49:20
>>659
ない。ついででよい。
NetBeansあたり使って、ぼこぼこ置いてみて、どんな役目するのか知っとくだけでいい。
Swingも最初はNetBeansでぼこぼこ置いてみて、どんな役目するのか知っとくだけでいい気がする。
662デフォルトの名無しさん:05/02/28 14:51:31
>>660
それは読み方どころか、結論の出し方自体が間違ってる気がする。
663デフォルトの名無しさん:05/02/28 15:11:24
ていうか 660 の読み方を教えてください。

最近の Java GUI は Delphi/VCL 的な
レイアウトの仕方をサポートするようになったんですか?
664デフォルトの名無しさん:05/02/28 15:27:57
>>655
SpringLayoutの分野じゃない?
665デフォルトの名無しさん:05/02/28 16:10:56
>>658
たとえばその中間に1行追加しようとする
ならばパネルの組み合わせのほうが楽ではないか?

ぽとぺたで作るならばNetBeansであろうともGridbagは多少コツがいる
666デフォルトの名無しさん:05/02/28 16:16:25
>>665
それで、縦をそろえたければ?
Panelの組み合わせだと大変だと思うけど。
667655:05/02/28 17:22:16
GridBagLayout使うべきだというわけでもなく、
「GridBagLayoutを使うととても楽な例もあるから、小さい範囲でくらい使ってもいいでしょ」
というのが俺の考え。
たとえGridBagLayoutの苦手なパターンの修正が発生しても、影響が小さい範囲で。

>>657
AAでキッチリ表現できていないんだけど
・あなたの名前、住所、電話番号のテキストボックス部分を、キッチリ縦でそろえる
・email、Faxのテキストボックスを縦でそろえる
ということを考えた場合に、PreferredSizeで、縦と合うように指定するの?
もちろん、そのやり方でもいいんだけど、GridBagLayoutを使う場合と比べて、
次のような修正があった場合に手間がかかると思っている。

「あなたのお父さんの名前」というような長いラベルの行が増えた場合、
「あなたの名前」、「住所」、「電話番号」、の3つラベルの幅を、
一番長い「あなたのお父さんの名前」にあわせなければならない。

>>655
ごめん、そうかもしれんけど、理解していなくて使ってない。
IDEもあんまり対応してないし。
勉強しときます。

>>665
その通りだと思う。だからあんまり大きい単位では使うべきではない。
668デフォルトの名無しさん:05/02/28 17:22:31
>665
666氏の言うように縦をそろえたい様な場合は
(追加される一行を含め、全体がゆるい格子状に配置されてるとみなせる場合)
迷わずそのまま同一パネルに乗っけてしまいます。
手書きだと Constraints の修正がしんどいですけど
VisualEditor だとその辺りは勝手にやってくれるので、まぁ許容範囲です。

縦位置があからさまにズレるような場合は
(ゆるい格子の一部とみなすことが出来ない場合)
おっしゃる通り、間にパネル挟みます。

適材適所と言うことで。
669デフォルトの名無しさん:05/02/28 19:03:48
>>666
縦は普通にそろえてるよ
推奨サイズ指定してればいいだけだし
670デフォルトの名無しさん:05/03/01 01:30:17
要はどんな配置しても望むレイアウトが実現出来ていれば概ね問題ないって事だな。
どうしても必要ならレイアウトマネージャ作ったっていいわけだし好きにやればいいんじゃないの。

ところでlook&feelを自作したいんだが参考になりそうなサイトあったら教えて。
671デフォルトの名無しさん:05/03/01 02:48:05
672デフォルトの名無しさん:05/03/01 09:11:32
>670
俺は↓ココのコード読んで簡単なの試してみてから
ttp://www2u.biglobe.ne.jp/~kaduhiko/java_09.html
SDK のソースを読みながら試行錯誤してます。
673670:05/03/02 22:53:14
>>671-672
サンクス。やはりそのくらいしか情報ないのか。
仕方ないので自力でソース読みながら試行錯誤してみるよ。
674デフォルトの名無しさん:05/03/02 23:08:45
LAF自作しなきゃならないってのがあんまりないからなぁ

なんかあってもSynthいじる程度で大概済むしね
675デフォルトの名無しさん:05/03/08 14:28:28
JComboBox の編集不可時の色を変えようとしているのですが、どうにも出来ません。
JComboBox#setUI() を使えば良いのかと考えたのですが、
最初に UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel")を設定しているので、
WindowsComboBoxUI を継承しただけでなにもいじってないクラスのオブジェクトを
myComboBox.setUI(new MyWindowsComboBoxUI());
のように与えてみると、見た目が変わってしまいました。

おかしいと思い、
myComboBox.setUI(new WindowsComboBoxUI());
とやってみましたが、これも見た目が変わってしまいました。

Look&Feel を個別に変更する方法として、以上のようにするのは間違っているのでしょうか。
どのようにすれば変更できるのでしょうか。
676デフォルトの名無しさん:05/03/08 14:44:48
>>675
> JComboBox の編集不可時の色を変えようとしているのですが、どうにも出来ません。
編集不可にする時に
myComboBox.getEditor().getEditorComponent().setBackgound(color);
とかで好みの色に変えるのではダメなん?
677675:05/03/08 15:40:17
試してみましたが、
myComboBox.getEditor().getEditorComponent().setBackgound(color);
myComboBox.getEditor().getEditorComponent().setForeground(color);
による色指定では、編集不可時と編集可能時両方とも色を変えることは出来ませんでした。

myComboBox.setBackgound(color);
は編集可能時デフォルトで白い箇所の色を変えてくれるのですが、
編集不可時は中の部分は色を変えず中途半端に色を変えるようになってしまいます。

myComboBox.setForeground(color);
は編集可能時は機能しますが、編集不可時は全く機能しませんでした。

バージョンは 1.3.1 です。
678デフォルトの名無しさん:05/03/08 16:36:04
JTextField field = (JTextField)combo.getEditor().getEditorComponent();
field.setOpaque(true);
field.setBackground(new Color(225,255,225));
679デフォルトの名無しさん:05/03/08 19:23:16
675氏の最初の段落で説明されている状況が
いまひとつよく分からない。
680デフォルトの名無しさん:05/03/08 20:04:30
>>679
俺も良く分からんのだけど、
--------------------
(WindowsLookAndFeel場合において)
JComboBoxは、WindowsComboBoxUIを使っていると思うので、
WindowsComboBoxUIを継承しただけのクラスを作り、JComboBoxにsetUIしたら
見た目が(WindowsLookAndFeelとは)違うものになった。

おかしいと思い、(継承せずに)myComboBox.setUI(new WindowsComboBoxUI());
としても、見た目が(WindowsLookAndFeelとは)違うものになった。
--------------------
ということだろうか?原因は俺も知らないけど。

>>675
「見た目が変わった」っていうのが、どうなったのか不明。
681675:05/03/09 10:59:01
もうしわけございません。
WindowsLookAndFeel を設定したいたつもりが、MetalLookAndFeel になっていました。
MetalComboBoxUI のオブジェクトをそのまま JComboBox#setUI() に与えてみたところ、
とりあえず見た目はかわらなかったので、それからどうにか出来ないか模索中です。

((JTextField)combo.getEditor().getEditorComponent()).setOpaque(true);
では出来ないようでした。
682デフォルトの名無しさん:05/03/09 12:31:46
>>681
setUIしたあと、SwingUtilities#updateComponentTreeUIしてみたら?
JComboBoxだけ変えても内部のEditorなんかのコンポーネントにも、
setUIを波及させないとだめなのかも
683678:05/03/09 17:43:52
UIManager.getDefaults().put("ComboBox.disabledForeground", Color.red);
UIManager.getDefaults().put("ComboBox.disabledBackground", Color.green);
combo.updateUI();
684678:05/03/09 18:40:08
combo1.setEditable(true);
UIManager.getDefaults().put("TextField.inactiveForeground", Color.green);
combo1.updateUI();
final JCheckBox c = new JCheckBox("aaaaaaaaaaa");
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
if(c.isSelected()) {
combo1.setEnabled(false);
UIManager.getDefaults().put("TextField.background", Color.red);
}else{
combo1.setEnabled(true);
UIManager.getDefaults().put("TextField.background", Color.white);
}
combo1.updateUI();
}
});
}
});
685675:05/03/09 19:04:10
ありがとうございます。
UIManager.getDefaults().put("ComboBox.disabledForeground", Color.red);
combo.updateUI();
で色を変えることができました。

DefaultMetalTheme#addCustomEntriesToTable(UIDefaults table)
をオーバーライドして
table.put("textInactiveText", new ColorUIResource(255, 0, 0));
というのを試していたのですが、それで出来ずに諦めようとしていたところでした。
686デフォルトの名無しさん:05/03/09 21:39:42
UIManager.setLookAndFeel(lnf);
for (Frame f: Frame.getFrames()) { SwingUtilities.updateComponentTreeUI(f); }

とすると全てのフレームとその中の部品が再帰的にたどられて
L&Fがlnfになりますが、そのあとおもむろにポップアップメニュー
(setComponentPopupMenuで設定してあるもの)を開くと、L&Fが古い
ままです。

理屈は分かるのですが、なんかアンバランスな結果になりますね。
687デフォルトの名無しさん:05/03/10 14:20:38
688 :05/03/11 19:23:51
JTableでTabキーとかでセルを移動した時、もとからの文字列をいつも自動的に選択状態にしたいのですがどうしたらいいのですか?
689デフォルトの名無しさん:05/03/12 19:19:52
DefaultCellEditorを継承して、FocusListenerのfocusGained発生時に
全部をマークするようなセルエディターを作って、
テーブルにsetCellEditorメソッドで設定してやればいいよ。
690デフォルトの名無しさん:05/03/12 23:45:38
DefaultCellEditorを使うのなら、DefaultCellEditorを継承しなくてもコンストラクタで、
>>689の書いた機能をもったJTextFieldを作って渡せば良い。

もしくは、getTableCellEditorComponent()のメソッド内で、
selectAll()してからreturnするだけでもいいと思う。
691688:05/03/14 22:11:20
>>689 >>690
返事が遅れてすみません。 どうもありがとう!
692デフォルトの名無しさん:05/03/20 07:04:15
JEditorPaneでHTMLを表示したときに、hyperlinkUpdateイベントを処理してやればリンクの処理はできるんですけど、フォームに入力したときの処理ができません。
どうやったらいいのでしょうか?
693デフォルトの名無しさん:2005/03/21(月) 21:15:16
httpclientとかでいいんじゃない
694デフォルトの名無しさん:2005/03/21(月) 21:24:54
それは、どのリスナーのイベントになるのでしょうか?
695デフォルトの名無しさん:2005/03/21(月) 21:36:20
いや、httpclientは、HTTPサーバへの接続を簡単にするための別フレームワークですから。(Apacheの提供)
フォーム入力の送信時にhttpUnit使えってことでしょう。
696695:2005/03/21(月) 21:36:52
>入力の送信時にhttpUnit使えってことでしょう。

すまんhttpclientだった。
697デフォルトの名無しさん:2005/03/21(月) 22:10:28
>>695
えっと、やりたいことはJEditorPaneでHTML表示したときのフォーム入力時の処理なんで。
接続が簡単になっても、イベントの処理ができないことにはどうにもならんっす。
698デフォルトの名無しさん:2005/03/22(火) 22:20:50
JTableでセルをクリックしたときの
セルエディターのフォーカス等のイベント
は取得できるんですが、
キーを押して文字入力時のイベントが取得できません。
なにかコツでもあるんでしょうか? 
699デフォルトの名無しさん:2005/03/22(火) 23:18:02
>>697
その「フォームに入力した時の処理」ってのを簡単にでも説明した方がいいと思う。
もしかしたらイベントもいらんかもしれないしさ。
700デフォルトの名無しさん:2005/03/23(水) 00:06:49
>>699
JEditorPaneで例えばGoogleのサイト表示したときに、検索フォームに入力してボタンを押したときの処理です。
701デフォルトの名無しさん:2005/03/23(水) 09:20:57
>>700
どーにかすれば、検索ボタン(JButtonかな?)の参照にたどりつけるのでは?
702デフォルトの名無しさん:2005/03/23(水) 10:29:44
>>698
まず、君がどうやってみて、ダメなのか書いてよ。
同じこと書いてかぶるかも知れないだろ?

以下がダメだった方法と同じかも知れないけど、俺が試すとしたら
>>690と似たようなやり方で
文字入力を監視するDocumentListenerを作って、それをJTextFieldのDocumentにaddする。
(入力文字をいじるならDocumentFilterでもいいかも)
そのJTextFieldをコンストラクタの引数として、DefaultCellEditorを作って、
setCellEditorする。
703デフォルトの名無しさん:2005/03/23(水) 14:25:56
>>701
GoogleのフォームじゃhyperlinkUpdate来ないけど、ほかのフォームでhyperlinkUpdateが来るものがあるんですよねぇ。
どうにかしてたどってフォーム入力データまで自分で取得する必要があるならめんどうですね。
704デフォルトの名無しさん:2005/03/23(水) 17:21:33
HTMLEditorKit#setAutoFormSubmissionはみてみた?
705デフォルトの名無しさん:2005/03/23(水) 22:57:20
URLを開くときに下のようなコード書いてみましたが、今までと変わりありませんでした。

 JEditorPane ep;

 ep.setPage("http://www.google.co.jp/");
 EditorKit ek = ep.getEditorKit();
 if(ek instanceof HTMLEditorKit){
  ((HTMLEditorKit)ek).setAutoFormSubmission(true);
 }
706デフォルトの名無しさん:2005/03/23(水) 23:23:26
trueだったらかわらないかと
707デフォルトの名無しさん:2005/03/23(水) 23:40:10
falseにしたらなんかイベントが発生しました。
でも、入力値の取得方法がわかんねぇっす。
708デフォルトの名無しさん:2005/03/23(水) 23:48:34
APIマニュアル読めばわかるが

System.out.println(evt.getURL());

if(evt instanceof FormSubmitEvent){
  System.out.println("ふぉーむ:"+((FormSubmitEvent)evt).getMethod() );
}else{
  System.out.println("LINK");
}
をハイパーリンクイベントにかきこんでみそ
このソースには全角空白はいってるので注意な

ここまで手取り足取りとはやさしいな俺
709デフォルトの名無しさん:2005/03/24(木) 01:07:43
>702 
レスありがとう。
たしかに説明不足ですみません。

カラムモデル.setCellEditor(new DefaultCellEditor(リスナをaddしたJTextField);

みたいな感じで色々なイベントを取得してみたんですが、
どうしてもF2とマウスクリック時みたいにテキストフィールドが編集状態にならなんですよね、、、
編集状態になればフォーカスが失ったタイミングで編集停止にしたりできるんですけども。(Excelみたいに)

JTableを継承したクラス作るしかないんですかね、、、
710デフォルトの名無しさん:2005/03/24(木) 02:09:00
>>708
ありがとー。もしオレが女だったら惚れてるところだ。
イベントや入力文字列は取れて、生成したURLをIEで開けばちゃんと表示されるんだけど、JEditorPaneでは開けない。
こんなURL
ttp://www.google.co.jp/search?hl=ja&ie=Shift_JIS&q=test&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

ちょっと悩んでみるとするよ。
711デフォルトの名無しさん:2005/03/24(木) 02:43:34
403エラーだから、googleにはじかれてるだけなんだろうか。
JSPでテストフォーム作ったら、うまくいった。
日本語がだめなんかな。
本気でやるならJDIC使えってことか。
712デフォルトの名無しさん:2005/03/24(木) 02:59:39
しらべてみたらクエリー文字列でqがひっかかってるな
qqとかqpとかqパラメータ自体なくすと通る

デモエラーが403ってのが俺も不思議に思った

いまのところGoogle以外は大丈夫な模様だが・・・
713デフォルトの名無しさん:2005/03/24(木) 03:29:58
もともと「ほ〜らブラウザがこんなに簡単に!」ってやりたかっただけだから、サブミットなしにするよ。
Googleだめだと嬉しくないしね。
714デフォルトの名無しさん:2005/03/24(木) 10:38:15
>>711
Googleは、HTTPヘッダの User-Agent をみて、
IEやネスケなどのメジャーなブラウザ以外からのリクエストは拒否するようになってる。
System.setProperty("http.agent", "Mozilla/4.0 (compatible;xxxx")
とか設定するといいよ。IEのUser-Agentってどんなんだっけ?
プロパティについてはこちらを参照。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/net/properties.html
715702:2005/03/24(木) 11:07:25
>>709
なにがしたいのか、分からなくなった。

元々>>698では、
>キーを押して文字入力時のイベントが取得できません。
文字入力時のイベントっていうから、文字1文字でも入力したときの
イベントを拾いたいのかと思ったけど、

>どうしてもF2とマウスクリック時みたいにテキストフィールドが編集状態にならなんですよね、、、
>編集状態になればフォーカスが失ったタイミングで編集停止にしたりできるんですけども。(Excelみたいに)

なにをしたいの??
JTableの編集開始・編集停止をプログラム側から行いたいってこと?
716デフォルトの名無しさん:2005/03/24(木) 13:26:02
>>714
ああ、そういや昔ウイルス防ぐためにそんな実装したのを思い出した
たしかにいじったらサブミット含めてすべてうまくいった

人によっては5.0へ移行するメリットだろうね、フォームが動く
717709:2005/03/25(金) 01:03:38
>715

日本語を勉強しなくちゃいけないですね、、、すみません。

元々、なにをしたいのかというと、
他のコンポーネントにフォーカスが移動したときにも編集状態のセルの値を
確定させると言うことです。

で、JDK1.5でsetSurrendersFocusOnKeystrokeというメソッドが追加されたのを
今日初めて知ってイベント取得については解決しました。

ただ目的の編集状態の確定については
focusLost時にstopCellEditingとか色々やったけど無理でした。。。
718デフォルトの名無しさん:2005/03/25(金) 02:47:33
>>717
編集状態の確定って? InputMethodの話か?
719デフォルトの名無しさん:2005/03/25(金) 10:32:26
>>717
>他のコンポーネントにフォーカスが移動したときにも編集状態のセルの値を
>確定させると言うことです。
普通は確定(もしくは取消)するんでないの?
と思って試してみて、やっと状況が分かった。

・JTableのセルの編集を開始する。
・セル編集中に、他のコンポーネントにフォーカスを移す
 (JTable内の他のセルではなく、JTable外の別のコンポーネント)
・さっきまで編集中だったセルは、自動的に編集が完了すると思いきや、
 編集中のままになっている。
・ちなみにセルの移動では編集は確定する

コンポーネントの移動で、編集を確定させるには、
>focusLost時にstopCellEditingとか色々やったけど無理でした。。。
これでいいと思うけど。

>>718
>編集状態の確定って?
JTable内のセルの編集状態のことだと思う。
720デフォルトの名無しさん:2005/03/25(金) 10:36:50
>>719
> JTable内のセルの編集状態のことだと思う。
focusLostしてんのにセルが編集状態であり続ける、と?
721719:2005/03/25(金) 10:43:05
>>717
>focusLost時にstopCellEditingとか色々やったけど無理でした。。。
focusLost時っていうのは、JTableのロスト時ではなく、Editorのフォーカスロスト時じゃないとだめだから。
(編集開始しただけで、JTableのfocusLostになってしまうから)
全部のEditorを変えたければ、getDefaultEditorで取得したTableCellEditorを
DefaultCellEditorにキャストして、getComponentしたものにFocusListenerをaddすればOKでした。
(将来もDefaultCellEditorでキャストできる保証がないので、怪しいけど)

試したソースを書いてみる。
>>708に習って、このソースには全角空白はいってるので注意な

JTextField textEditor = new JTextField();
textEditor.addFocusListener(new FocusAdapter() {
 public void focusLost(FocusEvent e) {
  TableCellEditor cellEditor = table.getCellEditor();
  if (cellEditor != null){ //nullである可能性があるか分からないけど一応
   cellEditor.stopCellEditing();
  }
 }
});
//2列目のCellEditorだけ変えてみる
table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(textEditor));
722720:2005/03/25(金) 10:48:57
>>720
おれも、そんなはずはと思って試した。
やればわかるけど、JTableは編集状態のまま、他のコンポーネントにフォーカスは移ってしまう。
編集状態ではあるが、編集は出来ないけど。
なんというか、TableCellEditorが起動したまま、他にフォーカスが移る感じ。

で、この状態のまま、getValuAtで、セルの値を取得すると、編集前の値が取れてしまうから
困るということだと。

試したソース(このソースには全角空白はいってるので注意な)
public class TestJTable extends JFrame {
 JTable table = new JTable(3, 2);
 public static void main(String[] args) {
  TestJTable frame = new TestJTable();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.pack();
  frame.setVisible(true);
 }
 public TestJTable() {
  Container cp = this.getContentPane();
  cp.add(new JTextField("text field"), BorderLayout.NORTH);
  JScrollPane sp = new JScrollPane(table);
  cp.add(sp, BorderLayout.CENTER);
 }
}
723719:2005/03/25(金) 10:49:35
>>722
間違った720でなく719でした
724デフォルトの名無しさん:2005/03/25(金) 11:34:56
>>722
あ、本当だ。

でも、テーブル内の別のセルとかテーブルヘッダとかにフォーカス移すと編集終わってるよね。
これって JTable のバグなのでは? って事で BugParade調べた。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4303107
1.2 の頃には既に報告されてるね。関心が集まって無いから放置、だそうです。
725719:2005/03/25(金) 12:06:15
>>724
バグとするかというと、微妙な気がする。
編集確定せずに、他コンポーネントに移動できるから。
セルの移動や、テーブルヘッダはで終わるのと矛盾する気もするけど。

でもデフォルトは、編集終了して欲しいものだ。
726デフォルトの名無しさん:2005/03/25(金) 12:59:04
>>725
あ、URI挙げた奴は Evaluation に This RFE って書いてあるから
bug じゃなくて request for enhancement なんだと思う。
727デフォルトの名無しさん:2005/03/25(金) 18:15:42
こんなのはコンポーネントが多いと面倒かな。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestJTable extends JFrame {
public static void main(String[] args) {
TestJTable frame = new TestJTable();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
final JTable table = new JTable(3, 2);
final JTextField field = new JTextField("text field");
public TestJTable() {
field.addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent e) {
if(table.isEditing()) {
table.getCellEditor().stopCellEditing();
}
}
});
Container cp = this.getContentPane();
cp.add(field, BorderLayout.NORTH);
cp.add(new JScrollPane(table), BorderLayout.CENTER);
}
}
728デフォルトの名無しさん:2005/03/25(金) 18:57:59
>>727
何のソース?>>721でOKじゃないの?
focusGained時にstopCellEditingしているし、
setCellEditorもしていないけど。
729728:2005/03/25(金) 19:11:47
>>727
> 何のソース?>>721でOKじゃないの?
> focusGained時にstopCellEditingしているし、

setCellEditorしなくても721と同じことができると。
ま、こんな方法もあるよってことだね。

730デフォルトの名無しさん:2005/03/25(金) 21:11:31
JTableで質問した者ですが
レスくれた皆様ありがとうございます
元々のフォーカスロスト時に
stopEditingなんとかを呼ぶ方法
で合ってたようです。
テスト用にテーブルのヘダーをクリック
してたので気付きませんでした
すみませんでした
731デフォルトの名無しさん:2005/03/26(土) 01:26:36
結論:Swingは糞。
732デフォルトの名無しさん:2005/03/26(土) 02:02:46
糞の目をもっていたら、すべてが糞に見えるということがいいたいのか。
733デフォルトの名無しさん:2005/03/26(土) 02:47:54
妖精を見るには、妖精の目が要る。
734デフォルトの名無しさん:2005/03/26(土) 05:23:38
SWTには妖精が見えるよ。
735デフォルトの名無しさん:2005/03/26(土) 13:02:45
SWTまじめに使えばいろいろと不便なところがでてくるよ・・・
Swingは覚えれば覚えるほど加速していく感じが強い
736デフォルトの名無しさん:2005/03/26(土) 14:29:54
SWTつかってるとJavaを使ってる意味を見失ってくるな。
JNIかっての。
737デフォルトの名無しさん:2005/03/26(土) 16:11:02
結局どっちなんよ…
738デフォルトの名無しさん:2005/03/26(土) 18:26:45
>>736
なに言ってるんだ、あれはJNIだよ。
SWTは使えば使うほど限界が見えてくるが、Swingは真逆。
739デフォルトの名無しさん:2005/03/26(土) 20:29:15
SWT使う位なら、素直にMFCなりATL使った方が…。
740デフォルトの名無しさん:2005/03/26(土) 20:35:16
>>737
SWTは見える人にしか見えない幻だった。
741デフォルトの名無しさん:2005/03/28(月) 10:59:34
JFormattedTextFieldでFloat型のみ受け付けるようにするにはどうしたらいいの?
742デフォルトの名無しさん:2005/03/28(月) 11:47:26
JNIのラッパーってある?
743デフォルトの名無しさん:2005/03/28(月) 11:53:58
>>741
言ってる意味
744 :2005/03/29(火) 14:14:28
C#のGUIってのはSwingみたいな感じ?それともSWTみたいなの?
745デフォルトの名無しさん:2005/03/29(火) 14:45:19
VCLみたい
746デフォルトの名無しさん:2005/03/29(火) 17:33:04
たしかにDelphiとBCBもさわった俺にはVCLに近いと感じてる
SWTはやっぱりWin32をラッピングしている感が強すぎる

そしてSwingだけは別物というか別格というか
オブジェクト指向でどこまでいけるかという基地外(この場合ほめ言葉)が作ったものだから
747デフォルトの名無しさん:2005/03/29(火) 17:57:19
>>741

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(5);
jFormattedTextField1 = new JFormattedTextField(nf);
jFormattedTextField1.setValue(new Float(0));

NetBeansから取り出した感じではこんな感じだな
・コンストラクタの引数にいじったナンバーフォーマットを入れる
・Valueにクラスごとぶちこむ

細かくカスタマイズした入力をするのなら
JFormattedTextField#setFormatterFactoryからドキュメント眺めるといい
わかりやすくいえばAccessの書式みたいなのが作れるというわけだ

748デフォルトの名無しさん:2005/03/29(火) 18:47:39
まあC#とVCLは作者が同じなんで当然といえば当然だわな。
749デフォルトの名無しさん:2005/03/29(火) 22:06:00
Swingプログラミングで、既存のクラスを継承してあれやこれやする事がありますが、
NetBeansでGUIデザインしてそのワザを使うにはどうすればいいんでしょうか?
JPanelを継承して描画するように死体けど、JPanel貼っ付けてもextendsとか書けんし
750741:2005/03/29(火) 22:19:29
>>747
どうもありがとう。助かりました。
751デフォルトの名無しさん:2005/03/29(火) 22:22:47
>>749
・JPanel継承した自作クラスを作る
・そのクラスファイルをコピー
・貼り付けたいJFらめを継承したクラスにペースト

これでインスタンス生成とかぜんぶやってくれる
752デフォルトの名無しさん:2005/03/29(火) 22:45:32
>>749
いろいろ手はある。
たとえば、メニューから「Tools -> Palette Manager」を選択すると、Jarとかクラスファイルを
選択して特定クラスをパレットに追加できる。

プロジェクトにJPanelなりなんなりのサブクラスを作成して、該当ソースファイルを右クリックして
「Tools -> add to Palette...」を選択すれば、プロジェクト内のソースファイルからパレットに追加
できる。

パレットに入れてしまえば、あとは普通のクラスと同じように使える。
753デフォルトの名無しさん:2005/04/06(水) 11:02:31
新入社員です。
配属先でswingを使うそうです・・・
自分はサーバサイドJAVAしか勉強して来なかったので必死こいて勉強してます・・・
754デフォルトの名無しさん:2005/04/06(水) 15:25:38
>>753
がんがれ
755デフォルトの名無しさん:2005/04/06(水) 16:12:32
がんがります
756デフォルトの名無しさん:2005/04/06(水) 22:17:49
JFormattedTextField型の日付入力欄でフォーカスアウト時に入力チェックを行い、
不正ならばダイアログを出力してフォーカスを元に戻す処理を作成したいと思っております。
初めに、focusLostイベント処理で作成したのですがフォーカスを戻すことができないので諦めました。
次にInputVerifierを継承した日付チェッククラスを作成し、その中でJOptionPaneの呼び出しを試みたところ
暫く固まった後StackOverflowErrorを吐くので諦めました。
最後に以下のような物を作りました。
InputVerifier dateVerifier = new InputVerifier(){
 public boolean verify(JComponent input){
  boolean bool = true;
  日付チェック処理(省略)
  if(!bool) {
   Runnable runnable = new Runnable() {
    public void run() {
     JOptionPane.showMessageDialog(省略);
    }
   };
   SwingUtilities.invokeLater(runnable);
  }
  return bool;
 }
};
これを使用するとダイアログが出力されフォーカスも元に戻るのですが
何故かダイアログが3つ出てしまいます。
他に何か良い方法は無いでしょうか?
757デフォルトの名無しさん:2005/04/06(水) 23:48:32
>>756
>次にInputVerifierを継承した日付チェッククラスを作成し、その中でJOptionPaneの呼び出しを試みたところ
>暫く固まった後StackOverflowErrorを吐くので諦めました。

無限再帰呼び出しになってるんだろ、バカ。
758デフォルトの名無しさん:2005/04/07(木) 07:35:58
Kaffe1.1.5がリリースされてNIOやらJAWTやらSwing(gnu classpath)やらいろいろ追加された模様
これでようやっとKaffeもJava2レベルに
759デフォルトの名無しさん:2005/04/07(木) 08:57:20
自力描画なSwingはインタプリタとさほど代わらないKaffeには荷が重いだろうなぁ
Javaがサポートされていない環境以外では存在意義はないなぁ
760デフォルトの名無しさん:2005/04/12(火) 01:17:38
JFileChooserのshowSaveDialogでユーザーが架空のファイル名を拡張子なしで入力した場合、getSelectedFileで返されるファイルにデフォルトの拡張子を設定したいんですけど、メソッドとかありますか。
761デフォルトの名無しさん:2005/04/12(火) 09:55:34
SingingSwinging
762デフォルトの名無しさん:2005/04/12(火) 10:56:45
>>760
ないです。自分で実装してください
763デフォルトの名無しさん:2005/04/15(金) 22:08:07
時間の掛かる処理を、画面描画を止めずに行なう方法について
SwingチュートリアルのSwingWorkerを参考にしたら実現できました。
ところが、この処理中は、ユーザーの操作を受け付けないようにしたいです。

【考えた方法】
1)イベントスレッドでやってしまう
 →描画がとまってしまうから困る。
2)処理中にJDialogをモーダルで出して、終わったら閉じる
 →目的は達せられたが、ダイアログの表示・非表示がちょっとウザイ。
3)操作されたくないコンポーネントを、enable=falseにする
 →大量にある場合に、false/trueの切替が大変。

一発でユーザーの操作を受け付けなくする簡単な方法があったら教えて下さい。
764デフォルトの名無しさん:2005/04/15(金) 22:15:10
javax.swing.JComponent[] comps = new javax.swing.JComponent[n]; //nは任意の数
comps[0] = jButton1;
comps[1] = jButton2;
...

private void ComponetEnableChanger(bool flg)
{
for(int i = 0; i < comps.length; i++)
{
comp[i].enable=flg;
}
}

みたいな感じはどうよ。
765デフォルトの名無しさん:2005/04/15(金) 22:21:19
パネルのEnabledをいじると下のコンポーネントも同じようになってくれるといいのにねぇ
俺はテキスト系はEnabledではなくEditableプロパティいじってるので多少めんどい
766763:2005/04/15(金) 22:27:47
>>764
返答ありがとうございます。3)の方法を楽にするってことですよね。
その方向も考えていて、JFrame内のコンポーネントを全部列挙するのは、
画面ごとに大変なので、コンテナを探っていって、setEnabledしていこうかと
思いました。関係ないものまで、falseになりそうです。

また、処理実行前のコンポーネントがすべてenabled=trueなわけでなく、
falseのものもあります。処理が終わったからといって、すべてtrueに戻せないので、
元々falseのものを記録しておきながら、やらないとだめでした。

他に方法がなければ、この方法でやろうと思いますが、
ひとつひとつenalbleをfalseに設定していくしかないんですかねぇ。
767デフォルトの名無しさん:2005/04/15(金) 22:59:20
>>766
実際に試してないのでうまくいくかどうかわからないけど、
setUndecorated(true)&setSize(1,1)したJDialogを使うと
見た目のウザさが軽減されるかも?
768デフォルトの名無しさん:2005/04/15(金) 23:06:27
>>765
ならばそういうパネルを自分で作ればいいのでは?
766がいうように処理前の状態に完全に戻せるようになっているとなおよい。
769763:2005/04/15(金) 23:11:24
>>767
いい感じでした! setSize(0, 0)でもOKでした。1,1の場合は左上に
白い点が見えるだけなので、ウザないです。

欲を言えば、モーダルなので
下のウィンドウの移動ができなくなってしまう。
のが残念です。
でも、他に方法がなければ、これを使おうと思います。

今は、CardLayoutとかOverlayLayoutとか調べて、
JFrameの上に透明なパネルみたいなのを重ねて、
ユーザーの操作をさえぎったりできないものかと調べてました。
CardLayoutは見えなくなってしまうので、だめでした。
770デフォルトの名無しさん:2005/04/16(土) 01:32:28
まぁ処理に時間かからないのならそれでいいね
時間がかかるのならダイアログ出したほうがいい
フリーズしてるのかどうかわかるというか、なんらか動いてるのが見えたほうがいいからね
771763:2005/04/16(土) 01:48:47
>>770
言葉が足りませんでしたが、処理中はプログレスバーを表示しています。
最初はダイアログ上にプログレスバーを表示していたのですが、
思ったよりも処理時間が短いと、ダイアログが一瞬で消えてウザかったわけです。
772デフォルトの名無しさん:2005/04/16(土) 10:29:32
>>771
以前、類似の問題があったときに営業さんと相談して、
あえて数秒間はダイアログを表示させる、という方法をとったことがある
ユーザから見れば0.5秒よりは1秒の方が処理してるって雰囲気出るし
(まぁ処理頻度等にもよるだろうけど)
773デフォルトの名無しさん:2005/04/16(土) 10:56:23
>>772
そんなふうに考えるのは作ってる人だけ。
774デフォルトの名無しさん:2005/04/16(土) 11:04:48
っつか、0.5秒ぐらいダイアログ出さない時間を作っておいて、
その0.5秒ぐらいの間に progress が n%未満ならダイアログ表示とかすれば良いのでは?
775デフォルトの名無しさん:2005/04/16(土) 11:27:13
JFrameあたりでGlassPaneをかぶせてイベントを全部遮って
しまうという手はあるね。
776デフォルトの名無しさん:2005/04/16(土) 12:04:17
>>775
その方法はタブキーで遷移できちゃうからアウト。
荒技だけど、CellRendererで使われてるコンポーネント(CellRendererPaneだっけ?)を使って、
描画だけさせるっていう方法があるね。
777デフォルトの名無しさん:2005/04/16(土) 23:30:22
>>776
タブで遷移させたくない場合は、nullを返すFocusTraversalPolicyをフレームなどに
セットするといいかもしれない。
ttp://terai.s55.xrea.com/Swing/WaitCursor.html
778763:2005/04/17(日) 20:33:31
Dialogを使わない方法として、
JPanel内のコンポーネントを再帰的に走査して、JComponentにsetEnabled(false)をする事を調べてみました。

・もともとfalseのものはSetで保持しておいて、戻すときにtrueにしないようにした。
・EditableなJComboBoxなどは、中のComboBoxEditorまでsetEnabledされたりしたので、
 再帰的に走査する場合は、JPanelのみ対象にした。(javax.swing.Boxも対象にした方がよい?)
 ComboBoxEditorに対してsetEnabledしても別に悪くないかも知れませんが、
 普通はJComboBox本体にだけしか、setEnabledしないと思うのでしないようにした。
・フォーカスがあったコンポーネントにsetEnabled(false)を行うと、フォーカスが失われてしまいました。
 これも、フォーカスがあるコンポーネントを記憶しておいて、
 trueに戻したときに、requestFocusするようにした。

>>768のいうように、こういうJPanelを作ってもいいと思います。(私の場合は手遅れですが)

GlassPaneはよく分かりませんでした。。。誰か簡単なサンプル作って
例を教えてもらえれば、調べてみます。お願いします。
779デフォルトの名無しさん:2005/04/18(月) 22:21:24
>>778
777のGlassPaneのサンプルじゃ駄目なの?
780763:2005/04/19(火) 00:24:07
>>779
あれ?確かに。寝ぼけていたのかも。。。
試してみます。(というかそのサンプルのまんまだと思う。)
関係ないけど、>>777のサイトを見ると、4/18に、FocusTraversalPolicyでnullを返すサンプルが追加っ!!
もしかして、terai氏光臨ですか?たくさんのSwingサンプル大変参考になります。
781 :2005/04/19(火) 00:31:05
JTableでIMEを日本語入力にしているとTabキーでフォーカスを移動しても次のセルでは入力できない(編集状態になってない)。IMEが日本語じゃなくて直接モードなら文字を入力したら編集状態になって入力できるのですが。
どうしたらIMEを日本語入力のままTabキーでセルを移動しながら入力できるのでしょうか。
782デフォルトの名無しさん:2005/04/19(火) 00:40:14
>>777みてみたが

意味も無くFinal連発してるのをやめて
処理スレッドからSwingコンポーネントいじるとき同期化、もしくは
AWTスレッドからやらせるといいね
783デフォルトの名無しさん:2005/04/19(火) 02:18:54
意味のないfinalなんてあるか?
784デフォルトの名無しさん:2005/04/19(火) 04:46:50
>>783
なんか、昔の風習というか迷信で、メソッドはfinalをつけたほうが速くなるとか言われてた。
785デフォルトの名無しさん:2005/04/19(火) 07:42:03
他にも全部publicにするとかstaticにするとか。
酷い場合、入門書でそういう記述を見たことがある。
786デフォルトの名無しさん:2005/04/19(火) 10:07:55
>>777の例では2つしかfinalないし連発というほどでは。
2つ目のfinalは外せないと思う
787デフォルトの名無しさん:2005/04/19(火) 13:14:45
最近ローカル変数(メソッドの仮引数も)には理由がない限り
finalを付けるのを俺ルールにしている。
788728:2005/04/19(火) 14:09:03
>>782
> AWTスレッドからやらせるといいね
777の場合、AWTイベントディスパッチスレッド(SwingUtilities.invokeLater)を
使うと、JTextFieldなどのクリックで状態遷移が起こり?カーソルが変更されて
しまう模様。

789デフォルトの名無しさん:2005/04/19(火) 16:06:24
>>788
今いじってみたがそんな現象無いけど?
790デフォルトの名無しさん:2005/04/19(火) 16:15:33
Java魂とかだと特別な理由がない限りfinalにしとけって感じだった。
むしろデフォルトfinalで、なんか特別な指定をしない限り
変更不可な仕様にして欲しかったような。
791デフォルトの名無しさん:2005/04/19(火) 16:17:52
>>789
むぅ、777を以下のようにいじって、1.5.0_02で実行すると、漏れのとこじゃ
カーソルが砂時計じゃなくなるんだけどなぁ。なんか勘違いしてる?

//Thread t = new Thread(
Runnable doRun = new Runnable() {
public void run() {
longTask();
frame.getGlassPane().setVisible(false);
button.setEnabled(true);
frame.setFocusTraversalPolicy(ftp);
}
};
//t.start();
SwingUtilities.invokeLater(doRun);

792デフォルトの名無しさん:2005/04/19(火) 16:18:29
>>791
それおかしい
793デフォルトの名無しさん:2005/04/19(火) 16:21:41
抜き出したやつだけど、普通はこう考えるだろ

Thread t = new Thread(new Runnable() {
 public void run() {
  longTask();
  try{
   SwingUtilities.invokeAndWait(new Runnable(){
     public void run(){
     frame.getGlassPane().setVisible(false);
     button.setEnabled(true);
     frame.setFocusTraversalPolicy(ftp);
    }
   });
  }catch(Exception ex){}
 }
});

ちなみにキー入力は動くまま
これは>>777の時点でも同じ
多少いじらんとね
794デフォルトの名無しさん:2005/04/19(火) 16:36:27
>>793
あ、そっか。うまくいったよ。
キー入力(キャレットの点滅?)は、まぁどうでもいいや。thx

795デフォルトの名無しさん:2005/04/19(火) 16:51:09
キー入力は簡単だよ

グラスペインが表示されてないのにフォーカスのリクエスト出してるのが原因

button.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
  button.setEnabled(false);
  frame.setFocusTraversalPolicy(policy);
  frame.getGlassPane().setVisible(true);
  frame.getGlassPane().requestFocus();
  Thread t = new Thread(new Runnable() {
   ・
   ・
   ・
これでおけ
最後戻すときにボタンにフォーカスをもどせばいい
796デフォルトの名無しさん:2005/04/19(火) 17:06:13
>>781
ttp://forum.java.sun.com/thread.jspa?forumID=57&threadID=509913
を使ってeditCellAtするというのはどうでしょうか?
一応日本語入力のままTabキーでセル移動できているようです

InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);
final Action oldTabAction = table.getActionMap().get(im.get(tab));
Action tabAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
(改行多いと言われたので中略)
table.changeSelection(row, column, false, false);
//ここから
table.editCellAt(row, column);
table.getEditorComponent().requestFocus();
//ここまでを追加
}
};
table.getActionMap().put(im.get(tab), tabAction);
797781:2005/04/19(火) 19:28:20
>>796
おお、どうもありがとう。InputMapとActionMapをいじくれば特定のタイプのセルをSkipさせたり何でもできるんですね。
ただ自分の場合はそこまで特殊な判定とか必要ないので、あれから調べた結果、別の方法もありました。
http://java-house.jp/ml/archive/j-h-b/051951.html
この人のもちょっと自分には必要ないこともしてるので簡単にいうと
JTableから独自のクラスを派生させてcolumnSelectionChangedとvalueChangedをオーバーライドすればいいみたいです。

public void columnSelectionChanged(ListSelectionEvent e) {
super.columnSelectionChanged(e);
int r = getSelectedRow();
int c = getSelectedColumn();
editCellAt(r,c,e);
Component comp = getEditorComponent();
if(comp != null) comp.requestFocus();
}

valueChangedにも同じ内容。

ただしこの方法だと最後の列からTabキーで次の行に移るとき、間違った行情報でcolumnSelectionChangedが呼ばれてしまうんです。でもまあ、最終的にはvalueChangedによって正しいセルにフォーカスが設定されるからいいんですけど。
でも、いつおかしい挙動するか不安があるのであなたの教えてくれたほうがいいかもしればせんね。 どうもありがとうございました。
798781:2005/04/19(火) 19:41:33
やっぱし上の方法だと、マウスクリック一回で強制的に編集モードに入ってしまうからそれが嫌なら使えないかな。まあ自分はそれでもいいけど。
799デフォルトの名無しさん:2005/04/22(金) 14:10:14
TableCellRenderer インターフェースの
public Component getTableCellRendererComponent(
   JTable table,
   Object value,
   boolean isSelected,
   boolean hasFocus,
   int row,
   int column)
メソッドあるじゃん?

あれの Object value ってなんであるのかな。
value が必要なら table.getValuat(row, column) で取得できるし
わざわざインターフェースの引数増やした意図が知りたい。
(boolean isSelected もだが。)
800デフォルトの名無しさん:2005/04/22(金) 14:35:58
楽になるからいいんじゃね?

あとセルレンダラの表示とモデルの内容のObjectは一致しないこともあるだろうからとか
801教えて君:2005/04/25(月) 12:57:00
キャンセルボタンを押すとそのウィンドウをだけを破棄する方法を教えてください・・・
802801:2005/04/25(月) 12:57:50
スレ違いですかな?すんません
803デフォルトの名無しさん:2005/04/25(月) 13:22:05
JFrame や JDialog に対して dispose() を呼び出したり
WindowEvent を送れば良いのではないかと。

50秒で答えが返るほど人に溢れてるわけでもなく。
804デフォルトの名無しさん:2005/04/25(月) 17:37:48
>>803
これでやってみたんですけどいきませんでした・・・

public void actionPerformed(ActionEvent e) {
//呼び出し元がOKボタン
if (e.getSource().equals(jButton_OK)) {

}
//呼び出し元がキャンセルボタン
else if (e.getSource().equals(jButton_Cancel)) {
((Frame) e.getSource()).dispose();
}
}
805デフォルトの名無しさん:2005/04/25(月) 18:52:11
>>804
if文ではgetSourceがjButton_Cancelという判断をしているのに、
Frameでキャストしているではないか。
Frameのインスタンスに対して、disposeを呼ぶ
806デフォルトの名無しさん:2005/04/25(月) 20:20:02
public void actionPerformed(ActionEvent e) {
//呼び出し元がOKボタン
if (e.getSource().equals(jButton_OK)) {

}
//呼び出し元がキャンセルボタン
else if (e.getSource().equals(jButton_Cancel)) {
Frame f = new Frame();
f.dispose();
}
}

でも上手くいきません・・・(泣)
807デフォルトの名無しさん:2005/04/25(月) 20:32:55
なんでFrameを生成してるんだ?
808デフォルトの名無しさん:2005/04/25(月) 20:33:19
GUI以前にJavaの勉強しなおしたほうがいいんじゃないか?
809デフォルトの名無しさん:2005/04/25(月) 20:35:02
マルチなので放置することに決定
810デフォルトの名無しさん:2005/04/25(月) 21:47:40
こういうコード見てると、よくこうやってわざわざ動かないコード作れるなぁと感心する
811デフォルトの名無しさん:2005/04/28(木) 10:37:39
>>810
まぁ、最初はそんなもの
大昔の自分のソースみるとorz
812デフォルトの名無しさん:2005/04/28(木) 10:49:12
キーイベントの無効化

KeyboardFocusManager defaultKFM = KeyboardFocusManager.getCurrentKeyboardFocusManager();
KeyboardFocusManager.setCurrentKeyboardFocusManager(new DefaultKeyboardFocusManager() {
public boolean dispatchKeyEvent(KeyEvent e) {
return true;
}
});
// 何か処理する
foo();
// 元に戻す
KeyboardFocusManager.setCurrentKeyboardFocusManager(defaultKFM);

こんなんじゃだめ?(マウスイベントは受け付けるが・・・)
813デフォルトの名無しさん:2005/04/28(木) 11:18:28
ウインドウ全体に対しての処理はグラスペインというのが用意されているんだから
それを使ったほうがすっきりする

ほとんどの人はコンテントペインしかさわらんか
それも5.0では直接触ることはないがな
814デフォルトの名無しさん:2005/04/29(金) 02:09:15
今日初めてWin/Linuxどっちでも動くアプリを完成させた。なんかうれしい。
815デフォルトの名無しさん:2005/04/29(金) 04:29:35
Windowsのタスクマネージャみたいに他のアプリよりも
常に最上位にWindowが表示されるようにできますか?
816デフォルトの名無しさん:2005/04/29(金) 09:54:23
java.awt.Window#setAlwaysOnTop(true)が効く範囲でなら可能なんじゃない?
JFrameもWindowのサブクラスね。

817デフォルトの名無しさん:2005/04/30(土) 12:25:36
818デフォルトの名無しさん:2005/05/01(日) 12:13:54
Java質問スレで質問したのですが、回答が無いままdat落ちしてしまったのでここで質問させてください。
この場合はマルチでは無いですよね?

JButtonのactionPerformedを取得してJTextAreaに処理開始メッセージを出力し、
処理中のログを出力して、処理終了後に終了メッセージを出力したいのですが、
処理終了後に全部まとめて出力されてしまいます。
どのようにすればログを逐次出力することができるのでしょうか?
819デフォルトの名無しさん:2005/05/01(日) 12:21:39
イベント処理のなかですべてしょりしたら
イベント終了後に更新されるのは当たり前かと
Javaに限った話でもないし
820デフォルトの名無しさん:2005/05/01(日) 15:33:42
821デフォルトの名無しさん:2005/05/01(日) 15:43:53
>>818

>>819が書いてるけど、actionPerformedが終わるまで、Swingに画面更新のタイミングが
来ないからじゃないの? Swingはすべての描画をシングルスレッドで行なってるからね。

Swingはシングルスレッドモデルで動いているので、長い処理は別スレッドで行なって、
Swingコンポーネントのプロパティ変更はinvokeLater()経由で行なうのが鉄則。
invokeLater()しとけば、Swingのイベントディスパッチャが適当なタイミングで画面に
反映する。
822デフォルトの名無しさん:2005/05/01(日) 18:22:57
ここでいうプロパティ変更って、setEnabledみたいなメソッドのことですか?
823デフォルトの名無しさん:2005/05/01(日) 22:20:34
>>822
いや、setXXXX()なんかはほとんど当てはまると思った方がいい。どれが安全でどれが安全でないかは
APIリファレンスに書いてあるけど(setText()は安全)、ややこしければinvokeLater()が基本だと思っとけば
いいんじゃないかな。

ちなみに更新が行われない事と、スレッド安全性とは関連があるけど別の話なんで注意。

更新を行なっても、actionPerformedが終わるまで画面が更新されないのは、Swingの
イベントディスパッチャが更新処理を行なうまでは反映されないから。actionPerformed()が
終わるまでは次のイベント処理が行われないので、画面に反映されない。

だから更新を行なう処理はSwingのイベント処理スレッドとは別に行なうようにすることになる
んだけど、別スレッドからSwingコンポーネントの更新を行なう場合に、invokeLater()が絡んで
くる。
824818:2005/05/02(月) 00:04:37
SwingUtilities.invokeLater(new Runnable(){
 public void run(){
  jTextArea.append("aaa\n");
 }
});
SwingUtilities.invokeLater(new Runnable(){
 public void run(){
  Thread.sleep(500);
  jTextArea.append("bbb\n");
 }
});

こんな感じでactionPerformedの中に記述してみたのですが、
終了後に纏めて出力されます。
どこか間違っていますか?
825デフォルトの名無しさん:2005/05/02(月) 00:24:35
>>824
ええと、よくわからんけどちょっと違うように思う。
invokeLater()は、SwingのイベントディスパッチスレッドのキューにRunnableを突っ込む機能
なんで、それだと、

actionPerformed() -> 一つ目のRunnableが突っ込まれる --> 二つ目のRunnableが突っ込まれる
-->actionPerformed()が終わる --> 一つ目のRunnableが処理される --> 二つ目のRunnableが処理される
-->次のイベントが処理される。たぶんここでrepaintが行なわれる。

ということじゃないかな。

当初の要件で言えば、
・actionPerformed()起動
・開始メッセージをJTextAreaにセット
・処理用スレッドを起動
・actionPerformedは処理終わり

で起動した処理用スレッドは、

・とりあえずループする。
・ループの中で一回処理が終わるたびに、invokeLater()でJTextAreaに処理中ログ出力
・スレッド切替を確実にするためにsleep(1)くらいしとく。
・ループ脱出したら終了メッセージをJTextAreaにセット

てな感じでは。ともかく、actionPerformed()はスレッドを起動したらさっさと終了しないと、
イベントディスパッチャが次のイベントを処理できない。
826デフォルトの名無しさん:2005/05/02(月) 00:25:55
ここほんとにSwingスレか?
827デフォルトの名無しさん:2005/05/02(月) 00:54:33
>>824
このプログレスバーのデモを参考にしてみたら?
http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html
SwingWorkerというサンプルを使って、別スレッドで処理をして、タイマーでログ出力している。
処理をしながら、画面の更新を行うという点では参考になると思う。
828818:2005/05/02(月) 01:08:31
>>826
低レベルな質問で申し訳ありません。
>>819,820,821,823,825,827
レス有難うございました。
>>825殿の説明でやっと理解できて、希望通りの処理を行うことができました。
こんなくだらない質問に、これだけの人に教えてもらえるとは思いませんでした。
もっと勉強して人に教えることができるようになりたいです。
829デフォルトの名無しさん:2005/05/02(月) 01:22:31
>>828
>低レベルな質問で申し訳ありません。
ここはSwingスレだからレベルにかかわらずSwingに関連した質問をするのは
全然問題ないんじゃないの? どちらかというと問題なのは、

>・スレッド切替を確実にするためにsleep(1)くらいしとく。

みたいなことを平気で教えるほうだと思う。
830デフォルトの名無しさん:2005/05/02(月) 01:25:41
まぁ解決したのでいいとするが、俺も今見てひどいなと思ったり

あとはあまり美しくはないが、repaintイベントとばすのではなく
イミディエイトを使うという手もある

やっつけしごとにどうぞ
831デフォルトの名無しさん:2005/05/02(月) 02:01:39
ん? >>818あたりからざっと読んでたんだけど、>>825もなんの疑問を抱かずに>>829まで来てしまった。

すべてのJavaスレッドがプリエンプティブであることが保証されてるならともかく、その保証がない以上、
スレッドは長い処理中に定期的に自ら優先権を放棄して、他スレッドが実行されるチャンスを与えるように
することは必要なんじゃなかったっけ?

yield()については無視するJVMがあることは有名だけど、sleep()についてはどんなJVMでも必ず一旦
スレッドを停止して、スレッドスケジューリングを実行するってことだったと思うけど。

まあいまどきはほとんどがプリエンプティブなネイティブスレッド使ってるんだろうけど、Sunのリファレンス
実装がGreen Threadモデル使ってたって例もあるし、他社製JVMにはGreen Threadなのもあるらしいし。
832デフォルトの名無しさん:2005/05/02(月) 11:22:08
スレッドを切り替えるために
スリープを意識的に入れるコードは設計がおかしいのでは?
833デフォルトの名無しさん:2005/05/02(月) 11:30:57
は?
834デフォルトの名無しさん:2005/05/02(月) 11:54:19
実装の事を言い出したらSleepでかならずスレッド切り替えが入るとは限らない。
835デフォルトの名無しさん:2005/05/02(月) 11:57:51
で、それと設計がおかしいこととどうつながるの?
836デフォルトの名無しさん:2005/05/02(月) 12:37:10
スレッド切り替えを期待してsleepをいれるなということだろう。
837デフォルトの名無しさん:2005/05/02(月) 13:36:39
現実的な話でいえば、sleepでスレッド切り替わるんだろ。
sleep使わずスレッド切り替えしようと思うとめんどうなコーディングしないといけないんだろ。
設計がおかしいといえるもんでもないと思うが。
838831:2005/05/02(月) 14:14:40
sleepを使うとカレントスレッドは止まらないといけない。
止まると次のスレッドを決めないといけないので、スケジューリングが走る。
むろんsleepの用途はカレントスレッドを止めることであってスレッドスケジューリングを行なう
ことではないけど、カレントスレッドが止まれば当然スケジューリングも走る。

オライリーがどのくらい信用できるかわからんけど、「Javaネットワークプログラミング」には
スレッドの実行権譲渡について詳しく説明があって、やっぱり長い処理中には明示的に実行権を
放棄すべきと書かれていて、sleep()は最も強力な実行権譲渡方法として紹介されてる。
(もっともこの本は、yieldは無視されることがあるといいつつ、ループ内ではyieldを使えと
書いてあるけど)

要はスレッド実行中の実行権譲渡方法ってIO待ちとかを除けば、synchronizedによる待機、
wait、join、yield、sleepくらいしかなくて、前の三つはループ内でただ実行権を一時的に放棄
するためには使えず、一番的確なyieldは、JVMによっては無視してもいいとかいう言語既定
になってるもんだから、現実的にごく短いsleep()が使われるってことじゃないの。

現実解としてはsleep()使うんじゃないかな。
839デフォルトの名無しさん:2005/05/02(月) 14:47:26
スレッド切り替えにsleepはいいのだが、上記の例でやるべきことか?
それに複数のスレッドがある場合1msでAWTスレッドに代わるのを期待できるのか?
840460:2005/05/02(月) 15:12:03
とっくに終わった話題だけどSWT本読んだらすっきりしたから書いとく。

エリックガンマは最初Eclipseの前身のVisualAge for Java for MicroEdition
をSwingで作ってそれに満足してたけど、最初に使った連中から速度と見た目について
文句を言われたらしい。それでVisualAge for SmalltalkやVisualAge for Javaを
つくるときに使ったSmalltalk用GUIレイヤをJavaに移植したのがSWTとのこと。
確かにこれじゃ他のライブラリと違和感あるよなあ。

エリックガンマ自身はSwingの速度自体は問題にならないと当時も
思っていたらしい。さすがにわかってるね。
841831:2005/05/02(月) 16:27:54
>>839
まあsleep(1)ってのは、要件が実行権放棄だけなんで、単に一番短い数値を指定したんだろうなと
思ってたよ。

しかしなるほど、たしかにスレッドが一杯あったら、sleep()でスレッドが止まるにしても、
次にいつ画面更新が行われるかはいつかよくわからんね。結局まとめてログ出力されてしまう
可能性がある。

じゃあSwingだとどうするんだろう、と思って>>827で紹介されてたリンクを辿って見てたんだけど、
このSwingWorkerの例って

・SwingWorkerは一生懸命処理する。
・SwingのTimerがSwingWorkerに現在値を問い合わせて、プログレスを更新

となっているような感じなんだけど、これだとやっぱりSwingWorkerは定期的に自分から
実行権を放棄しないとイベントディスパッチャに制御が戻らん可能性があるよね。
例ではたまたまsleep(1000)が入ってるんで問題なさそうだけど。
この場合もスレッドが多いといつ更新されるのかは不明になってしまう。

当初の要件のように、確実に、「処理1回終わり-->ログをJTextAreaに表示」サイクルを繰り
返そうと思ったら、Swing TimerのactionPerformed()にサイクル1回分を書いて、繰り返し実行
するようにTimerを設定する、ということになるんですかね。
842デフォルトの名無しさん:2005/05/02(月) 19:10:56
いや、ふつうにやればいい。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
 Thread t = new Thread(){
  public void run(){
   for(int i=0;i<10;i++){
    //何らかの処理
    try{
     SwingUtilities.invokeAndWait(new Runnable(){
      public void run(){
       jTextArea1.append("AAA\n");
      }
     });
    }catch(Exception ex){}
   }
  }
 };
 t.start();
}
これでまったく問題ないだろうに。
843デフォルトの名無しさん:2005/05/03(火) 02:37:56
いやもう、ほんとなんかゴメンってかんじで。
invokeAndWait()か。そりゃそうだよな.... ありがと。
844デフォルトの名無しさん:2005/05/05(木) 21:37:20
invokeLaterとinvokeAndWaitの違いを簡単におながいします?
845デフォルトの名無しさん:2005/05/05(木) 21:55:49
http://wisdom.sakura.ne.jp/index.shtml
JavaAPI入門→Swing入門→4. Swingとスレッド
846デフォルトの名無しさん:2005/05/05(木) 22:19:01
Swingのスレッド周りが分からない人はイベントキューの図をかいてみればわかるよ
847デフォルトの名無しさん:2005/05/05(木) 22:28:22
頭に毛が三本
848デフォルトの名無しさん:2005/05/06(金) 06:58:26
>>844
invokeLater→メッセージキューに入れたらすぐに制御が戻る
invokeAndWait→実行が終わるまで制御が戻らない
849デフォルトの名無しさん ::2005/05/08(日) 21:04:15
別スレでも書きこみしましたが、教えてください。
JTableの任意のセルにフォーカスを移動するにはどうすればいいんですか?
DefaultTableModel使ってコーディングしてます。
850デフォルトの名無しさん:2005/05/08(日) 21:36:37
JTextField と JButton を使っています。
JTextField には InputVerifier を付けていて正しい入力を行うまで
他にフォーカスが移動しないようにしています。なので、JButton には
フォーカスは移らないのですが、マウスをクリックするとボタンがへこみ
actionPerformed() が呼ばれてしまいます。

InputVerifier でフォーカス移動が禁止されている間は、
JButton 自体を機能させたくないのですが何か方法はないでしょうか?

一応、actionPerformed() 内で isFocusOwner() で JButton 自身が
フォーカスを取得できていない場合は、何もしないようにコーディング
しています。可能ならボタンをへこまないようにもしたいのです。
851デフォルトの名無しさん:2005/05/08(日) 21:47:54
>>849
選択させたいってことか?
JTableにそれらしいメソッドがみえるが
852デフォルトの名無しさん:2005/05/08(日) 22:10:04
>>850
入力確定時の完全なフォーカスのロックは便利そうで不便なことも引き起こす
ボタン完全に押せないと入力途中でやっぱりやめたとキャンセルボタン押しても
「不正です」とでたりして押せないとかな
853デフォルトの名無しさん ::2005/05/08(日) 22:10:14
>>851
え?どれですか?
854デフォルトの名無しさん:2005/05/08(日) 22:15:58
選択するだけならば、JTable の
void setRowSelectionInterval(int index0, int index1)
void setColumnSelectionInterval(int index0, int index1)
あたり。
ただし、これでフォーカスがあたるかどうかはわかんないが。
855デフォルトの名無しさん ::2005/05/08(日) 22:16:55
>>851
選択というか、フォーカス持ってくる。
同じこと?どのメソッド?
856デフォルトの名無しさん:2005/05/08(日) 22:22:03
boolean editCellAt(int, int)
857デフォルトの名無しさん:2005/05/08(日) 22:23:29
>>852
InputVerifier のこと自体 理解していないんだったら黙ってたほうがいいよ。
キャンセルボタンなど InputVerifier を無視してフォーカスを得たいコンポーネントは
setVerifyInputWhenFocusTarget(false) することになっているから無問題。

ちなみに、フォーカスは移動しないけどボタンが押せてしまうのはバグらしい。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4533820
858デフォルトの名無しさん:2005/05/08(日) 22:25:26
http://cw56.ade2.point.ne.jp/

うはっwwwっおkwwwwwwwww
っっうぇwww
っwwwっうぇwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwっっうぇwww
859デフォルトの名無しさん:2005/05/08(日) 22:41:00
バグなのか
あれは5年以上放置だから仕様かとおもってたが
860デフォルトの名無しさん:2005/05/09(月) 06:05:50
>>849
ttp://terai.xrea.jp/Swing/AnchorSelection.html
//0行0列のセルにフォーカス
table.getSelectionModel().setAnchorSelectionIndex(0);
table.getSelectionModel().setLeadSelectionIndex(0);
table.getColumnModel().getSelectionModel().setAnchorSelectionIndex(0);
table.getColumnModel().getSelectionModel().setLeadSelectionIndex(0);

table.changeSelection()でもできるかもしれない
861デフォルトの名無しさん:2005/05/09(月) 22:30:12
JScrollPane と連動させている場合は
Viewport を再設定する必要もあり。>選択範囲
862デフォルトの名無しさん:2005/05/10(火) 10:00:55
質問スレで放置されました・・・すいませんがこっちにもマルチさせてもらいます
jTableで列名の長さに応じてセルの幅を調節したいんですが

jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF );
TableColumn column=jTable1.getColumn("カラム1");
column.setWidth(15);
jTable1.doLayout();

これでもサイズが変更されません。お助けください・・・
863デフォルトの名無しさん:2005/05/10(火) 12:17:47
>>862
apiには以下のように書かれているが

>public void setWidth(int width)
>このメソッドを使用して JTable の列の幅を設定しないでください。代わりに setPreferredWidth を使用します。

864デフォルトの名無しさん ::2005/05/10(火) 22:59:53
>>860,861
サンキューです
865デフォルトの名無しさん ::2005/05/12(木) 00:41:02
JTreeについて教えてください。
ノードによって選択可能不可能の設定ってできるんですか?
できるなら教えてください。
866デフォルトの名無しさん:2005/05/12(木) 13:58:07
867デフォルトの名無しさん:2005/05/16(月) 22:50:15
Synthってどうですかね?
かっちょいいスキンとか出回るようになるのでしょうか。
868デフォルトの名無しさん:2005/05/17(火) 00:24:05
SynthはCSSのようなもの
使ってみればどういうもんかわかるよ
869デフォルトの名無しさん:2005/05/17(火) 00:29:18
Swingってさ なんで デフォルトで日本語ラベル表示すると
昔のLinuxの日本語表示みたいにギザギザなんだろう?
このSynthつかうと そういう心配なし?
870デフォルトの名無しさん:2005/05/17(火) 00:55:29
べつにギザギザではないが
871デフォルトの名無しさん:2005/05/17(火) 00:59:34
>>869
ひょっとして、1.4 使ってるのか?
だとするとボールド使うと日本語汚くなるかも。
Windows だったら、起動オプションに
-Dsun.awt.UseAltWin32FontApi=(fontname,unicode_start,unicode_end,size_start,size_end)
付ければネイティブのフォントAPI使ってくれたはず。
1.4.1 までだったかもしらんけど。
872デフォルトの名無しさん:2005/05/17(火) 01:05:56
SystemLAF使え
873デフォルトの名無しさん:2005/05/20(金) 23:45:26
>>871 >>872
としたとしても、MS系で作ったアプリと微妙にフォント違うよね
なんかこうインチキ臭いフォントって言うか・・・
Delphiで書いたアプリもそうだけど
怪しさはSwingのほうがあやしい
874デフォルトの名無しさん:2005/05/20(金) 23:46:25
↓お前が怪しい という初級つっこみ人
875デフォルトの名無しさん:2005/05/20(金) 23:47:15
上向きの矢印出す初級つっこみ↓
876デフォルトの名無しさん:2005/05/20(金) 23:54:07
>>873
フォント殿変が違う?
MSなフォント指定すれば同じになるが
877デフォルトの名無しさん:2005/05/21(土) 00:03:40
いやいや、微妙にちがうんすよ
う〜ん わかりやすく言うと、
たとえば、UTF-8で書かれた(ファイルの保存もcharsetもUTF-8)Webページ見たときのようなへんな感じ・・・ってわかります?
878デフォルトの名無しさん:2005/05/21(土) 00:04:16
ファイルダイアログの文字とかもおかしいもんね
879デフォルトの名無しさん:2005/05/21(土) 00:39:24
>>873
> としたとしても、MS系で作ったアプリと微妙にフォント違うよね
>>871 は有効になってれば、MSのフォント使って、
Windowsネイティブのフォントレンダラ使うはずなので違わんはずだが。
違うってのは有効になってないか、単なる思い込みなんじゃね?
スクリーンショット取って比較してみれば?
880デフォルトの名無しさん:2005/05/21(土) 00:48:16
>>877
UTF8もSJISも見た目はまったくかわらんだろ
881デフォルトの名無しさん:2005/05/21(土) 01:03:25
UTF-8とSJISでフォント(とかフォントサイズとか)が切り替わってるのでは?
882デフォルトの名無しさん:2005/05/21(土) 03:30:21
ま、ええわ 俺の勘違いだな そういうことで
883デフォルトの名無しさん:2005/05/21(土) 10:14:35
フォントの周りのデザインが変わってるのでフォントが変わったと思い込んでる882がお送りしました。
884デフォルトの名無しさん ::2005/05/21(土) 12:00:49
教えてください。
JTableのヘッダー部にマウスが来るとマウスの形状を変えたいのですが、
マウスがヘッダー部に来たってことをどのようにすれば知ることができるのでしょうか?
885デフォルトの名無しさん:2005/05/21(土) 13:32:16
>>884
ヘッダー部全体なら、JTable#getTableHeader() でヘッダー部のコンポーネント取ってきて、
addMouseListener() で mouseEntered と mouseExited 実装した MouseListener 渡せば取れると思われ。
886デフォルトの名無しさん:2005/05/22(日) 08:38:20
変わったのはデザインじゃなくてレンダリング。
ボールド処理が糞だと前々からBugParadeで言われてきたのがようやく改修されただけ。
887デフォルトの名無しさん:2005/05/22(日) 15:59:21
>>886
>ボールド処理が糞だと前々からBugParadeで言われてきたのが

じゃ、言ってることは合ってんじゃんか
888デフォルトの名無しさん:2005/05/22(日) 16:20:36
BOLDは英語は問題なかったし、バージョンによって細かくBOLDの挙動が違う
でもメタルのLAFデフォのまま使ってるところってそんなにないよね
889デフォルトの名無しさん:2005/05/22(日) 18:07:33
>>871
1.3.1 では有効になった。
1.4 では有効にならんみたい。orz
890デフォルトの名無しさん:2005/05/22(日) 18:23:49
>>888
> BOLDは英語は問題なかったし
JDKが標準でフォント持ってるからね。
英語の部分にMSゴシックとか使った場合は同様の問題出るよ。

個人的には1.5の品質なら許容範囲内なんだけど。
891デフォルトの名無しさん:2005/05/22(日) 18:51:53
>>890
1.1時代は綺麗だったような
1.2もバージョンいにょって細かく違ってたし
1.3になってひどいのがちらほらと
1.4も0.0.1違うだけでどんどんかわっていった

何をしたいんだ>Sun
まぁ5.0は1.3以降の中では綺麗
1.2以前はOSのまんま使ってたんだっけかな
892デフォルトの名無しさん:2005/05/22(日) 19:15:10
>>891
そりゃそうだ。だって、Swingなかったでしょ。
Swingの問題は、
ttp://www.lake.its.hiroshima-cu.ac.jp/~mondo/Java/TnE/005.html
このあたり見てくれ。で、さらに詳しく知りたいなら bugParade探してみて。
結構昔から、Boldフォントの問題はでてるから。
893デフォルトの名無しさん:2005/05/22(日) 19:17:21
Swingは1.1からあったよ
標準APIではなかったが
894デフォルトの名無しさん:2005/05/22(日) 19:18:53
JFC自分でいれなきゃだめだったよ。
少なくとも正式リリースじゃなかった記憶があるんだけど
895デフォルトの名無しさん:2005/05/22(日) 20:34:43
1.4は、バージョンあがるごとにSwingの実装が変わっていってるからね。
1.4.1と1.4.2でスピードが全然違う
896デフォルトの名無しさん:2005/05/22(日) 20:49:54
1.4はJava2D進化の歴史だからな
おかげでSwingが快適になった

5.0になってどれだけ変わるかと期待したが1.4.2と速度的にかわらんのがなぁ
VolatileImageも多少は扱いやすくなったが、あいかわらず使いにくいし
そろそろ拡大縮小くらいはアクセラレーションきくようになってほしいな
897デフォルトの名無しさん:2005/05/22(日) 20:56:49
えええええ?
速度、5.0の方が速いでしょー?
誰に聞いてもそう返って来てたのに・・・。
あ、Java2D生でガリゴリしてるひとじゃなくてGUI部品単位で
Swing使ってる人に対してだけど。

Mustangも微妙に速くなってきてると思う。今、1.6.0-b37上で動いてるv2cから..._〆(゚▽゚*)。
898デフォルトの名無しさん:2005/05/22(日) 21:07:06
>>897
アクセラレーションがきくようにコードを書いてる人は5.0になってもまったくかわらんよ
ただ、GCの速度とかアップしてるし総合的には上がってるのはわかる
899デフォルトの名無しさん:2005/05/25(水) 09:15:34
>>891
> 何をしたいんだ>Sun
awt にフォントの情報取れるインターフェイス持ってるの気付かなかった?

プラットフォーム依存をより少なくするために自前でフォント描画してんのよ。
900デフォルトの名無しさん:2005/05/25(水) 09:37:58
>>899
そんなのは誰でもわかってることだろ。
描画結果が何回もころころ変わるから問題になるのだ。
901デフォルトの名無しさん:2005/05/26(木) 02:16:02
>>900
よくしようと変わってんだからいいじゃん。
フォントの描画方法変わっても別にアプリに影響ないでしょ?Swingなら。

# そんなのに依存するんだったら、アプリの書き方にちょっと問題が・・・
902デフォルトの名無しさん:2005/05/26(木) 08:12:31
描画結果が常によくなるような改良だったらいいのだが

そもそもBOLDの問題はSwing特有のものだっけ?
AWTの話だと思うんだが

それに見た目がころころ変わるってのは
アプリの動作はまったくかわらんが結構影響大きいぞ
903デフォルトの名無しさん:2005/05/26(木) 13:01:51
なんで AWT で描画するんだろう。
フォントなんてプリミティブな要素、
AWT では抽象化されてるべきだと思うんだが。
904デフォルトの名無しさん:2005/05/26(木) 13:05:40
J2MEのPersonal Profileだったりして
905デフォルトの名無しさん:2005/05/26(木) 17:24:35
>>903
で、抽象化したとしてだれが実装すんの?
906デフォルトの名無しさん:2005/05/26(木) 17:26:07
つか、グラフィックまわりは過度に抽象化すべきじゃないね。
速度の影響が大きいからね。
907デフォルトの名無しさん:2005/05/26(木) 19:53:18
実際のところ基本DPIがWindowsとWindows以外とで大きく違うから
結構おかしいことになったりする
908デフォルトの名無しさん:2005/05/28(土) 21:33:26
>>906
そうやっていきなりあきらめるんじゃなく、Swingは理想的に作って
できるところから最適化(ネイティブ利用など)してきてるから偉いんだって。
909デフォルトの名無しさん:2005/06/05(日) 14:24:52
Swingでアニメーション(JPG,GIFなどを使って)作ろう
と思ったのですが
Swingはデフォルトでダブルバッファリングだから
オフスクリーン用のImgeは生成しなくても
いいんですよね?
一応JComponentを継承したのを
JFrameに貼ろうというふうにやっているのですが
910デフォルトの名無しさん:2005/06/05(日) 14:46:08
やってみればいいかと

実際のところアクセラレーションをきくようにとか細かいことやり始めると
自分でバッファを作ったほうが小回りが利いていいと思われ

repaintのたびに描画がはいると重いからね
たとえばスプライトを1万個描画するのをイベント発行時で処理するのと
画像が変わったときに処理、paint時には出来上がった画像を表示するだけでは大きく変わる
911909:2005/06/05(日) 16:25:59
実際に作ってみたところ
GIF画像取得のでgetClass()で
Nullが発生している模様

スレ違いの部分でつまづいたorz
912デフォルトの名無しさん:2005/06/05(日) 16:40:16
>>911
せめて、その画像を取得してる部分のソースを出すべきだと思う
913909:2005/06/05(日) 20:43:32
スレ違いだからだすのは気が引けるのですが

Image[] diz;
URL[] di;
コンストラクタ(){
 for(int i=0;i<2;i++){
  di[i] = getClass().getResource("dizzy"+i+".gif");
  diz[i] = Toolkit.getDefaultToolkit().createImage(di[i]);
  }

あと、NullpointerExceptionが発生しているのは
getClassではなくgetResourceの部分でした。
914デフォルトの名無しさん:2005/06/05(日) 20:47:33
ぬるぽ
915デフォルトの名無しさん:2005/06/05(日) 20:58:25
パスみすっただけかい

Swing使ってるならImageIO使ってもいいんじゃないか?
916909:2005/06/06(月) 06:38:24
ImageIOですか、勉強してみます。

パスミスっただけ?
ファイルはクラスと同じ場所にあるのに

スレ違い過ぎるのでここに質問するのは
もうよしときます。
917デフォルトの名無しさん:2005/06/06(月) 07:57:40
>>913>>916
こういうときはJava初心者スレにでも書いておいて、そこへのポインタを貼るといいよ。
918デフォルトの名無しさん:2005/06/06(月) 23:19:42
ファイルの場所とクラスの場所には何の関連性もない。
919デフォルトの名無しさん:2005/06/06(月) 23:26:22
クラスパスで考えれば関連性がないとはいえんが
環境しだいだな
920デフォルトの名無しさん:2005/06/07(火) 00:04:14
それはリソースの場所とクラスの場所の話だろう<クラスパス
921デフォルトの名無しさん:2005/06/07(火) 00:07:59
getResourceというコード使ってるからリソースの話だろう
922デフォルトの名無しさん:2005/06/10(金) 21:09:58
JavaのGUIをXMLから生成する gui4j 1.1公開
http://pcweb.mycom.co.jp/news/2005/06/09/012.html
923デフォルトの名無しさん:2005/06/10(金) 21:35:40
それよりもこれだろ、これ。

ttp://pc8.2ch.net/test/read.cgi/tech/1056116495/387
>Netbeansの次期バージョンでは、ついにGUIエディタにも大改良をくわえるらしい!
>Netbeansのサイトにデモムービーが上がってたけど、これはすげええええ。
>Interface Builder級かもしれん....
>
>JavaOne 2005 でまず姿を現して、次バージョン(4.2)で今のフォームエディタと
>置き換えるらしいぞ。
>ttp://www.netbeans.org/kb/articles/matisse.html
924デフォルトの名無しさん:2005/06/10(金) 21:53:56
>>923
なんつうか、このスレの存在価値が無くなりそうだな。
925デフォルトの名無しさん:2005/06/10(金) 22:18:56
おまえらいままでSUNが作ってきたIDEちゃんと見てるか?
926デフォルトの名無しさん:2005/06/10(金) 22:30:11
そこまでかわるなら4.xというマイナーバージョンアップでなくてもいい気がするが

927デフォルトの名無しさん:2005/06/11(土) 01:18:19
4.0から4.1も激変ですよ。EJB2とか、いまさら使わないけど。
928デフォルトの名無しさん:2005/06/11(土) 01:28:54
やっと、VC++ 2.0レベルになったか…。
929デフォルトの名無しさん:2005/06/11(土) 01:38:28
>>928
馬鹿がいた
930デフォルトの名無しさん:2005/06/11(土) 02:10:09
Delphiレベルになってほしいね。
931デフォルトの名無しさん:2005/06/11(土) 10:33:31
>>930
たしかにイベントに関しては多少増やしてほしいところだが
Delphiとどっちが上かと聞かれるとまたベクトルが違うからねぇ
Swingであるために楽な場面とかは割と多いし
932デフォルトの名無しさん:2005/06/11(土) 19:01:53
933デフォルトの名無しさん:2005/06/11(土) 20:08:11
>>932
そんな君に
>>923
934デフォルトの名無しさん:2005/06/13(月) 13:29:25
JScrollPane でスクロールバーが表示されているかどうか知る方法ってありますか?
VERTICAL_SCROLLBAR_AS_NEEDED を指定しているので、内部の
コンポーネントのサイズによって自動的にスクロールバーが表示されたり消えたりしますが、
その表示状態を取得したいのです。
935デフォルトの名無しさん:2005/06/13(月) 18:33:43
>>934
scroll.getVerticalScrollBar().isVisible();
とか?
936934:2005/06/13(月) 21:30:20
isVisible() は常に true を返すようです。類似したメソッドで、
scroll.getVerticalScrollBar().isShowing() というものがあり、
これを使うとうまくいきました。
937デフォルトの名無しさん:2005/06/14(火) 11:51:31
gui4jは確かに便利そうではあるんだけど、これってi18nはどうやって使うの?
XML定義ファイルをロケールごとに切り替えろってこと?
938デフォルトの名無しさん:2005/06/14(火) 12:10:06
GUIつーのは初期配置だけじゃなくてその後の動的動作がポイントだと思うんだけど
そのへんどーなんかね
やりやすいようにはみえんが
939デフォルトの名無しさん:2005/06/14(火) 21:10:49
このスレの前の方( >>211- )で絶賛されてた萌えSwing本買いました。
本屋には無かったんで Amazon で買ったんだけど、いいね、これ
まず意外と厚くてびっくり。
CDROMとか無駄がないし、文字も適度に小さくてなかなか好感触。
こういう良書は長く売れてほしいよ。表紙がネコミミだけど
940デフォルトの名無しさん:2005/06/15(水) 02:05:19
もう買ったのですね
私は買っていなかったりしますが……
その人のWebページにはいろいろな言語(JavaSwing他含む)の解説が載っています。
まだ買ってない人はそこをみて、購入するか決めるのがよろしいかと。
どれも非常に分かりやすくかかれているのでよさげです。
941デフォルトの名無しさん:2005/06/15(水) 09:35:28
ただのリファレンス本を何でそんなに有難がるんだ?
942デフォルトの名無しさん:2005/06/15(水) 11:37:19
gui4jなんか糞。

SwiXml/SwiXAT最高。

943937:2005/06/15(水) 16:55:33
>942
ほほう、i18nも考慮されてるし、素直な設計で使いやすそう。紹介サンクス。
944デフォルトの名無しさん:2005/06/15(水) 18:01:33
実際のところビジュアルに開発できないのなら
実行してテストを繰り返すのか?

効率悪いなぁ
945デフォルトの名無しさん:2005/06/24(金) 15:27:49
JavaOneで語られるJavaの今と未来
http://www.itmedia.co.jp/enterprise/articles/0506/24/news058.html

> 「JavaOneの最もクールな発表の一部は、GUIに関連したものになるだろう」
> とJavalobbyのロス氏は予測する。「特にクールなのは、SunがMustangととも
> に披露する新しいデスクトップJava機能だろう。わたしはその一部を見たこと
> があるが、あれはとても素晴らしい」。

期待してもいいですか?
946デフォルトの名無しさん:2005/06/24(金) 17:38:25
> 新しいデスクトップJava機能
ってのがJDICだけだったら(´・ω・`) かも
947デフォルトの名無しさん:2005/06/24(金) 18:04:03
LookingGlass…は去年の話だしなぁ。
948デフォルトの名無しさん:2005/06/24(金) 20:12:28
おそらく、世界中の衛星写真が見れる機能が搭載される。
949デフォルトの名無しさん:2005/06/25(土) 00:53:42
Sunには全く期待していません
950デフォルトの名無しさん:2005/06/25(土) 11:52:27
>>948
それってデスクトップ機能なのか?
951デフォルトの名無しさん:2005/06/25(土) 12:19:05
>>950
デモはJEditorPaneはりつけてGoogle Map表示するだけ
952デフォルトの名無しさん:2005/06/25(土) 12:33:41
つまりJEditorPaneがJavaScriptを解釈してAJAXだな?
953デフォルトの名無しさん:2005/07/02(土) 00:09:20
AJAXとFlashのXMLSocketってどっちがパクリ?
954デフォルトの名無しさん:2005/07/02(土) 01:10:55
Ajaxは、既存技術の集まりに名前をつけただけだから、ぱくったりぱくられたりしない
955デフォルトの名無しさん:2005/07/02(土) 10:43:26
単なるJavaScriptだしな。
956デフォルトの名無しさん:2005/07/09(土) 22:09:56
これからJavaのGUIアプリを作ろうと思っています。

Swingベースでソースコードが公開されているアプリケーション
って何かありますでしょうか。
957デフォルトの名無しさん:2005/07/09(土) 22:12:01
>>956
Sunのサンプル
958デフォルトの名無しさん:2005/07/09(土) 22:12:52
>>956
NetBeans
959デフォルトの名無しさん:2005/07/09(土) 22:24:21
>>957
ありがとうございます。
これは既に見ています。
実際に利用されているアプリケーションのサンプルがあると
良いのですが。

>>958
ありがとうございます。
NetBeansの存在は知っていますが、多分巨大すぎて参考に
ならないかと。

フリーウェア等でGUIインターフェースに凝ったようなものを
ご存じでしたらお願いします。
960デフォルトの名無しさん:2005/07/09(土) 22:49:24
>>959
つうか、NetBeansつかうだけでいいんじゃねぇの?
961デフォルトの名無しさん:2005/07/09(土) 22:53:50
>>959
具体的にはどういうアプリを作りたいの?
GUIの程度によっては>>960の言うようにNetBeans使ってSunのサンプル
見れば十分だろ?
962デフォルトの名無しさん:2005/07/09(土) 23:09:21
Swingはサンプルなくても普通に作れるよなぁ
ってSWTスレに出没してたやつか
963デフォルトの名無しさん:2005/07/10(日) 00:08:43
>>959
@あいてぃー会議室の有望新人いっさみたいなやつだな。
・・・ちょっと言い過ぎた。
964デフォルトの名無しさん:2005/07/10(日) 00:11:20
>>959
SwingSet2
965デフォルトの名無しさん:2005/07/10(日) 02:13:53
いっさわらた
966デフォルトの名無しさん:2005/07/10(日) 02:16:35
ナイスレスれす。
967デフォルトの名無しさん:2005/07/14(木) 01:55:29
>>959

http://v2c.s50.xrea.com/
今もコレで見てる
968デフォルトの名無しさん:2005/07/14(木) 20:16:53
久しぶりにMFC使うとSwingの良さが分かると言うか
MFCのひどさに泣きそうになる。

せめて.NETで作りたかった。
969デフォルトの名無しさん:2005/07/14(木) 20:19:41
俺もWin専用GUIアプリはMFC捨てて.NETで作りたいな
あれはDelphiとかBCBやってきた身としてはとっつきやすい

Swingは次元が違いすぎる(この場合ほめ言葉)のでアレだ
970デフォルトの名無しさん:2005/07/16(土) 00:16:05
>>969
次元とは具体的にどんな感想?
971デフォルトの名無しさん:2005/07/16(土) 00:16:54
やってみればわかるかと
972デフォルトの名無しさん:2005/07/16(土) 00:51:22
>>970
http://www.netbeans.org/files/documents/4/475/matisse.html

これに比べたら他のIDEなんておもちゃ
973デフォルトの名無しさん:2005/07/16(土) 00:52:41
それまだきてないだろ
ただ、さりげなくSwingの特徴であるhtmlつかってるのわらた
ラベルで複数行表示とか便利だもんね
974デフォルトの名無しさん:2005/07/16(土) 00:54:17
>>973
4.2のデイリービルド落として、ちょっと設定すれば体験できる

http://d.hatena.ne.jp/nowokay/20050627#1119819944
975デフォルトの名無しさん:2005/07/16(土) 00:55:28
いや、そういうのだったら3からおいかけてるからあれだが
さすがにIDEで未完成のバージョンが「現状できる」とは俺はいえん
976デフォルトの名無しさん:2005/07/16(土) 01:24:03
GUIのライブラリの出来とIDEは切り離して考えた方が良くない?
まあ、生産性の部分ではIDEを抜きには考えられないと思うが。
977デフォルトの名無しさん:2005/07/16(土) 02:37:28
【ちょっといいですか?】

コマンド処理というか、メニューの処理ってどうしてます?
カットやコピーみたいに複数のコンポーネントで共有してる場合とか。
いろいろググってみたけど見つからないのでCommandManagerなんてのを
自作してやってますが、いい感じのフレームワークとかあるんでしょうか?
978デフォルトの名無しさん:2005/07/16(土) 02:48:40
コマンドパターンそのの
979デフォルトの名無しさん:2005/07/16(土) 02:49:06
そのものだった
980デフォルトの名無しさん:2005/07/16(土) 03:06:44
>>977
つ javax.swing.Action
981977:2005/07/16(土) 13:37:37
コマンドパターンと言えばいいんですね。

例えば複数のイメージを開いて編集できるアプリケーションの場合、
「終了」コマンドはアプリケーションで、
「保存」コマンドはアクティブなドキュメントで、
「コピー」コマンドはアクティブなイメージのビューで
ハンドリングしたいのですが、普通はどうやって処理するのか知りたくて、
この辺を解説してるところを探しているのですが、なかなか見つかりません。
982デフォルトの名無しさん:2005/07/16(土) 13:49:53
全部アプリケーションで受けてその後呼び出し。
983デフォルトの名無しさん:2005/07/17(日) 19:22:17
>>972
すげーのは分かったけど、FlashPlayerで解説すんなとも思った。
984デフォルトの名無しさん:2005/07/17(日) 20:31:53
なぜ?
985デフォルトの名無しさん:2005/07/17(日) 20:45:10
JavaのツールなのにAppletじゃないって悲しいことって他にあるかい?
986デフォルトの名無しさん:2005/07/17(日) 21:21:26
アプレットだとVMは言ってないと見てもらえないし広く知ってもらいたいためでは?
それにアプレットではなんでもできるけど、ナビゲーションツールとして
便利というわけではないし、あくまでも3層式アプリ用とわりきってるのだろう
987デフォルトの名無しさん:2005/07/17(日) 21:34:45
こういうプレゼンテーションはFlashの方がよさそうな気もするJava技術者
988デフォルトの名無しさん:2005/07/17(日) 21:45:55
AppletはもうやめてFlexと仲良くやっていこう
989デフォルトの名無しさん:2005/07/17(日) 22:06:53
Flexは細かいGUIとか作るとちと厄介だしなぁ
金もかかるし
990デフォルトの名無しさん:2005/07/17(日) 23:49:43
>>983
適材適所だろ。
991デフォルトの名無しさん
金槌をもった人間には、あらゆる物が釘に見える。