Java低速GUI Swing 3

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ハードウェアの高スペック化、JavaVMのホットスポットの高速化に伴い、
パフォーマンスの問題が改善されつつあります。
しかしながら、"Java"というだけで犬猿されつつあるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 2 (前スレ)
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI 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
2デフォルトの名無しさん:2005/07/19(火) 00:37:03
クライアントサイド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デフォルトの名無しさん:2005/07/19(火) 00:38:07
4デフォルトの名無しさん:2005/07/19(火) 00:40:11
書籍
赤坂玲音著「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デフォルトの名無しさん:2005/07/19(火) 00:41:47
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/


SynthLaF
ユーザーを虜にするものは機能だけではありません。
見た目のCoolさでアピールしてはいかがでしょうか。
(雄の孔雀が美しい尾羽を持つように:-))
[ja]
IBM 進歩したSynth 最新のSwingルック・アンド・フィールを使うとカスタムUIが手軽に
http://www-6.ibm.com/jp/developerworks/java/050318/j_j-synth.html
[en]
Sun The Synth Look and Feel
http://www.javadesktop.org/articles/synth/index.html
6デフォルトの名無しさん:2005/07/19(火) 00:42:49
VisualStudioのようなポトペタ開発環境がほしい!!
NetBeans
http://www.netbeans.org/index_ja.html
Eclipse+VisualEditorPlugin
http://www.eclipse.org/
http://www.eclipse.org/vep/
7デフォルトの名無しさん:2005/07/19(火) 00:49:54
おつ

そういやいつまで「低速」がつくんだろうか
1.4.1からはDirectXとか使って高速化してるし
SWTも多少いじるとJFaceとか必要だからあっちにくらべて遅くねぇーよ
8デフォルトの名無しさん:2005/07/19(火) 02:56:21
そう言えば最近SWTの評判を聞かないなぁ…
9デフォルトの名無しさん:2005/07/19(火) 06:19:12
犬猿されつつあるw
10デフォルトの名無しさん:2005/07/19(火) 06:44:20
敬遠じゃねぇのかYo!
11デフォルトの名無しさん:2005/07/19(火) 10:32:05
ブビ六ライクな環境に毒されているタコです。
レイアウトマネージャって使うのデフォですか?
(というか皆さんは思い通りに配置出来てますか?)

ポトペタに慣れると激しく使い難いです。

12デフォルトの名無しさん:2005/07/19(火) 11:15:48
>>11
デフォ。
GridBagLayoutになれたら、むしろVBの頃の方が面倒くさかったと思えるようになってきた。
コントロールのサイズ合わせとか、縦横の座標あわせとかね。

ところでSwingのコードを手書きしていた頃は、
GridBagLayoutを敬遠していたんだ。なんだか複雑そうな印象があって。
代わりにBoxLayoutを組み合わせてやってた。
でも、IDEで書いてみたらそれほど複雑じゃないね。Eclipse + VE使ってます。
13デフォルトの名無しさん:2005/07/19(火) 13:39:39
レイアウトマネージャは便利
最初は確かに慣れるまでは手間かもしれないけど
複数のコントロールを綺麗に位置あわせとかは絶対座標じゃ大変

絶対座標がいいのならあぶそりゅーとレイアウトかNullレイアウトつかいな
14デフォルトの名無しさん:2005/07/19(火) 15:53:35
>>12-13
tくす。やっぱデフォですか。orz。
今ねっとびーんずでペタペタやっとるんですけど、これはかなりイライラしますね。

今まさに、すべてのコントロールが横一列に(無造作に)並んじゃっているので、どうしたもんかと思案中ですw
15デフォルトの名無しさん:2005/07/19(火) 17:10:25
>>12
おまえは俺か!

ウィンドウとして使わずに全画面でVBアプリの様にするならNetBeansのIDEについてくるAbsoluteLayoutってのが便利だったよ。
でも俺も>>12と同じでGridBag使うのがいいと思うね。
大変だと思うのは最初の3回くらいだし。

16デフォルトの名無しさん:2005/07/19(火) 20:40:51
>>14
まずレイアウトの勉強してくれ

デフォではぼーだーやふろーになってるがこの2つと
ぼっくすの3種類の組み合わせだけでまずGUI作成はおわり

レイアウトが分からないってことはpackとか推奨サイズの意味もまったくわからんだろうね

幸いAWTとSwingの資料は大量にあるので勉強してみよう
17デフォルトの名無しさん:2005/07/19(火) 20:40:54
>11
俺も GridBagLayout を強く勧める。
敷居は高そうに見えるけど、
簡単なサンプルで少しずつ学べば大丈夫。
Eclipse + Visual Editor なら制約とか勝手に宣言して加えてくれるし。

全画面のアプリ作る時でも、GridBagLayout でレイアウトしといた方がいいですよ。
(あとあとコンポーネント足したり、移動させたりするわけだし。)

VBでプログラミングしたことないから分からないけど
GridBagLayout に慣れた後で MFC(VC++) で画面作れ
と言われるとストレスで死にそうになる。
ダイアログのプロパティ開いて、WM_SIZE選択して、
OnSize() の中に10個も20個もあるコンポーネントを
素敵に並べ替えるコードをネチネチ書き連ねて、、、自分が惨めになる。
18デフォルトの名無しさん:2005/07/19(火) 20:59:43
NetBeansでNullLayoutで部品配置して、GridBagLayoutに変更、GrigBagLayoutカスタマイザーで調整。
これ。
最強l。
19デフォルトの名無しさん:2005/07/19(火) 21:17:34
VEはフレームにサイズ設定いれてくるのがだめぽ
20デフォルトの名無しさん:2005/07/19(火) 22:59:35
RTFをw3c標準のHTMLでオエっと吐き出す方法を教えてください(><)
21デフォルトの名無しさん:2005/07/19(火) 23:30:20
>>7
SWTのスレが、高速名乗ってるからじゃないの?w
SWTが、高速の看板おろしたら低速の看板も外せばいいんじゃないかな、と。
低速といわれてるSwingの速さにみんなびっくりするから低速ってのは入れてて欲しいww
22デフォルトの名無しさん:2005/07/19(火) 23:31:16
>>20
少なくとも、Swingでは無理。
23デフォルトの名無しさん:2005/07/19(火) 23:48:12
Flex見て興味をもったんだが、アコーディオンインタフェースがほしいな。
SplitPaneみたいな仕切りが何層にも分かれているんだけど、開いて置けるのは常に一画面。
んでバーにはそれぞれパネルのタイトルが表示できる。

タグインタフェースに似てるけど、こっちのが見た目がいい。
24デフォルトの名無しさん:2005/07/20(水) 00:45:01
MFCは1つのドキュメントを2つのビューで表示できるが、Swingってどうやるの?
25デフォルトの名無しさん:2005/07/20(水) 01:19:48
普通に自分でつくったモデルを二つのビューで表示するだけじゃないだろうか?
どういう意味の質問なんだろうか?
26デフォルトの名無しさん:2005/07/20(水) 04:36:26
「MFCのCDocumentやCViewに相当するクラスはないのか」
という意味なのだろう、きっと。
27デフォルトの名無しさん:2005/07/20(水) 04:55:31
Swingだってドキュメントとビューは分かれてるな
28デフォルトの名無しさん:2005/07/20(水) 19:59:48
Table2つ作って、同じTableModel参照させたら失敗した。
29デフォルトの名無しさん:2005/07/20(水) 21:42:44
どういうふうに?
30デフォルトの名無しさん:2005/07/20(水) 22:22:14
SplitPaneで右や下を基準にdividerLocationを指定する方法ってありますか?
resize時にも自動でやってくれるのとありがたいです。
31デフォルトの名無しさん:2005/07/21(木) 05:56:40
32デフォルトの名無しさん:2005/07/21(木) 13:43:52
おれそのインターフェース苦手なんだわ
なんでこんなのがあるのか不思議に思うくらい
33デフォルトの名無しさん:2005/07/21(木) 23:02:39
>>31
これこれ。これではバーがしょぼいけど
この贅沢にスペース取ってますよ感がすき。
34デフォルトの名無しさん:2005/07/22(金) 09:42:06
>>33
TabbedPaneでいいんじゃないかとおもっちゃうんだが、なんか良いこと在るのか?
35デフォルトの名無しさん:2005/07/22(金) 10:17:51
ユーザー受けがよい
36デフォルトの名無しさん:2005/07/22(金) 12:35:40
縦長のペインだとそれなりに使いやすい気はする。
スクロールするタブとか、すげえ操作しんどいし。
37デフォルトの名無しさん:2005/07/22(金) 14:18:56
スクロールさせないタブにすればいいじゃない
38デフォルトの名無しさん:2005/07/23(土) 16:00:37
初歩的な質問で申し訳ないのだが……。
ウィンドウの大きさを変更した時にウィンドウ内部のJPanel等の内部領域の大きさも追従させるにはどうすればいいのかな。
ウィンドウのイベントリスナでサイズ変更するたびに内部コンポーネントの大きさを弄くらなければならないのか、あるいは何らかの属性をセットすれば自動的に調節してくれるのか……?
39デフォルトの名無しさん:2005/07/23(土) 16:08:59
>>38
レイアウトマネージャ
40デフォルトの名無しさん:2005/07/23(土) 16:25:00
Swingほどレイアウトマネージャで動的なサイズに強いGUIはないだろ
41デフォルトの名無しさん:2005/07/26(火) 09:38:07
個人的にはTextPaneが早くなってくれれば言うこと無しなんだが
42デフォルトの名無しさん:2005/07/26(火) 10:18:03
質問。
フレームをドラッグしてリサイズしてる最中でも、レイアウトを効かせるのってできるんでしょうか。
普通に作ると、リサイズ→マウスのボタン離す→レイアウトとなり、
ドラッグ中にはレイアウトされません。
43デフォルトの名無しさん:2005/07/26(火) 13:25:49
>>42
Toolkit tk = Toolkit.getDefaultToolkit();
tk.setDynamicLayout(true);

動的変更やるかどうかは tk.isDynamicLayoutActive() で真偽値が取れる。
セットしても環境によっては無視される(falseのままとかtrueのままとか)。
4442:2005/07/26(火) 14:48:21
>43
思い通りになりました。ありがとうございます。
確かに、これでSystemDefaultのLookAndFeel使うと、
SWTの立場が危ういですね。
Swingだとネイティブのウィンドウシステムのウィンドウをバカスカ作る
わけじゃないので、リソース負荷も少ないし。
45デフォルトの名無しさん:2005/07/26(火) 15:53:21
SWT はちょっと触っただけだけど
API の直感的な分かりやすさは
Swing の方が上に感じる。

どーーーーしても Windows 的な L&F にしろって言われたら
仕方なく SWT 使うしかねーかなって程度じゃなかろうか。
(Swing の Windows L&F は native なものと微妙に違う時がある。)
46デフォルトの名無しさん:2005/07/26(火) 17:20:10
たまーにVBみたいに絶対座標ではりつけたいという人いるけど
NetBeansのAbsoluteLayout使えばいいだけだし、SPLなので組み込んでも問題ないし

そもそもソースコード見れば分かるが非常に小さいレイアウト部品で自分で作れるくらいのものだしね


SwingのLAFのネイティブとの違いは5.0で大幅に減ったから区別がつきにくくなったと思う

分かりやすさに関してはいわゆる普通のオブジェクト指向的プログラムで組むのがSwingで
自前でウインドウシステム作ったことがあるのならSWTはわかりやすいともいえる
SWTががんばるためにはVEで圧倒的優位なコード吐き出してくれるくらいにならないと難しい
47デフォルトの名無しさん:2005/07/26(火) 19:01:26
APIの構造が、Swingだと親に子供を乗せる感じだが、SWTは子供が親を飲み込む
感じ。両方やると混乱する。どっちを取るって言われたら漏れならSwingを取る

JFace使えってのもあるんだろうけど、どっちにしろEclipseが無いところで動かすの
めんどい。最近Swingで作ってJWSで配布ってよくやるから
48デフォルトの名無しさん:2005/07/26(火) 19:30:07
まじっすか?
JWSって流行ってるの?
49デフォルトの名無しさん:2005/07/26(火) 19:47:13
流行っています
50デフォルトの名無しさん:2005/07/26(火) 20:40:44
リッチクライアント案件ではいくつかあるな
どれも企業内アプリだから目立たないだろうが

JNLPAPI以外は通常のアプリとアプレットだから
特別な知識がいることもない
51デフォルトの名無しさん:2005/07/26(火) 20:41:04
>JFace使えってのもあるんだろうけど、どっちにしろEclipseが無いところで動かすの
>めんどい。最近Swingで作ってJWSで配布ってよくやるから

それは正確ではないな。なぜなら最近のEclipseではSWTで作って
JWS向けにexportする機能がついているから。強いて言えば「Ecliipse
が無いところで開発するのがめんどい。」だろう。
52デフォルトの名無しさん:2005/07/26(火) 20:50:38
IEなどのブラウザコンポーネントを使用するフリーソフトとかってよくあるけど、
これをjavaでやろうとするとSWTしかないんじゃない?Swingで使用できるIEや
Mozilla並みのブラウザコンポーネント/クラスライブラリってフリーのは無いん
じゃないか?いや商用でも動画とかフラッシュまで対応するのは無いんじゃ..
53デフォルトの名無しさん:2005/07/26(火) 21:18:31
>>50
>どれも企業内アプリだから目立たないだろうが
というよりも企業内アプリのようにそれなりのサポート体制
を構築できてユーザPC上のJRE/JWSの環境がまともに使えるところでないと
駄目っていうのが現状。

IBMのような昔からJavaクライアントアプリを出荷しているところで
さえ、エンドユーザ向け製品ではアプリケーション一つに対して
一つ専用JREを準備していて、ユーザPCの共通Java環境を全く信用していない
ってのがよくわかる。おかげで複数のIBM製品使うとHDDにJREが四つも五つも...
54デフォルトの名無しさん:2005/07/26(火) 22:06:32
NetBeansを使ったSwingレイアウト講座を開設してくれんかね。
2chブラウザやRSSリーダみたいなTree+List+Viewの三画面アプリが限界だ。
55デフォルトの名無しさん:2005/07/26(火) 22:07:17
NetBeansを使ったSwingレイアウト講座を開設してくれんかね。
2chブラウザやRSSリーダみたいなTree+List+Viewの三画面アプリが限界だ。
56デフォルトの名無しさん:2005/07/26(火) 22:08:23
NetBeansを使ったSwingレイアウト講座を開設してくれんかね。
2chブラウザやRSSリーダみたいなTree+List+Viewの三画面アプリが限界だ。
57デフォルトの名無しさん:2005/07/26(火) 22:25:10
やっちまった。この話はなかったことにorz
58デフォルトの名無しさん:2005/07/26(火) 22:38:00
にはは
59デフォルトの名無しさん:2005/07/26(火) 22:47:18
なんか板が重いよね
60デフォルトの名無しさん:2005/07/26(火) 22:52:08
なんか板が重いよね
61デフォルトの名無しさん:2005/07/26(火) 23:08:56
>>53
プライベートJREはシステムに左右されず使えるから別に悪くはないかと

>>54
基本的にパネル複数組み合わせてやれば十分
そのGUIの階層を深くしただけでおけ
62デフォルトの名無しさん:2005/07/26(火) 23:23:01
にはは
63デフォルトの名無しさん:2005/07/26(火) 23:27:09
>>52
JDIC使えばいいだけか。
64デフォルトの名無しさん:2005/07/26(火) 23:38:30
>>51
exportは楽でも、swtをJWSで使うとjarに署名が必要になるのは気になる
6547:2005/07/27(水) 01:07:19
>>51
その機能は知らんかったが「めんどい」の主な理由は >>64 の言うとおり。
Eclipseが入っていればPlug-inとしてアプリ単体で配布できるから、まぁアリかなぁと思った

察しのとおり企業内なんで「偽署名の警告出るけどポチっとしてね」が通用する場合も
あるが、セキュリティがどうのとか言い出す香具師が出てくる規模になると無理

かと言って認証局使うとコストが発生する。でもSwingでなくてSWTを使うことでそれを
回収する方法を漏れは知らない。そうまでして使う理由が漏れには無いってこと
66デフォルトの名無しさん:2005/07/30(土) 15:42:28
Swing自体じゃなくて、周辺ライブラリについての質問なのですが、
Swingと組み合わせて、ダイアグラム図エディタのようなものを
作るツールキットってないでしょうか?
draw2dのようなやつの、Swing版が希望なんですが…
67デフォルトの名無しさん:2005/07/30(土) 17:05:02
>>66
Graphics2Dじゃ駄目なのかい?
68デフォルトの名無しさん:2005/07/30(土) 18:16:51
つーかライトウェイトのコンポーネントがSwingなんでSwingはすべてDraw2Dといえるんだが

SWTのほうを先にやる時代なのかね?
たぶんSwingの出来ることの多さにびびるとおもわれ
69デフォルトの名無しさん:2005/07/30(土) 19:22:40
swingが高機能なのは知ってるがコンポーネント同士のコネクションって簡単に扱えるの?
UMLのクラス図でいう矢印みたいなやつやパワーポイントのコネクタみたいなやつね。
draw2dだとそのへん簡単に扱えるよね。
70デフォルトの名無しさん:2005/07/30(土) 21:38:00
>>69
どんなものかは知らんがJGraphというのはどうだ?
検索したらでてきたやつだけど
71デフォルトの名無しさん:2005/07/30(土) 22:04:43
GEFとかは?
http://gef.tigris.org/
72デフォルトの名無しさん:2005/07/30(土) 22:36:53
>>69
自作すれば?
7366:2005/07/30(土) 23:43:31
>>68
このあたり、
http://www13.plala.or.jp/observe/draw2d/draw2d_overview.html
を信じて、、Draw2Dは、SWTに依存するものだと思ってました。
これは間違いだったんですね。
> たぶんSwingの出来ることの多さにびびるとおもわれ
できることが多いのは結構なのですが、何でも自分でしなければいけないのは面倒なのです。

>>70のJGraphか、>>71のGEFが当たりっぽいですので試してみます。

GEFは、org.tigris.gef.* のGraph Editing Framework
http://gef.tigris.org/
と、org.eclipse.gef.* のGraphical Editing Framework
http://www.eclipse.org/gef/
は、別物なんですね。
74デフォルトの名無しさん:2005/07/30(土) 23:59:12
Draw2Dの話はただしくないとおもうぞ。
75デフォルトの名無しさん:2005/07/31(日) 20:32:53
Swingアプリ作る時ってIDEは何使ってる?
Eclipseのswingプラグイン使ってる人いるかい?
76デフォルトの名無しさん:2005/07/31(日) 22:12:23
普通はNetBeansだろうな
77デフォルトの名無しさん:2005/07/31(日) 22:26:23
jBuilderってのは無し?
78デフォルトの名無しさん:2005/07/31(日) 22:28:03
NetBeansって便利なんだけど
一括コメントアウトってできないの?
79デフォルトの名無しさん:2005/07/31(日) 22:55:08
>>78
できるよ
80デフォルトの名無しさん:2005/07/31(日) 23:17:40
>>78
コメントボタン押す、またはCtrl+Shift+T
81デフォルトの名無しさん:2005/07/31(日) 23:21:31
>>80
おおおお。すんばらしい。
メニュー>編集には無いのにボタン化やショートカットはあるのか
82デフォルトの名無しさん:2005/07/31(日) 23:51:58
みんな基本的には、JavaのGUIがデスクトップ分野で盛り返すこと期待してる?

おれはほとんど趣味の領域だけど,
Swingが陽の目のを見る日が来てほしいよ本気で…勉強したし。
まだ発展途上だと信じたい。
83デフォルトの名無しさん:2005/08/01(月) 00:04:34
>>75
俺はNetBeans使ってる。
eclipse+VEは重くてダメだった。

機能的にはどちらがいいのか知らない。
VEとNetBeansのフォームエディタ機能を比較してるサイトとかない?
84デフォルトの名無しさん:2005/08/01(月) 00:04:35
ECObejctって知ってるか?
あれがswingに新たな光をもたらしてくれる・・・

かもしれない(´・ω・`)
85デフォルトの名無しさん:2005/08/01(月) 00:16:19
>>82
期待はしてる

企業内アプリとかでは今でもそれなりに使われてるから、リッチクライアントが
もっと流行ればもっと多く使われるようにはなると思う
ただ、一般向けのソフトで使われることはあまりないだろうね。残念だけど。
86デフォルトの名無しさん:2005/08/01(月) 00:17:08
NetBeansはカスタムパネルが簡単に登録できるね。
レイアウトマスタリーになればVBより強力なツールになりそう。
87デフォルトの名無しさん:2005/08/01(月) 00:29:06
>>83
VEのGUIエディタなんて、まだ全然だと思った。
ちょっと変わったことするとすぐソースコードがおかしくなったりした。
(おかしくなるっていうのが、可読性の悪いコードを出力するっていうのなら、
まだゆるせるが、間違った部分にGUI設定のコードを出力して、コンパイルエラーになったりする。)

あと、GUIのデザイン後に、手でコードを編集、追加したりすると、
これも、デザインが不能になったりする原因になる。あとやっぱりクソ重い。

でも、コードを編集する機能としては、NetBeansよりもeclipseのほうがずっと便利だから、
結局おれはeclipseを使っている。
VEよりもJiglooとかのほうが軽くて良さそうだった。
88デフォルトの名無しさん:2005/08/01(月) 00:43:24
>でも、コードを編集する機能としては、NetBeansよりもeclipseのほうがずっと便利だから、

そうか?
89デフォルトの名無しさん:2005/08/01(月) 00:52:53
先頭列コメントをコード整理の対象からはずしてくれる分
NetBeansのほうが使いやすいと感じた
小規模開発ならNetBeans、そうでないならEclipseかな
90デフォルトの名無しさん:2005/08/01(月) 00:52:53
87ではないが、try〜catchの自動生成(またはthrowsの追加)は便利だと思う

他の機能は慣れればおk。
操作は全然違ったりするけど、一通りEclipseと同じ機能が実装されてる気がする。
9187:2005/08/01(月) 01:20:25
メニューから選べるような基本的な編集機能はどっち同じようなもんだと思うけど、
編集時の細かい操作は、eclipseの方が優れていると思った。
ぱっと思い出せたのはこんな感じ

・コンパイルエラーを簡単に自動修正できるところ(クイックフィックス?)
・インターフェースを匿名クラスで実装しようと、補完しただけで必要なメソッドをオーバーライドするところ
・補完後のカーソルの移動の仕方とか
 textbox.setTe|   ←この辺で補完
 textbox.setText(|)   ←カーソルが()の間にある。ここでTABで、)の後ろに移動する
・コード補完のポップアップとかの使い勝手もeclipseの方が軽快に動作すると感じた
 eclipseは1文字入力した瞬間に絞り込まれるけど、NetBeansは、ちょっと待たないと絞り込まれない

開発効率がどれだけ違うかっていうと大差ないだろうけど、このあたりの動作が俺にとっては便利だった。
スレ違いごめん。
92デフォルトの名無しさん:2005/08/01(月) 03:05:47
このスレ的にはGUI製作含めての効率のよさが重要だからNetBeansということになるんだろうか。
補完スピードも別に変わらんよ。どっちも一瞬で出る。

Eclipseで補完で大文字小文字の判定なしってどうすんだっけ。
2.1までは快適だったけど3以降は・・・

まぁNetBeansはカスタマイズしないとつらいけどなー。
93デフォルトの名無しさん:2005/08/01(月) 06:32:22
>>91
ほかにもimportの候補とか、細かい点ではEclipseがいいけど、おおざっぱな点ではNetBeansが使いやすい。
try〜catchの自動挿入は実装してほしいけどね。
94デフォルトの名無しさん:2005/08/01(月) 06:33:48
木を見て森をみずなEclipseと、森をみて木を見ずなNetBeans
95デフォルトの名無しさん:2005/08/01(月) 12:18:44
emacsキーバインドがあるかないかが、最重要なので、eclipse。
その他は似たようなもんか。
96デフォルトの名無しさん:2005/08/01(月) 12:20:45
VEしか使ってない身には重たいのとメモリ食うのが迷惑だけど
他はまぁ許容範囲と言うか、非常によく出来ている。
NetBeans を使ってみたいものの
会社が買ってくれない以上はどうにもならん。
97デフォルトの名無しさん:2005/08/01(月) 12:44:36
NetBeansを買う?
98デフォルトの名無しさん:2005/08/01(月) 12:58:39
フリーなのしらんのか
99デフォルトの名無しさん:2005/08/01(月) 13:00:47
知らなかった。。
100デフォルトの名無しさん:2005/08/01(月) 14:40:20
やっと時代がjwsに追いついた?
101デフォルトの名無しさん:2005/08/01(月) 15:48:22
WebStartなんて業務系は出たときから使ってたが
5.0からは通常のAPIも一部とおるようになってきているな
もちろんサンドボックス内で

JNLPAPIの立場がなくなってきたかも
102デフォルトの名無しさん:2005/08/01(月) 16:31:40
Webアプリとかよく知らないんだけど、
Yahoo!ゲームの将棋とかで使われてるGUIはSwingなの?
103デフォルトの名無しさん:2005/08/01(月) 16:44:08
>>101
結構使われていたのかな。ちょっと以外。
ブラウザ嫌い&リッチクライアント万世なおれとしては
Swing+jwsががんばってくれると凄く嬉しい。
104デフォルトの名無しさん:2005/08/01(月) 16:51:05
JWS使わないでSwingでのリッチクライアントもどきなら何度も見た

署名いれて印刷とかなんでもできるようにするより
普通にアプリケーションにしてjarをhttpでダウンロードして実行するだけのを作ってるね

どうせJWS入れるにしても最初はJRE入れないとダメだし、
それならプライベートJREにしてバージョン固定させて他の環境と共存しやすいようにしたりね

これなら配布コストはかからないし
105デフォルトの名無しさん:2005/08/01(月) 20:13:45
>>101
>5.0からは通常のAPIも一部とおるようになってきているな
通常のAPIってなんのこと?
106デフォルトの名無しさん:2005/08/01(月) 20:24:17
>>105
ドキュメントくらいよもう
新機能のところにいろいろとかいてあるんだし
107デフォルトの名無しさん:2005/08/01(月) 21:06:00
>>106
新機能のところにあると言うことで、
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/javaws/enhancements-1.5.0.html
を見てみた。
|サンドボックス内で動作する JNLP アプリケーションは、
|Java 印刷 API を使用したフルサポートの印刷を利用できるようになりました。
|JNLP アプリケーションが印刷を試みるたびにセキュリティダイアログを表示し、
|そのアプリケーションに印刷を許可するかどうかをユーザに確認します。

JNLPAPIを使わなくても、普通に印刷APIを使えるようになって、セキュリティダイアログを表示したりできるということですか。
ClipboardServiceとか、FileOpenServiceもそうなるのかな。
108デフォルトの名無しさん:2005/08/01(月) 23:33:01
>>75
のレスからいきなり活発になったな。このスレ
109デフォルトの名無しさん:2005/08/01(月) 23:44:15
RTFStringみたいなクラスってないのかな?
110デフォルトの名無しさん:2005/08/01(月) 23:52:06
>ClipboardServiceとか、FileOpenServiceもそうなるのかな。
いつかはなるだろ・・・たぶん
111デフォルトの名無しさん:2005/08/01(月) 23:54:19
>>93
try〜catchは4.2で実装するみたいだね
daily buildで使えるようになってたよ
112デフォルトの名無しさん:2005/08/02(火) 00:09:48
>>111
まじっすか?
欲しいよぉ〜と中の人に言ってみた甲斐があったのかな
113デフォルトの名無しさん:2005/08/02(火) 00:10:33
>>96の会社がMSだとしたら、ガクブル
114デフォルトの名無しさん:2005/08/02(火) 07:11:51
>>113
SunからMSが買うってか
J#.NETでSwing実装と・・・
115デフォルトの名無しさん:2005/08/02(火) 23:45:59
J#.NETってなんだい
116デフォルトの名無しさん:2005/08/02(火) 23:47:14
>>115
ぐぐることくらいしたらどうだ
117デフォルトの名無しさん:2005/08/03(水) 00:35:05
>>115
MacでSWING使うとなかなかいいじゃんの略。
118デフォルトの名無しさん:2005/08/03(水) 00:39:30
>>115
JavaScriptでSwingアプリケーションが組めたら便利だよね、の略
119デフォルトの名無しさん:2005/08/03(水) 00:45:20
JavaとJavaScript混同してる本屋いまだに多いよね、の略じゃなかったっけ?
120デフォルトの名無しさん:2005/08/03(水) 00:56:31
質問なんだけど、JButtonみたいな標準のコンポーネント、
あるいは自作したコンポーネントを、ドラッグさせて表示位置を変更させるみたいな事って、
できるかな。

つまりEclipseのomondoみたいなツールを作ってみたいんだけど・・・。
121デフォルトの名無しさん:2005/08/03(水) 00:56:55
本屋で分離しておいてるのは見たことがない
122デフォルトの名無しさん:2005/08/03(水) 00:57:17
Rhinoをこよなく愛する俺からしてみれば
JavaScriptはまさしくStrinptingJavaなんだがw
123デフォルトの名無しさん:2005/08/03(水) 00:57:55
イベントくらい勉強しよう
124デフォルトの名無しさん:2005/08/03(水) 00:59:00
NetBeansでGridLayout使えばいいのでは?
125デフォルトの名無しさん:2005/08/03(水) 01:00:06
あるいは、Visual Editorみたいな・・・
126デフォルトの名無しさん:2005/08/03(水) 01:16:34
>>120
できるよ。
サンプルがネットに転がってたのを見たことがある。忘れたけど。

答えは>>123
127デフォルトの名無しさん:2005/08/03(水) 01:39:29
イベントでそんな事ができるんだ・・・。ヒントありがとう。
頑張って調べてみます。

ドラッグ中のコンポーネントを半透明表示とか出来たらイイなぁ・・・。
128デフォルトの名無しさん:2005/08/03(水) 02:08:45
こういうのが見つかった。Swingってやっぱりなんでも揃ってるのね。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/dragndrop/
129デフォルトの名無しさん:2005/08/03(水) 02:42:44
>>128
この場合awt.dndは用途が違わないか?
130デフォルトの名無しさん:2005/08/03(水) 09:42:40
paintオーバーライドを承認?
MouseMotionListenerが勝利の鍵?
131デフォルトの名無しさん:2005/08/03(水) 12:51:57
む、用途が違うのでありますか・・・・。
MouseMotionListenerでドラッグ中に・・・・paint? ええええ?orz
132デフォルトの名無しさん:2005/08/03(水) 13:52:20
Swingはpaintをオーバーライドしちゃいかんだろ
133デフォルトの名無しさん:2005/08/03(水) 14:39:14
だめなの?
paintComponentオーバーライドとどこが違うの?
paintComponentは、間違えてpaintComponentsをオーバーライドしてしまってはまる。
134デフォルトの名無しさん:2005/08/03(水) 15:04:12
paintはAWT時代のもので
コンポーネントをまるごと描画する

Swingはそのコンポーネントの状態に応じて
paintメソッドが各種paint〜メソッドをコールする

最適化のために描画バッファの持ち方が様々だから勝手にコントロールはできんよ
135デフォルトの名無しさん:2005/08/03(水) 18:50:50
ソース眺めてるとコレでもかってくらいに
protected な paintHOGE があって
困惑したり感動したりした。

table 系のレンダリングが少し混乱気味な気がする。
(UI 以外でも描画に関わるメソッドが用意されてるあたりが。)
136デフォルトの名無しさん:2005/08/03(水) 19:40:25
まぁユーザーはコンポーネント、チルドレン、ボーダーの3つしか使わんから
内部まではしる必要ないけどね
その3つをオーバーライドするってのだけ知っていればよい
137デフォルトの名無しさん:2005/08/11(木) 08:54:27
rtfをhtmlで保存するとき皆どうしてるの?
138デフォルトの名無しさん:2005/08/11(木) 11:05:27
そんなことはしない
139デフォルトの名無しさん:2005/08/19(金) 12:37:37
awtとswingのカラミ関連だが、軽量コンポーネントと重量コンポーネントの混載の際、軽量の方が重量に重ね描きされて
描画が正しく行われないあの不具合はいつ直るんだろう・・・。
140デフォルトの名無しさん:2005/08/19(金) 12:44:21
>>138
すれ
141デフォルトの名無しさん:2005/08/19(金) 12:47:29
>>139
混載するのが悪いんだろ。
142デフォルトの名無しさん:2005/08/19(金) 14:28:51
>>139
原理的に、そういう仕様だと考えるべきだろう。

Canvas3Dのlightweight版ホスイナァ
143デフォルトの名無しさん:2005/08/21(日) 00:29:41
全てをSwingにした場合、AWTのみで作った場合と比べて
どの程度性能が落ちるのでしょうか?
処理速度は変わらず、メモリがちょっと大目に食う程度でしょうか?
144デフォルトの名無しさん:2005/08/21(日) 00:43:28
なにをするかによる。
AWTでできる程度のことだったらSwingでもそんなに遅くないんじゃないか?
145デフォルトの名無しさん:2005/08/21(日) 00:52:04
SWTとSwingはえらい差が出るけどな・・
146デフォルトの名無しさん:2005/08/21(日) 01:24:19
いまだにSWTが速いと思い込んでるやついるのか
147デフォルトの名無しさん:2005/08/21(日) 01:25:01
>>144
2DのアクションRPGではどうでしょうか?
聖剣伝説2(SFC)レベルのアニメーションが出来れば満足です。
148デフォルトの名無しさん:2005/08/21(日) 01:28:18
>>147
余裕で出来るがそれSwingと関係ないぞ
Java2Dを勉強しなされ
149デフォルトの名無しさん:2005/08/21(日) 01:43:13
>>146
そりゃネイティブコードで組んでるアプリには勝てないけどさ、
ここはJavaスレであって、awt swing swtの中ではswtが速いという意味だが。
150デフォルトの名無しさん:2005/08/21(日) 01:43:20
>>148
Graphics2Dのみで頑張れという事ですか?
ならAWTだけで十分という結論になりそうですね・・・
Swingの利点はゲームには関係ないのでしょうか?
151デフォルトの名無しさん:2005/08/21(日) 02:35:16
関係ないんじゃないの?
そもそも一般的なウインドウアプリ書くためのライブラリなんだから。
ただJFrameで作っとけばRPGとかで体力表示するウインドウとかを
Swing部品使って作ることで手間を省けるとかはあるかもな。
152デフォルトの名無しさん:2005/08/21(日) 03:07:09
>>151
そうですね。
リアルタイム処理に影響しない街名ラベルの
アニメーションなどに絞って使おうと思います。
153デフォルトの名無しさん:2005/08/21(日) 03:31:39
ttp://shin.cside.com/product/shingl2/index.htm
とかでもJFrameだけだけ使ってあとはJava2Dって感じみたい
154デフォルトの名無しさん:2005/08/21(日) 04:16:39
>>149
>awt swing swtの中ではswtが速いという意味だが。

大間違い。
155デフォルトの名無しさん:2005/08/21(日) 04:18:37
詳述無き否定はタダの妄想
156デフォルトの名無しさん:2005/08/21(日) 04:33:20
自分で調べてみればいいじゃん。
WindowsでもSWTのTableはかなり遅くて使い物にならないし
LinuxだとあきらかにSwingよりも遅い。
157デフォルトの名無しさん:2005/08/21(日) 04:38:00
>>154
まちがいっていうほどじゃないとは思うけど、
> 詳述無き否定はタダの妄想
っていうのはタダの負け惜しみ
158デフォルトの名無しさん:2005/08/21(日) 04:40:40
自演乙
159デフォルトの名無しさん:2005/08/21(日) 11:05:07
http://pcweb.mycom.co.jp/articles/2005/08/16/mustang/

Java SE6でSwingのコンポーネントのレンダリングにネイティブ
APIを使うようになるとあるけど、これってSWTと同じように
JNI経由で行うってこと?

知識が無いもので分かる人解説たのみます。
160デフォルトの名無しさん:2005/08/21(日) 11:38:37
SystemLAFのレンダリングにネイティブ使うってことだろ?
161デフォルトの名無しさん:2005/08/21(日) 11:46:21
AWTみたいになるってこと?
162デフォルトの名無しさん:2005/08/21(日) 11:50:12
>>159
良く分からん。

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/index.html
> Feature: Improve Windows Look and Feel
> ・Use Microsoft's API for rendering portions of components.
> Feature: Improve GTK Look and Feel
> ・Use GTK API for rendering portions of components (6185456).

とかあるねぇ。でも、Bug ID:6185456 って
mustang(b42) で Closed, fixed になってんだよね。
Linux版とか試してないので、どう変わったのか分からんけど。
163デフォルトの名無しさん:2005/08/21(日) 12:51:44
そういやどっかにSwingとSWTのベンチマークがあったな・・
どっちもどっちだった
164デフォルトの名無しさん:2005/08/21(日) 12:55:20
SWTも細かいことやろうとするとjfaceだからな
165デフォルトの名無しさん:2005/08/21(日) 13:38:40
つーかSWTの開発陣自身、eclipseがSWTを採用したのは速いからではなく
見た目を重視したからだと言ってるわけで。最初Swing版を作ってIBMの
コンペに出したら落ちたらしい。だからもともと速度重視で作られている
わけではない気がする。

>>156 今のtableは遅くないよ。
166デフォルトの名無しさん:2005/08/21(日) 14:22:54
じゃあこのスレタイは間違っているということだな。
167デフォルトの名無しさん:2005/08/21(日) 14:42:46
どんぐりの背比べって感は否めない。
168デフォルトの名無しさん:2005/08/21(日) 17:32:31
機種に依存しない、UIがGUIのツールを簡単に作れるのはSwingのいいところ
169デフォルトの名無しさん:2005/08/21(日) 17:57:04
安定してて凝った Look and Feel 無いかよ
170デフォルトの名無しさん:2005/08/21(日) 17:58:46
前スレで、敢えて低速の語を残そうという話になってたような記憶が。
171デフォルトの名無しさん:2005/08/21(日) 17:59:39
>>169
swingなら自前でかけるぞ。

#俺はやる気ナッシングだけどな。
172デフォルトの名無しさん:2005/08/21(日) 19:17:48
JPEGを読み込んで指定色透過させる方法はありますか?
173デフォルトの名無しさん:2005/08/21(日) 20:13:16
>>172
ある
174デフォルトの名無しさん:2005/08/21(日) 20:14:15
けどSwing関係ないな
175デフォルトの名無しさん:2005/08/21(日) 20:19:21
Swingスレというより画像処理スレになってるな
いい傾向だ
176デフォルトの名無しさん:2005/08/21(日) 20:33:01
どこがいい傾向なんだ
ただのスレ違い
177デフォルトの名無しさん:2005/08/21(日) 21:31:58
>>173
教えてください。
178デフォルトの名無しさん:2005/08/21(日) 21:51:12
JPEGの圧縮方法わかってるならカラーキーがどういう結果になるか分からんかね?
179デフォルトの名無しさん:2005/08/21(日) 22:11:24
回りくどくて無駄にえらそうなきもいレスは要らないのでもういいです。
180デフォルトの名無しさん:2005/08/21(日) 22:17:35
最近釣り多いな
181デフォルトの名無しさん:2005/08/21(日) 23:29:36
釣なのか真性なのか…。
182デフォルトの名無しさん:2005/08/22(月) 03:03:45
http://www.esm.jp/jude-web/index.html
ここのjudeというアプリケーションを使っているのですが、
起動するとディスプレイ全体にアンチエイリアスがかかってしまいます。
どうやらjavaで作られたのが原因らしいのですがこれはSwing特有の機能なのでしょうか?
183デフォルトの名無しさん:2005/08/22(月) 11:22:26
ディスプレイ全体ってなんだよ
184デフォルトの名無しさん:2005/08/22(月) 11:28:21
   _____
  ||// ∧_∧|∧_∧
  ||/  ( ´・ω・)(    ) ジャギーでまくり
  ||   (    )|(  ● )
    ̄ ̄ ̄ ̄ ̄ u―u'

   _____
  ||// ∧_∧|∧_∧
  ||/  (n´・ω・)n   ) でも Swing 使ってる…
  ||   (ソ  丿|ヽ ● )
    ̄ ̄ ̄ ̄ ̄ u―u'

   _____
  ||// ∧_∧|∧_∧
  ||/ r(    (n´・ω・`n) Swing 使ってるのにジャギーでまくり…
  ||  ヽ  ● )|(     )
    ̄ ̄ ̄ ̄ ̄ u―u'
185デフォルトの名無しさん:2005/08/22(月) 11:35:00
Swingは、というかJava2Dでアンチエイリアスのヒントはいれれるからな
186デフォルトの名無しさん:2005/08/22(月) 13:59:26
イベントが起きると、あるパネルに貼り付けられているラベルの上に、
透過色の四角形でそのラベルにマスクをかけるようなことをしたいのですが、
できますでしょうか?
graphics2Dで色の透過ができることはわかったのですが、
ラベルの下に透過させた四角形が潜り込んでしまうんです。
187デフォルトの名無しさん:2005/08/22(月) 14:03:46
GlassPaneに描画すればいいんじゃない?
188デフォルトの名無しさん:2005/08/22(月) 14:22:05
そのもぐりこんでるコードさらしてみ
189182:2005/08/22(月) 15:10:41
>>183
文字通りディスプレイに映る全ての文字がかすれてしまいます。

>>185
レスありがとうございます。やはりそうでしたか。
190デフォルトの名無しさん:2005/08/22(月) 17:59:17
>>189
SwingやJava2Dが他のアプリーケーションの描画をかえることはないぞ
191デフォルトの名無しさん:2005/08/22(月) 23:32:27
液晶ディスプレイ使ってて、Judeが立ち上がるとVGAで
フルスクリーンモードになるような設定でもしてるとか?
見てみたいんでスクリーンショット貼ってくれ。
192186:2005/08/23(火) 10:55:54
>>187,188
レスありがとうございます。

要点以外は端折って書きました。
あと、ここに書いてあるのは透過の四角形じゃなくて
ただの四角形になってますが、よろしくお願いします。
要はラベルの上で、透過した四角形が出たり消えたりして欲しいのです。

public class Test extends JInternalFrame {

class MyCanvas extends JPanel {
public int x1[] = {10,20,20,10};
public int y1[] = {10,10,20,20};
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillPolygon(x1,y1,4);
}
}
private MyCanvas canvas_a = null;
193186:2005/08/23(火) 10:57:39
public Test() {
super();
initialize();
}
private void initialize() {
this.setContentPane(getJContentPane());
}
private JPanel getJContentPane() {
jContentPane.add(getJScrollPane1(), null);
return jContentPane;
}
private JScrollPane getJScrollPane1() {
jScrollPane1.setViewportView(getJPanel_Main());
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
return jScrollPane1;
}
private JPanel getJPanel_Main() {
JPanel jPanel_Main = new JPanel();
JLabel jLabel_a = new JLabel();
jPanel_Main.setPreferredSize(new Dimension(1000,435));
jPanel_Main.add(jLabel_a, null);
jPanel_Main.add(getCanvas(), null);
return jPanel_Main;
}
private MyCanvas getCanvas() {
canvas_a.setBounds(0, 0, 1500, 437);
return canvas_a;
}
}
194デフォルトの名無しさん:2005/08/23(火) 15:15:59
>>1
> ハードウェアの高スペック化、JavaVMのホットスポットの高速化に伴い、
> パフォーマンスの問題が改善されつつあります。

> しかしながら、"Java"というだけで犬猿されつつあるのが現状。

へ?
んなこと言うのはシステム屋だけでしょ
195デフォルトの名無しさん:2005/08/23(火) 21:12:49
AWTスレってないのな
196デフォルトの名無しさん:2005/08/24(水) 01:40:54
今からAWT使う理由ってあるのかな?
197デフォルトの名無しさん:2005/08/24(水) 17:22:38
Look and Feel 変えてもシステムのウィンドウバーだけは変わらないみたいだけど、
これは変えられないの?
198デフォルトの名無しさん:2005/08/24(水) 17:33:10
>>197
ウィンドウバーってタイトルバーのことか?
あれはOSの管轄だから変えられないよ。
199デフォルトの名無しさん:2005/08/24(水) 17:45:40
>>197
ヒント:JFrame.setDefaultLookAndFeelDecorated(boolean)
200デフォルトの名無しさん:2005/08/24(水) 17:46:50
>>198
タイトルバーですね。Windows だと左側にアイコンとタイトル文字、
右側に最小化、最大化、クローズのボタンが付いているところです。

MetalTheme 使って全面チョコレート色 (SwingSet2 デモのチャコール風)
とかにしてみてるんですけどね、あそこだけ Windows してるんで激しく萎えます。
201デフォルトの名無しさん:2005/08/24(水) 18:02:37
>>199
おっ、これはできそう、だ、が…
JFrame を最大化すると Windows のタスクバーの上に来るのね。ついでに Metal 以外の
Look and Feel に切り替えると decoration が消える。他のはサポートされてないんかな。

あわせ技で最大化して Metal 以外の Look and Feel に切り替えるとキオスクモード風
(IE で F11 押した状態) になるな。これはこれで使えそうだが。

どうもです。
202いろいろやってみたけど:2005/08/24(水) 19:05:05

1. 一度表示したら JFrame#setUndecorated(true/false) できない
  ⇒ タイトルバーの Look and Feel 化/デフォルト化を動的に切り替えられない。

2. Metal 以外はウィンドウ装飾を表示できない。
  ⇒ Metal 以外はデフォルトのタイトルバーにする必要あり。

∴動的な Look and Feel 変更と、タイトルバーの Look and Feel 化は両立できない

でした。
残念!
203182:2005/08/24(水) 21:30:33
>>190-191
すみません遅れました。まだ見てたらよろしければレスください。
PrintScreenで確認しましたらそっちは正常に写ってました。
ということはグラフィックドライバの設定何でしょうか?
204デフォルトの名無しさん:2005/08/24(水) 22:01:06
Java起動してなくてもおかしいんじゃないのか?
205デフォルトの名無しさん:2005/08/24(水) 23:05:03
>>202
JWindowかなんかを使うようにしてタイトルバーを自前で描くようにすればいいんじゃね。
206デフォルトの名無しさん:2005/08/25(木) 01:14:18
207デフォルトの名無しさん:2005/08/26(金) 02:50:17
みなさん、レイアウトマネージャ乗りこなせてますか?
私はPreferredSizeとMaximumSizeとMinimumSizeの設定値が
どのレイアウトだとそれぞれきちんと反映されたりされなかったりするのかがいまいちよくワカメ。

レイアウトマネージャの飼い慣らすのに役立つ情報ソースってありますでしょうか?
208デフォルトの名無しさん:2005/08/26(金) 03:01:40
ソース読むのが一番早いだろ。
209デフォルトの名無しさん:2005/08/26(金) 03:37:26
という >>208 はソースなんて読んだことないというオチ。
ちなみに俺はライブラリのソースなんて読まない。ドキュメントと使用法のサンプルは読む。
210デフォルトの名無しさん:2005/08/26(金) 09:52:08
チュートリアル動かしてソース読めって事かと思ったが
コンポーネントそのもののソースかよ
蛍光灯使うのにグロースターターやインバーターの知識はいらんだろ
211デフォルトの名無しさん:2005/08/26(金) 10:44:08
通常ほとんどのコンポーネントはPreferredSizeしか意識はしないな
212デフォルトの名無しさん:2005/08/26(金) 11:40:43
>>207
NetBeansでも使ってなさい
213デフォルトの名無しさん:2005/08/26(金) 16:13:46
>>210
だが蛍光灯を買うときにサイズは必要だよ。

よく30型と32型を間違える奴居るじゃんかよ(俺とかorz)
214デフォルトの名無しさん:2005/08/26(金) 17:26:48
>>213
勘で買うと絶対間違えるよな!
215デフォルトの名無しさん:2005/08/26(金) 20:22:56
俺は髭剃りの替え刃をカンで買って間違える。
それくらい全社統一しろよ!
216デフォルトの名無しさん:2005/08/26(金) 20:50:52
>>213
30型と32型がセットになったやつを買えばいいじゃない
217デフォルトの名無しさん:2005/08/26(金) 22:40:26
>>216
それじゃ人生つまんないよ!冒険しようぜ!
218デフォルトの名無しさん:2005/08/26(金) 22:50:17
>216
それじゃ、片方が確実に余るじゃん。
219213:2005/08/27(土) 00:17:39
>>216
おまいら俺がどうやって間違えたかおしえたるわい。

40型と32+30の組み合わせあるやん。、今家の中みただけで4つはその組み合わせなんよ。
で、40型と32か30のどっちかやとおもうやん。

大抵取り替える方は逆の組み合わせなんだよ。orz


もうね、わけわかめ。

#つうか年にいっぺん取り替えのつもりで4つの蛍光灯の2つが40+32のこりが40+30なんだけど
#なんでいつも間違えて買うかな。orz
#自分がおっちょこちょいなのは承知だけど、けっこうこういう話しあるんだよ。
220デフォルトの名無しさん:2005/08/27(土) 00:22:54
あースマン、 酔っぱらってワケワカメな感想書いた。

半年にいっぺん取り替えるようにしている4箇所の蛍光灯の、たまたま半分が
40+32でのこりが40+30なんだけど、毎回間違えるのよ。

orz
#スミマセン、マヂでEtherネットの回線切って頸つってきます。
221208:2005/08/27(土) 00:43:04
>>209, 210
ドキュメントと使用法のサンプルを読むのは当たり前だろ。
それでもわからないところがあったときソースを読むのも当たり前だろ。
そんなこと言ってるからJava厨ってバカにされるんだよ。
222デフォルトの名無しさん:2005/08/27(土) 01:12:36
レイアウトマネージャのソース解読は投資対効果低すぎるな。
低脳のすることだ。
223208:2005/08/27(土) 03:24:50
ホントにソースを読んで
>レイアウトマネージャのソース解読は投資対効果低すぎるな。
>低脳のすることだ。
といってるとしたらあなた自身も低脳ってことですね。

読んでないのにそんなこと言ってるとしたらタダの嘘つきですね。
どっちにしろあの程度のソースを「解読」とか言ってる時点で程度が知れますが。
224デフォルトの名無しさん:2005/08/27(土) 03:31:43
プッ
ROI も理解できない三流コーダーが無理すんなw
225デフォルトの名無しさん:2005/08/27(土) 03:44:26
なんかソース読んで理解したのが自慢な人って多いよね。そりゃ読むことはあるけどさ。
API リファレンスとサンプル作成、ネットの情報で理解できなかった人か、あるいは
「俺はコアライブラリのソース読めるくらいのスキルなんだぞー」とか、レベル低すぎて
見てて恥ずかしいんだが。
226デフォルトの名無しさん:2005/08/27(土) 05:38:50
まぁ、 >>207 の「乗り回す」だの「飼いならす」のレベルによるわな。
当面使えればいいのか、内部構造に手を出してでも細かく制御したいのか。
227デフォルトの名無しさん:2005/08/27(土) 06:21:36
>>215
よく見ろよ。全社統一とかいう問題じゃなくて、
同じメーカーなのに違うんだよ。それが販売戦略なのさ。
228デフォルトの名無しさん:2005/08/27(土) 11:31:47
>>226
使うの次は作るだと思うが、今のところ既存のレイアウトマネージャーを
組み合わせれば、自前で実装するほどの必要性を感じたことはないな。
必要性があったところで特殊な配置だろうから、苦労してレイアウト
マネージャー一本起こすほどの価値も再利用性もないだろうし、
普通は JPanel に直接配置して終わりだろ。

つーか、いまさらコンポーネントの配置・調整なんてドロドロしたコードは
書く気にならんな。そういうのゴリゴリ書くのが好きな人たちもいるけど。

結局、>>207 は「使いこなすまで難しいですよね〜」って言いたかっただけかと。
229デフォルトの名無しさん:2005/08/27(土) 11:35:30
レイアウトの希望としては推奨サイズに-1をいれれるようにして
-1の場合はサイズ計算してそれを適用とかになるともういらないかな

いまだと指定するとほぼそれが中に書かれてるテキストサイズとか無視してサイズが決まるしね
今の状態だとX方向だけとかY方向だけとかの固定が出来ない
230デフォルトの名無しさん:2005/08/27(土) 18:05:39
JComboBox のドロップダウンする項目でで選択不能なセパレータを入れたいんだけど
ListCellRencerer で項目の上か下かに JSeparator 入れるしかないのかな。
231デフォルトの名無しさん:2005/08/28(日) 01:02:58
>>230
こんなのでどうでしょうと宣伝
ttp://terai.xrea.jp/Swing/ComboBoxSeparator.html
232デフォルトの名無しさん:2005/08/28(日) 01:04:32
SwingのダブルバッファとAWTの自作ダブルバッファとBufferStrategyってどれが一番性能がよい?
233229:2005/08/28(日) 02:06:37
とりあえず DefaultListCellRenderer のサブクラス作って、セパレータ入れたくなった項目で

this.setBorder(BorderFactory.createMatteBorder(1,0,0,0,Color.gray));
(つや消しボーダーで上辺のみグレー設定)

とやったらよくあるような形になった。

>>231 さん
そう、JSeparator をそのまま 1 項目としてしまうと ItemListener 仕掛けてはじかなきゃ
いけなくなるんですよね。項目の上辺か下辺に線が付けば要件満たせると思って
辺を指定できる MatteBorder 使っちゃいました。
234デフォルトの名無しさん:2005/08/28(日) 02:09:15
>>232
それぞれ特徴が・・・というかSwingとAWTのダブルバッファの意味が分からん
SwingはJava2D使って実装されてるし、AWTでダブルバッファまでやってくれたっけ?
235デフォルトの名無しさん:2005/08/28(日) 02:36:54
>>231
今書いたの?

>>234
AWT の「自作」ダブルバッファって書いてあるよ。
236デフォルトの名無しさん:2005/08/28(日) 12:50:16
AWTの自作ってなんだよ
237デフォルトの名無しさん:2005/08/28(日) 12:57:04
>>236
おまえ確実にバカだろ?
238デフォルトの名無しさん:2005/08/28(日) 13:24:34
AWTとかSwingってGUIコンポーネントだろ
AWT以下のパッケージという意味ではないよな
ならAWT上の自作ダブルバッファという意味がつうじん
239デフォルトの名無しさん:2005/08/28(日) 13:34:16
1) Swingであらかじめ用意されているダブルバッファ(RepaintManager?)を使うのと、
2) ダブルバッファ機能をスクラッチから自作するのと、
3) BufferStrategy(これってjava.awt.image下のクラスだよね?)
のどれがいいでしょうか、という質問かな?
どっちにせよ質問者が質問の意味を分かってないようなんだな。
240デフォルトの名無しさん:2005/08/28(日) 13:46:30
BufferStrategyとかSwingのダブルバッファは使用目的が限られてるし
用途で決まるもんだけどなぁ
241デフォルトの名無しさん:2005/08/28(日) 14:41:48
SwingでBufferStrategyを使うとトリプルバッファになる?
242デフォルトの名無しさん:2005/08/28(日) 15:38:18
>>241
BufferStrategy勉強してからそういうこときいてね
それにトリプルバッファってどういうもんかしってる?
243デフォルトの名無しさん:2005/08/28(日) 15:51:49
ダブルバッファ+1に決まってるだろ
244デフォルトの名無しさん:2005/08/28(日) 15:58:27
どういう用途で使うか知ってるかと聞いたのだが
245デフォルトの名無しさん:2005/08/28(日) 16:22:21
フリッピングだろ?
246デフォルトの名無しさん:2005/08/28(日) 16:32:32
>>244
ゲーム
247デフォルトの名無しさん:2005/08/28(日) 16:33:14
もうこのスレと関係ねーじゃん。
248デフォルトの名無しさん:2005/08/28(日) 16:35:04
JFrame配下のJComponentでBufferStrategy使うのと
CanvasでBufferStrategy使うのとではどっちが有利かってことだろ?
249デフォルトの名無しさん:2005/08/28(日) 16:41:25
BufferStrategyはフルスクリーン以外はイマイチ
250デフォルトの名無しさん:2005/08/28(日) 20:34:13
swingアプリでフルスクリーンにする時なんかあるの?
251デフォルトの名無しさん:2005/08/28(日) 20:40:52
ほとんどないから実質スレ違い
252デフォルトの名無しさん:2005/08/28(日) 22:19:18
POSとか
253デフォルトの名無しさん:2005/08/28(日) 22:23:07
組み込みでフルスクリーンはあるけどその場合BufferStrategyはつかわんな
ゲームとかで垂直同期ページフリッピングが必要ならやるけど
254デフォルトの名無しさん:2005/09/06(火) 01:26:47
このスレの伸びがSwing現状を物語ってるな…。
Javaがんがれ
255デフォルトの名無しさん:2005/09/06(火) 01:32:38
つーか、ひょっとしてみんな Web 系で画面は HTML で作ってばっかとか?
そしてそれ以外は全部ゲーム・携帯アプリとか。

GUI コンポーネントとイベントリスナを HTML で記述できりゃ楽なのに。配置や
色のちょっとした調整するのに Visual Editor 立ち上がるの重すぎ。Longhoneで
やってなかったっけ?
256デフォルトの名無しさん:2005/09/06(火) 14:23:22
XAMLか?
あれは微妙に違うかも。
257デフォルトの名無しさん:2005/09/06(火) 17:27:51
詳しく調べてないんで、イベントはどうかわからんけど
レイアウトをXMLでやるのはありますね。

XMLでマークアップできるJava GUIまとめ
tp://d.hatena.ne.jp/sakamoto_yuki/20050612#p1
258デフォルトの名無しさん:2005/09/06(火) 21:47:28
>>255
NetBeansつかう
259デフォルトの名無しさん:2005/09/06(火) 23:45:32
JBuilderつかう
260デフォルトの名無しさん:2005/09/07(水) 00:22:30
でもなんだかんだ言ってVisual Editorがディファクトスタンダードになりそうだよな・・・。
そうなるならOSX版も出して欲しいんだが。
261デフォルトの名無しさん:2005/09/07(水) 00:35:35
NetBean も JBuilder も HTML 手書き+ブラウザリロードに比べたら激遅やん。
262デフォルトの名無しさん:2005/09/07(水) 00:42:45
HTMLって・・・なにいってるの?
JSPしか分からない人?
263デフォルトの名無しさん:2005/09/07(水) 00:48:28
基本的にvisualc++のスピードを抜かないとSwingは普及しないね。
264デフォルトの名無しさん:2005/09/07(水) 01:07:03
>>262
確かにHTMLってのは舌ったらずだと思うけど
マークアップでGUIを定義できないもんかって
話だってのは読んで判ったよ。
265デフォルトの名無しさん:2005/09/07(水) 02:35:34
>>263のいいたいことがサッパリわからない。何故にIDEとライブラリを比較してるのか。
266デフォルトの名無しさん:2005/09/07(水) 03:51:53
MFC のことを言ってるんだろうということくらい容易に想像つくと思うが。
まぁ MFC すら触ったことない人間なら思いつかんかもしれんが。
267デフォルトの名無しさん:2005/09/07(水) 03:56:11
>>262
10 レスくらい前から読めば言わんとしてることくらい分かるだろ。
IE レベルのユーザインターフェースを HTML で定義できたら Web 系の
スキルの人間をクライアント GUI 開発に回せて便利だろうね。
268デフォルトの名無しさん:2005/09/07(水) 04:10:56
NetBeansのMatisseとか触ってみると、ぜんぜんそうは思えないんだが。
269デフォルトの名無しさん:2005/09/07(水) 04:23:12
あれそんなに良いの? 今度触ってみるか…

マークアップ言語の GUI はコンポーネントのレイアウトをリソースとして
切り離せるというのもあるな。GUI ビルダーが吐き出した汚いソースに
恐る恐る手を入れるよりよっぽどスマートでしょ。
270デフォルトの名無しさん:2005/09/07(水) 07:29:42
まだ例外でまくり。でもレイアウトかなりやりやすいよ。
271デフォルトの名無しさん:2005/09/07(水) 07:30:07
>>267
IEレベルのしょぼいGUIでいったい何をしようって言うのよ?
272デフォルトの名無しさん:2005/09/07(水) 07:33:16
だからコンポーネントの配置だっつってんのに。
273デフォルトの名無しさん:2005/09/07(水) 08:22:35
しかし、タグで設計するSwingGUIライブラリって、あんまり人気でないね。
Swing自体が使われないからか。
NetBeansのフォーム情報XMLが編集しやすければいいんだけどね。
274デフォルトの名無しさん:2005/09/07(水) 10:19:32
>>273
257に書いてある所に、SWTのもあるんだけどね。
あまり情報ないね。

やっぱりリッチなGUIはどうせならポトペタでって
刷りこまれちゃってんのかな。
まあ俺もそんな感じだけど。
275デフォルトの名無しさん:2005/09/07(水) 10:27:56
ポトペタのほうが、どうしても脳味噌容量を節約できるしな。
リッチな開発環境が使えるのであれば、XMLでGUIをデザインするメリットが
少なく見えてしまうのも頷ける。
276デフォルトの名無しさん:2005/09/07(水) 10:48:19
ポトペタでXMLを吐けばまんじOKコンピューターだな
277デフォルトの名無しさん:2005/09/07(水) 20:47:06
NetBeans5が正式リリースされればすべて解決だ
278デフォルトの名無しさん:2005/09/07(水) 23:41:13
VS2005が正式リリースされればSwingももうお終いだな。
279デフォルトの名無しさん:2005/09/07(水) 23:48:32
関連性がないぞ
それにそういうことは死滅スレいけ
280デフォルトの名無しさん:2005/09/08(木) 01:05:44
>>272
>だからコンポーネントの配置だっつってんのに。

???
「IE レベルのユーザインターフェース」を HTML で定義できたら...(>>267)
281デフォルトの名無しさん:2005/09/08(木) 01:07:44
HTMLで配置とか言ってるヤシがいるがHTMLだってほとんどポトペタだと思うがな
282デフォルトの名無しさん:2005/09/08(木) 02:04:06
IDE に縛られなくても HTML 程度なら好きなエディタで作れるがな。
283デフォルトの名無しさん:2005/09/08(木) 02:19:57
まさかCSSの使えないHTMLか
284デフォルトの名無しさん:2005/09/08(木) 02:26:58
ところで、JTextPane はもうちょっとまともにならないのか。
285デフォルトの名無しさん:2005/09/08(木) 02:58:20
まったくだ。
誰かそろそろGecko並みのHTMLコンポーネント作ってくれないもんか。
286デフォルトの名無しさん:2005/09/08(木) 12:20:24
>>282
AWTもSwingもSWTもIDEには縛られなくても好きなエディタで書ける。
HTMLも複雑なレイアウトだと直接書くのは大変。
つまりHTMLもGUIライブラリも同じ。
287デフォルトの名無しさん:2005/09/08(木) 12:34:16
Visual Editor で作ったものを NetBeans でメンテナンスできるの?
288デフォルトの名無しさん:2005/09/08(木) 12:58:03
>>287
ぽとぺたは無理だな
289デフォルトの名無しさん:2005/09/08(木) 13:13:37
それは縛られてるとは言わんのか。つーか、縛られてるって開発物が特定の
開発環境にって意味なんだが。個人の嗜好が特定の IDE にって意味じゃなくて。
290デフォルトの名無しさん:2005/09/08(木) 13:29:56
そろそろそんな環境がほしいならプラグインでもモジュールでもなんでもいいから自分で作れといいたくなってきた
291デフォルトの名無しさん:2005/09/08(木) 13:33:10
ありがちな思考停止の言い訳
292デフォルトの名無しさん:2005/09/08(木) 13:38:06
業務アプリでテキストエディタでGUI生成しようとしてるやつはみたが
画面数とコンポーネントの数が大量なのに根性あるなと思った

まぁその後は予想通りの結果だったが
293デフォルトの名無しさん:2005/09/08(木) 13:44:25
>>292
一回手書きなり IDE なりで GUI 作ってしまうとずっと引っ張られるからなぁ。
移行しようにも分析のために何年前か分からん IDE が吐き出した汚いソース読む
羽目になったり。
294デフォルトの名無しさん:2005/09/08(木) 15:10:11
絵に描いた餅には興味はない
295デフォルトの名無しさん:2005/09/08(木) 15:13:13
>>291
つまり、自分の思い通りにならないから駄々をこねてるだけということか
296デフォルトの名無しさん:2005/09/08(木) 15:28:44
「自分で作れ」っていうのは、「これ以上いいアイデアもないし自分は不便に感じてないしキミにつきあってられないから勝手にやってくれ」っていうメッセージだよね。
297デフォルトの名無しさん:2005/09/08(木) 15:34:44
>>295
ここは個人の勝手な不満をぶちまけるスレではありませんし、
到底実現しそうにもない無意味なアイデアを開陳するスレでもありません。
298デフォルトの名無しさん:2005/09/08(木) 15:45:19
「つまり」 って便利な言葉だな。脈絡なくても文章力なくても結論導いたような文章が書ける。
299デフォルトの名無しさん:2005/09/08(木) 16:25:00
だいたいHTMLとか言ってるやつの不満はSwingそのものじゃなくてIDEの問題なんだからIDEのスレでやれよ。
300デフォルトの名無しさん:2005/09/08(木) 22:25:15
記述法重要
301デフォルトの名無しさん:2005/09/08(木) 22:29:35
>>300
重要だと思うなら思考停止とか言わずにそのアイデアとやらを基に自分で作ってみろって、
本当に必要なものならみんな使ってくれるさ。
今のままじゃ本当にただの絵に書いた餅に過ぎない。
302デフォルトの名無しさん:2005/09/08(木) 22:52:00
はいはいクマクマ
303デフォルトの名無しさん:2005/09/08(木) 22:53:16
JTextPane で挿入した Component に文字の回りこみって設定できる?
304デフォルトの名無しさん:2005/09/08(木) 23:38:59
>>302
なんだ、ネタだったのか。相手して損した。
305デフォルトの名無しさん:2005/09/08(木) 23:46:32
306デフォルトの名無しさん:2005/09/08(木) 23:52:36
307デフォルトの名無しさん:2005/09/08(木) 23:53:55
308デフォルトの名無しさん:2005/09/08(木) 23:55:28
309デフォルトの名無しさん:2005/09/09(金) 00:53:54
310デフォルトの名無しさん:2005/09/09(金) 01:32:26
>>305-309
せめてベンケーシーネタとかにしてくれ。
311デフォルトの名無しさん:2005/09/09(金) 02:25:08
自分は賢いとか思ってるんだろうな、コイツ
312デフォルトの名無しさん:2005/09/09(金) 03:37:06
どいつ?
313デフォルトの名無しさん:2005/09/09(金) 08:16:47
これなんか、いいかもね。
https://swixml.dev.java.net/
314デフォルトの名無しさん:2005/09/09(金) 10:36:34
JTextPaneで、今何行目にキャレットがあるかを調べるには、
やっぱり、中身が変更される毎に各行の開始点を計算して、それから計算しないとだめなんだろうか?

SwingでNetBeansやEclipse並みのエディタを作成しようとしているのだが、
2000行ぐらいになると重くて使い物にならなくなるorz
315デフォルトの名無しさん:2005/09/09(金) 14:17:28
>>314
どのぐらいのスペックのPCで重いの?
316314:2005/09/09(金) 14:40:33
>>315
CPU:1.7GHz
メモリ:256MB
OS:Window2000
Java:バージョン1.5
317デフォルトの名無しさん:2005/09/09(金) 14:58:34
>>314
任意の位置の行番号を保持する StyledDocument を自分で作る。
ま、行ごとの文字数をリストで持ってて、入力イベント拾って画面と同期してれば
良いかと。
318デフォルトの名無しさん:2005/09/09(金) 15:05:21
各行の開始点を計算ってのがよく分からないけど、
Caret#getDotとElement#getElementIndexを毎回呼んだとしても
そんなに遅くならないんじゃないかなぁ
と試しもせずに言ってみる。
319デフォルトの名無しさん:2005/09/09(金) 16:23:06
エディタ程度でそんなに重くなるとは思えないが
完全に自作してみたほうが軽いかもよ

あと1.7GHzといってもCeleronの1.7GHz+SDRAMと
PentiumMの1.7GHz+DDR2デュアルチャネルでは
性能が2倍は違うから注意な

netburst系はJavaの動作速度が遅いし
320デフォルトの名無しさん:2005/09/09(金) 17:59:44
その点V2Cってすごいな
321デフォルトの名無しさん:2005/09/09(金) 20:04:25
>>320
いや、あの、その、そういう問題じゃないだろう?
322デフォルトの名無しさん:2005/09/09(金) 20:21:49
>>319
カーソルより上で挿入・削除が行われたときに
増減した\nの数を数えるのが最速だと思う。
swingで速くできないレベルのプログラマなら、
自作しても遅いままだと思われ。
323デフォルトの名無しさん:2005/09/10(土) 00:21:16
タイトル表示ありでウィンドウの終了ボタン(Windowsの場合右上の×ボタン)って
非表示にできないかな?
324デフォルトの名無しさん:2005/09/10(土) 07:36:23
>>323
JInternalFrame だったらコントロールできるけど、
JFrame, JDialog とか Frame, Dialog だと無理っぽい。

どーしてもって言うなら JNI 経由で HWND 取ってきて
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
とかするしかないと思われ。
325314:2005/09/12(月) 09:44:49
レスが遅れて申し訳ないです。

>>317
>ま、行ごとの文字数をリストで持ってて、入力イベント拾って画面と同期してれば
>良いかと。
それをやってると2000行を超えたあたりから重くなるんですorz

>>318
各行の開始点っていうのは、
例えば全文の文頭から5行目の文頭へのオフセットは41とかいった感じです。

>>319
Celeronの1.7GHz+SDRAMですorz

>>322
特定の文字列を太字にする等のスタイル関連の処理の為に、
全行の文頭の位置を記憶する必要があったので、
増減した\nの数を数えるだけじゃ駄目なのですorz
326デフォルトの名無しさん:2005/09/12(月) 10:52:23
>>325
2000行程度ArryListでもLinkedListでもVectorでも遅くならないぞ
たぶん原因はそこじゃないな
327314:2005/09/12(月) 15:12:47
>>326
仰るとおりでしたorz
無理して取得しない場合で何とかなる方法を試みてみたが、殆ど早くならなりませんでした。

そこで、どの部分の処理で時間を喰っているか調べてみたところ、
原因は改行コードが\r\nの場合に\nに直す処理だったみたいです。
Windows系のOSだと、getText()で文字列を取得した際、改行コードの扱いが1文字から2文字に変更され、
テキスト関連の処理で不都合が生じるため、このような処理を行っています。
String str = getText();
StringBuffer strBuff = new StringBuffer(1000);
for(int i=0;i<str.length();i++){
 if(str.charAt(i) == '\r'){
  if(str.charAt(i+1) == '\n'){
   i++;
  }
 }
 strBuff.append(str.charAt(i));
}
String text = strBuff.toString().substring(begin, end);
これ以上、直しようがないorz
328デフォルトの名無しさん:2005/09/12(月) 15:17:15
>>327
DocumentEvent 拾って挿入文字に '\r' が含まれてたらその位置を削除ってので
良いんじゃなかろうか。量がでかいなら一括でするには効率悪すぎ。
つか、"\r\n", "\r" で不具合の起きるテキスト処理というのを見直すべきでは。
329314:2005/09/12(月) 16:13:38
>>328
それが、

abc
de
f

と、いう文字列は
JTextPane内で「abc\nde\nf」
と、認識されているのですが、
getText()で取り出すとWindows系では「abc\r\nde\r\nf」
っていう感じに改行コードが変換されるみたいなのです。
その為、JTextPane内では、'e'は6文字目になるのに対し、
getText()で取得したString内では、'e'は7文字目になってしまうのです。
330デフォルトの名無しさん:2005/09/12(月) 16:26:16
>>329
じゃ逆に JTextPane 内で "\n" を System.getProperty("line.separator") 文字として
カウントしてみるとか。

確かに DefaultEditorKit#write() で System.getProperty("line.separator") 取ってるのな…
マルチスレッドで何か動いてたら支障あるかもしれんが

String crlf = System.getProperty("line.separator");
System.setProperty("line.separator", "\n");
String text = getText();
System.setProperty("line.separator", crlf);
331デフォルトの名無しさん:2005/09/12(月) 16:48:51
>>327
String::replaceはダメなの?
332デフォルトの名無しさん:2005/09/12(月) 16:52:19
>>331
やってることは変わらないので同じじゃないのか。
333デフォルトの名無しさん:2005/09/12(月) 16:54:50
つか、1.4 までなら char しか渡せんやんか。
334デフォルトの名無しさん:2005/09/12(月) 16:57:39
335デフォルトの名無しさん:2005/09/12(月) 16:59:19
>>334
'`ィ(´∀`∩
336デフォルトの名無しさん:2005/09/12(月) 17:04:27
337330,332-333:2005/09/12(月) 17:11:54
JEditorPane, DefaultEditorKit のソースみた限りでは getText() する前に

Document#putProperty(DefaultEditorKit.EndOfLineStringProperty, "\n");

すれば良い感じ。ちょっと試してみ。
338314:2005/09/13(火) 12:30:13
お返事の方、遅れて申し訳ありません。
今まで質問に答えてくださった方々どうもありがとうございます。

>>331
以前やってみたのですが、逆に遅くなりました(´・ω・`)

>>336
参考になりました。
これで、改行文字が操作できそうです。

>>337
この方法でうまくいきました。
重ね重ねどうもありがとうございます。
339デフォルトの名無しさん:2005/09/13(火) 14:58:22
>>325
>例えば全文の文頭から5行目の文頭へのオフセットは41とかいった感じです。
そいうデータって、getDocument().getRootElements() でとれるやつが持ってたりする。
しかし、参考になるドキュメントがあまりないので、APIリファレンスやSwingのソースと格闘しないといけない罠。
340330,332-333:2005/09/13(火) 15:14:59
>>336
関係ないけど、手元にある JDK 5.0 の日本語版 API リファレンスとちょっと違うのね。
Newlines の章の代わりに一言

> EndOfLineStringProperty は、get/setProperty メソッドを使用して Document 上で設定されます。
> サブクラスはこの動作をオーバーライドできます。

とあるだけだ。リファレンスが古いのかな?

と思ったら 1.4 のには「復帰改行」の章がある。なんじゃこりゃ?
341デフォルトの名無しさん:2005/09/13(火) 15:46:31
デグレ?
342デフォルトの名無しさん:2005/10/11(火) 09:54:27
質問なんですが、JFileChooserでxml形式のファイルを選択し画面のテキストエリア
に表示したいのです。
その時にxmlファイル全文を表示するのではなく、タグでかこまれたテキストだけを
表示するにはどうしたらいいでしょうか?
単純に全文表示するだけならできるのですが、タグの部分「<title>」とかも表示されてしまいます。
343デフォルトの名無しさん:2005/10/11(火) 10:44:58
スレ違い
XMLのスレで聞きなさい
344デフォルトの名無しさん:2005/10/11(火) 12:16:20
>>342
String#replaceAll("<[^>]*>","")
345デフォルトの名無しさん:2005/10/11(火) 23:13:53
Commons Digester
346デフォルトの名無しさん:2005/10/17(月) 12:49:52
すみません、教えてください。

Canvasをスクロール可能にできますか?
JScrollPane jsp = new JScrollPane();
jsp.setViewportView(canvas);

のようにしてみましたが、うまくいきませんorz
347デフォルトの名無しさん:2005/10/17(月) 12:59:39
どううまくいかないのさ?
348デフォルトの名無しさん:2005/10/17(月) 13:31:04
なんでSwingとAWTまぜるのさ
349346:2005/10/17(月) 13:53:25
>>347
他のコンポーネントの上にCanvasが覆いかぶさってしまいます。
スクロールペインにのせずに使うと、途中で切れてしまいます。

>>348
すみません、今のところコレしか方法知らないので・・・
動的にグラフをかくというアプリケーションを作っているのですが、
グラフ描画の部分で、Canvasのpaint()メソッドをオーバーライドしています。
350デフォルトの名無しさん:2005/10/17(月) 14:06:54
JPanelでいいじゃん「
351デフォルトの名無しさん:2005/10/17(月) 14:19:08
>>349
SwingはすべてのコンポーネントがCanvasみたいなものだよ
JPanelはりつけてpaintComponentに描画処理いれてみそ
352346:2005/10/17(月) 16:08:22
>>350
>>351
JPanelでも描画できるのですね!!
ありがとうございます。

でも、ScrollPane上でスクロールさせるには、Scrollableをimplementsしないといけませんか?!
353デフォルトの名無しさん:2005/10/17(月) 16:58:07
>>352
なにもせんでええ
わからなかったらNetBeans等のIDEではりつけてそのソースみてみそ
354346:2005/10/17(月) 17:15:22
ありがとうございます。試してみます。
355デフォルトの名無しさん:2005/10/18(火) 23:51:12
ボタンを押すと、DB接続してデータ取得するのですが、
ボタンの連打を回避したいのです。
何かいい方法があれば教えてください。
356デフォルトの名無しさん:2005/10/18(火) 23:59:29
>>355
処理が終わるまで無効化すりゃいいじゃん。
357デフォルトの名無しさん:2005/10/19(水) 17:50:43
JFileChooserやJColorChooserがあるのに、
JFontChooserが無いのはおかしいと思う今日この頃。
358デフォルトの名無しさん:2005/10/19(水) 19:29:02
JListかJComboBoxで簡単に作れるよ。重いけど
359デフォルトの名無しさん:2005/10/19(水) 20:06:09
>>357
作れる、作れないの話ではないと思うが。
コモンダイアログとして、提供されるべき。
360デフォルトの名無しさん:2005/10/19(水) 20:06:31
まちがった>>358へのレス
361デフォルトの名無しさん:2005/10/19(水) 21:30:03
??
簡単か面倒かの話じゃないの?
わざわざ用意するまでもないと思うけど
362デフォルトの名無しさん:2005/10/19(水) 21:40:47
そういう話は 「じゃ Swing 使うなよ」 「Bug Parade 逝け」 という
つまんない話にしか落ちないからお勧めできない。
363デフォルトの名無しさん:2005/10/19(水) 22:19:05
JFontChooserでぐぐって出てくる奴使えばいいじゃない
364デフォルトの名無しさん:2005/10/20(木) 01:42:55
うはっ、売ってるヤツあるよ。すげー
365デフォルトの名無しさん:2005/10/20(木) 01:59:03
俺はL2FProd.comのフォントチューザーを使ってるが、いい感じだよ。
https://l2fprod-common.dev.java.net/
366デフォルトの名無しさん:2005/10/20(木) 03:23:39
俺は使う機会がないけど、使う必要があったら、自作するより標準があってそれを使いたい。

標準で用意されれば、統一したインターフェースの選択ダイアログになるが、
簡単だからといって、自作したら、微妙に見た目や操作やAPIの違う
俺式MyFontChooserが横行することになる。
なので、色やファイルの選択ダイアログのように、フォント選択も用意されても良いと思うよ。
commonsとか使うでしょ?
367デフォルトの名無しさん:2005/10/20(木) 11:16:35
もっともな意見だと思う

しかしあらゆる統一インターフェースを標準パッケージに入れる事はできない以上
使用頻度や要求に応じて取捨選択しなければならない

あくまで私見だが、フォント選択はデフォでは不要と思う

純正のSwingデコレーションパッケージみたいなのを用意するのが良いと思うな
368デフォルトの名無しさん:2005/10/20(木) 12:42:33
Windowsのフォント選択ダイアログもあまり使われてないような気がするしね。
369デフォルトの名無しさん:2005/10/20(木) 19:22:41
プラットフォームによってフォントの指定とか取り扱いが全然違うからないんだと思ってた。
370デフォルトの名無しさん:2005/10/21(金) 15:00:59
JTextPaneのテキストの自動折り返しってなんとかならないのかな?
371デフォルトの名無しさん:2005/10/22(土) 00:24:11
>>370 ↓な感じでとりあえずできる

JFrame frame = new JFrame();
JTextPane text = new JTextPane() {
public boolean getScrollableTracksViewportWidth() {
return false;
}};
text.setPreferredSize(null);
JScrollPane sp = new JScrollPane(text);
sp.getViewport().setBackground(text.getBackground());
frame.getContentPane().add(sp);
frame.setSize(400, 200);
frame.setVisible(true);

でも起動しても、たま〜に画面が表示されないときがあったのでやめた。
これが原因か不明だが、レイアウト処理中にSwingの内部でデッドロック
がおきたみたいだった。text.setPreferredSize(null)が問題かも。
372デフォルトの名無しさん:2005/10/22(土) 00:30:50
JTextPaneは特殊な表示系として考えればいいのでは?
入力が入るならJTextAreaで
373デフォルトの名無しさん:2005/10/23(日) 15:08:38
Photoshopとかのツールパネルでさ、ペンボタンとか長押ししてると類似のペンのボタンがポップアップして選べるじゃない。
ああいう特殊なトグルボタンを作るにはどうすれば良いかしらん?
374デフォルトの名無しさん:2005/10/23(日) 16:24:28
いろいろと方法はあるだろうけど
状態を持ってjavax.swing.Timerとかで

マウスを放したらその遅延イベントは無効にするとかね

1回だけのイベントでいいのでjava.util.Timerのほうが使いやすいと思うけど
Swingのイベントと離れるから注意
375デフォルトの名無しさん:2005/10/25(火) 00:36:52
>>374
ありがとー。うまくできたよ。
javax.swing.Timerで250msほどトグルボタンを長押ししたら、JPopupMenuが開くようにした。
ただ、細かい問題も発生。

長押ししたまま開いたJPopupMenuの項目を、マウスボタンを離すことで選択すると、
どうもmouseReleasedイベントがトグルボタンの方でなくそのJPopupMenuのアイテムの方にぶん取られちゃうようで、
トグルボタンの外観が、変な感じになる。

どう変かっていうと、ボタンを押したまま離さずに(mouseReleasedせずに)ボタンの外にマウスを移動して、
またボタンの中に移動したりするときに、ボタンがへっこんだり元に戻ったりを繰り返すっしょ。あの調子になる。

見た目気持ち悪いしユーザーを混乱させるから、なんとかしてmouseReleasedイベントを
トグルボタンに強制的に送り込んで落ち着かせたいんだけど、どうすればいいかな?
376デフォルトの名無しさん:2005/10/25(火) 01:00:09
勝手にmouseReleasedを呼べばいいだろ。
377デフォルトの名無しさん:2005/10/25(火) 16:16:15
>>376
リスナのmouseReleased呼んでも意味ないんじゃ? あれはマウスのイベントを検知してどうするか、だから。
ボタンの挙動を押しっぱなしの状態から元に戻したいんだが、それを制御できるメソッドが多分ないので。
マウスが離された、というイベントそのものをトグルボタンにぶち込むしかないような気がする。
378デフォルトの名無しさん:2005/10/25(火) 16:39:37
>>375
マウスがコンポーネントの外に出たら処理をやめれば?
379デフォルトの名無しさん:2005/10/25(火) 19:06:37
>>377
processMouseEventは?
導入されたバージョン: 1.5以降だけど
380370:2005/10/25(火) 20:20:06
>>371
お返事の方、遅くなって申し訳ありません。
やはり、その方法しか無いみたいですね。
JTextPane(あるいはJEditorPane)がprivateのメソッドで折り返しの処理をしているみたいなので、
オーバーライドして折り返し処理を無くすのも無理そうですし・・・
兎に角、ありがとうございました。

>>372
秀丸みたいに、カラーリングされたエディタを作っているのでそれはちょっと・・・
381デフォルトの名無しさん:2005/10/25(火) 21:12:47
キャレットも含めてすべて自前で描画とか
382デフォルトの名無しさん:2005/10/25(火) 21:40:12
つ Win32API
383デフォルトの名無しさん:2005/10/25(火) 21:49:45
結構自前描画は楽だよな
384デフォルトの名無しさん:2005/10/25(火) 23:15:43
凝ろうとすればするほど苦労するけどな
かといって楽しすぎると車輪の再発明
385デフォルトの名無しさん:2005/10/26(水) 01:02:14
たのしすぎると?
386デフォルトの名無しさん:2005/10/26(水) 01:05:55
結論: 車輪の再発明は楽しい
387デフォルトの名無しさん:2005/10/26(水) 01:06:09
>>383とおなじ読み方でお願いします
388デフォルトの名無しさん:2005/10/26(水) 01:07:09
じまえびょうがはたのだよな?
389デフォルトの名無しさん:2005/10/27(木) 00:34:27
Swingはいつからこんなにキレイで速くなったんですか。
前はキモくてモッサリしてたのに。
390デフォルトの名無しさん:2005/10/27(木) 00:47:08
>>389
1.4ぐらいから。1.5になってから更に良くなった。
391デフォルトの名無しさん:2005/10/27(木) 00:49:16
1.6から更に良くなるんでしょ?
パイプラインがどうとか書いてあったし
392デフォルトの名無しさん:2005/10/27(木) 01:00:55
俺の感覚だと1.3.1からかな
393デフォルトの名無しさん:2005/10/27(木) 02:36:03
JTableがまだまだ全然遅いの何とかならんかね
普通にデータ入れるだけならまだいいけど、セルレンダラでちょっと何かすると厳しい
394デフォルトの名無しさん:2005/10/27(木) 11:51:31
>>393
自分の場合、セルレンダラ使って遅くなることなんて無いけど。
どんなレンダラ使ってんの?
395デフォルトの名無しさん:2005/10/27(木) 14:11:07
>>393
普通のデータもセルレンダラで表示してるんだから、
動作が遅いのはセルレンダラの実装が悪いからだと思うけど。
396デフォルトの名無しさん:2005/10/27(木) 18:14:47
>>394
どんなって、自分独自のだけど色々文字を装飾できるやつ。
でも、単純に文字をボールドさせるだけでもかなり遅くなるよ。
1000行5列くらいで、全部の文字にボールドかけてスクロールさせてみれば
すぐに遅さに気付くと思う。

>>395
いや、初期のままだとほとんど速度低下に繋がる処理無いよ。
397デフォルトの名無しさん:2005/10/27(木) 18:29:39
レンダラにコンボボックスをセットしてみたがまったく遅くはないぞ
8000件だが

そのセルの値を数値で、コンボボックスの各項目にはリストを持っていて
get(0)がコード
get(1)が表示名
で、その表示名を現在地にセットするというやつなんだが

スクロールしてみてもCPU使用率1%程度だし


もしかしてすべてのセルにレンダラを生成してるとか
398デフォルトの名無しさん:2005/10/27(木) 19:49:25
>>397
うーん、おかしいな
何もしないと10000行でもなんともないんだけど
文字をボールドしただけで1000行程度でもスクロールが
カーソルの移動に追いつかなくなるんだよね
全てのセルにってどういう意味?
setDefaultRendererで自分の作成したレンダラを指定してるだけなので
それは無いと思うけど
399デフォルトの名無しさん:2005/10/27(木) 19:56:14
JLabelにて、JTextAreaみたいなワードラップって出来ます?
HTMLをワードラップして簡単に表示させたいんですが。
400デフォルトの名無しさん:2005/10/27(木) 19:57:02
DefaultRendererでBoldでComboBoxの中身表示やってみたけどまったくかわらんかったぞ

カラムでのレンダラでももちろん同じ

例によって8000件
401デフォルトの名無しさん:2005/10/27(木) 21:45:57
メモリの少ないマシンでは差が出るのだろうて。
402デフォルトの名無しさん:2005/10/27(木) 21:59:48
メモリ使用量そんなにかわらんだろ
レンダラひとつ用意した程度じゃ
403デフォルトの名無しさん:2005/10/27(木) 22:28:35
CPUはギガヘルツ級のものを使ってるけど、
メモリは128MB程度しか積んでなかったり…。
404デフォルトの名無しさん:2005/10/27(木) 22:56:39
メモリのせいにし始めてきたか

boldで1000件程度は128Mでも余裕だよ
1回目のVmのロードが遅いくらいで

レンダラのコードさらしてみ?
405デフォルトの名無しさん:2005/10/27(木) 23:01:12
レンダラオブジェクトを8000個生成しているとか・・・
406デフォルトの名無しさん:2005/10/27(木) 23:14:07
レンダラ内でFont毎回生成してみたがこの程度じゃ
世代別GCが綺麗に動くんでさすがに影響度ゼロだった

あとはJavaでは当たり前になった無料プロファイラで起動してみて欲しいな

GCがネックなのかメモリがネックなのかどの箇所がネックなのかすぐにわかる
407デフォルトの名無しさん:2005/10/27(木) 23:39:45
>>404
なぁ、あんたOS本体のメモリ占有量がどのくらいだか知ってて言ってんの?
サンのページにも、
「メモリが不十分なまま実行すると、ディスクスワップが起こり、
性能に重大な影響が出ることがあります。」
って書いてあんだろーが。ま、使用してるOSによるけどな。
408デフォルトの名無しさん:2005/10/28(金) 02:00:42
>>407
今確認してきた
2000で128Mで余裕で動くぞ
OSの使わない部分はおいだされるが
アプリひとつだけなら余裕

他のアプリ起動しようといたり何かするとからからなるが

そもそもJavaは実行したときヒープ最大まで使わん
16MBくらいのアプリも動かない環境ならしらんけど

boldの5項目の1000件程度でスワップするとかありえん


自前のコードの悪いのをマシンのせいにする>>407はおかしいよ
409デフォルトの名無しさん:2005/10/28(金) 02:04:29
>>397から

・なにもしないと1万件余裕
・自前のレンダラ使うと1000件でも重い

これはメモリのせいじゃないな。
410デフォルトの名無しさん:2005/10/28(金) 04:58:03
ここまで話題に出てないけどVMのバージョンが違うとかはないの?
411デフォルトの名無しさん:2005/10/28(金) 10:54:04
>393
とりあえず解決したかったらコード晒した方が早いのでは。

>399
↓こういうこと?(「JLabel 折り返し」でググった)
ttp://terai.xrea.jp/Swing/GlyphVector.html

ところでJLabelのテキスト内にHTMLタグ書くと解釈される件はご存知?
テキスト中の < 等のメタキャラクタを < などに置換して、
改行を <br> に置換して先頭に <html> を付加したらどんな感じでしょうか。
412デフォルトの名無しさん:2005/10/28(金) 21:06:04
>>408
2000の128MとXPの256Mでは、2000の方が空きメモリが多い罠。
413デフォルトの名無しさん:2005/10/28(金) 21:45:08
>>412
XPの256Mでもやってみたがいけたよ
OS起動状態でのフリーエリアはXPのほうが少ないけど、はるかに快適に動く
使わないOSの部分はおいだしてるからだね

なんでいまだにメモリのせいにするんだ?
自分のコードが悪いだけなのに
414412:2005/10/29(土) 00:32:30
>>413
いや、俺は>>393じゃないよ。
ただ、OS本体のメモリ占有量の話をしているのに、
メモリ占有量の少ない例を出すのはどうかと思ったまで。

まあ、実際2000よりXPの方がメモリ管理をしっかり行っているから、
メモリ関連の不都合はXPの方が発生しにくいんだけどね。

>>393は文字が変更される毎に、
全文字のスタイルクリア→ボールド判定→ボールド
とかやっているんじゃないの?
415デフォルトの名無しさん:2005/10/29(土) 01:02:53
>>414
すまんかった

俺の予想ではレンダラ内でなんか重いオブジェクト生成してるとかその辺だと思うが
Fontとか毎回newしてもかわらんかったからなぁ
よっぽどの中身だと思う
416デフォルトの名無しさん:2005/10/29(土) 04:38:27
つうかキミらJVMのバージョンもちゃんと書けと。
417デフォルトの名無しさん:2005/10/29(土) 10:01:13
JIT切ったりしてたりしてな〜。
今時classic-vmってのもありえないとは思うが。
418デフォルトの名無しさん:2005/10/29(土) 11:40:40
超初心者な質問ですみません。

JTableをセルごと及び全体で編集不可にすることはできますか?
JTextFieldのようにsetEditableがないのですが・・・
419デフォルトの名無しさん:2005/10/29(土) 12:03:21
>>418
javax.swing.table.TableModel の isCellEditable() を実装しろ。
420418:2005/10/29(土) 14:14:10
>>419
ありがとうございます!できました!
421デフォルトの名無しさん:2005/10/29(土) 16:10:20


もうすぐ『JavaOne』 

http://jp.sun.com/company/events/javaone/2005/
422デフォルトの名無しさん:2005/10/29(土) 21:05:00
データベースから取得したデータをテーブルに表示し、
とある項目の値によってセルの背景を変えるという
テーブルを作成しようとしているのですが、
表示するカラム数や、データベースのヘッダーの名前などに
できるだけ依存しないテーブルにしたいのです。
何かいい実装方法はあるでしょうか?
423デフォルトの名無しさん:2005/10/29(土) 21:32:36
>>422
前半の部分と後半の部分が一致しないんだけど
セルの背景を帰るだけならセルレンダラ
424デフォルトの名無しさん:2005/10/29(土) 21:40:13
>>422
普通に作ればいいじゃん
項目の値を判定してセルの背景かえるだけなのに、むしろ何が分からないのかが分からない
425デフォルトの名無しさん:2005/10/29(土) 22:41:31
列は初期化時に決めておかないといけないと思ってるとか
426デフォルトの名無しさん:2005/11/03(木) 06:50:46
Swingで画像処理をするプログラムを作っているのですが,
repaint()の呼び出しのタイミングについて質問があります.

自分のプログラムではクラスが3つあり,それぞれmain用,
フレーム用,パネル用となっています.main関数があるクラスから,
フレームクラスをインスタンス化します.
さらにそのフレームクラスのコンストラクタでパネルクラスを
インスタンス化し,フレームにパネルを載せています.

それで実際の処理はmain関数でフレームをインスタンス化した後に,
パネルクラスの中にある自分で実装した関数を呼び出し,
repaint()を使ってパネルクラスの中にあるpaintComponentを呼び出して描画しています.

この処理はある基準に達するまでループさせ,repaint()するものなのですが,
どうも最初の2〜4回のrepaint()呼び出しが失敗しているみたいなのです.
処理回数ごとに変数をカウントアップし,paintComponentの中で変数の値を出力させてみると,
1,2,3,4と出る場合と,いきなり3,4,5と始まる場合があります.

このpaintComponentはどの段階から呼び出すことが出来るのでしょうか?
427デフォルトの名無しさん:2005/11/03(木) 12:02:22
たしかrepaintは「描画しろ」というメッセージを投げるだけで
実際に描画するかどうかはOSだかJVMが決めるから
短時間に何度もrepaintが発生すると一つにまとめられちゃうことがあった
ような気がする。
428デフォルトの名無しさん:2005/11/03(木) 13:44:22
イベントはペイントに限らずまとめても問題ないようなのはまとめられるケースがあるよ
まとめられてる場合どこだったかのフラグがたったりしてるし、説明が必ずあるけど

パネルの描画スレッドでのrepaintしてる部分のコードぬきだしてごらん
SwingUtilityのinvokeandwait使ってないような気がする
429デフォルトの名無しさん:2005/11/03(木) 19:23:02
>>427-428
ありがとうございます.調べてみます.
430デフォルトの名無しさん:2005/11/03(木) 23:38:11
Swingでイベント投げるときはなんかのキューに投げるのが正しい礼儀なんじゃなかったかい?
431デフォルトの名無しさん:2005/11/06(日) 04:41:01
Swing起動遅いね。マカーだと問題が出るらしいがマカーは氏んどけばいい。
432デフォルトの名無しさん:2005/11/06(日) 05:56:45
いつも直接 main()内でnew Frame()とかしてるんだけど
SwingのGUI生成は↓みたいにするのが作法?
public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater( new Runnable() {
        public void run() {
            initializeUI();
        }
    });
}
433デフォルトの名無しさん:2005/11/06(日) 10:15:42
>>432
そうした方が色々考えなくていいから楽。
434デフォルトの名無しさん:2005/11/07(月) 15:45:13
JSpinnerにKeyListenerをセットしても反応してくれないな。
JSpinner.getEditor()にセットしても同様。 betaだからバグか。
435デフォルトの名無しさん:2005/11/07(月) 16:06:32
なんのはなしだ
436デフォルトの名無しさん:2005/11/08(火) 01:59:44
>>432-433

今まで何も考えないでnew Frame()してました。
なんでこうするの?詳細きぼんぬ
437デフォルトの名無しさん:2005/11/08(火) 02:08:24
別にAWTスレッド以外でnewしてもいいよ
438デフォルトの名無しさん:2005/11/08(火) 13:36:24
イベントディスパッチスレッドで処理しなくちゃいけないのは、
画面に表示されてからじゃなかったっけ?
439デフォルトの名無しさん:2005/11/08(火) 13:36:57
440デフォルトの名無しさん:2005/11/08(火) 13:55:28
Javaアプリケーションをスクリーンリーダー(主にPC talker)で読み上げてもらうには、プログラムにどのような文を組み込めばいいのでしょうか?
例えばボタンがあるなら「これはボタンです」というようなことです。
441デフォルトの名無しさん:2005/11/09(水) 01:10:12
>>439
英語じゃよめないじゃん。
   ハ   ( l         ',____,、      (:::} l l l ,}      /      \
   ハ   ( .',         ト───‐'      l::l ̄ ̄l     l        │
   ハ   (  .',         |              l::|二二l     |  ハ こ  .|
       ( /ィ         h         , '´ ̄ ̄ ̄`ヽ   |  ハ や │
⌒⌒⌒ヽ(⌒ヽ/ ',         l.l         ,'  r──―‐tl.   |  ハ つ │
        ̄   ',       fllJ.        { r' ー-、ノ ,r‐l    |  ! め │
            ヾ     ル'ノ |ll       ,-l l ´~~ ‐ l~`ト,.  l        |
             〉vw'レハノ   l.lll       ヽl l ',   ,_ ! ,'ノ   ヽ  ____/
             l_,,, =====、_ !'lll       .ハ. l  r'"__゙,,`l|     )ノ
          _,,ノ※※※※※`ー,,,       / lヽノ ´'ー'´ハ
しょうがないから児童翻訳の手助けを借りて俺が訳してみたぜ。
シングルスレッドルール『一旦Swingコンポーネントが実体化されたら、コンポーネントに関係するコードはイベントディスパッチスレッドで実行すべし』
実体化とは setVisible(true),show(),pack() の3つのいずれかを実行すること。
すなわち、これらを実行する前のnew Frame()は、別にmainにいきなり書いても良さそうな気がするんだけど・・・
442デフォルトの名無しさん:2005/11/09(水) 01:15:56
そのとおりだよ
そしてshowはsetVisible(true)とイコールですでに使用は推奨されていない

って>>437で答えてるじゃん
443デフォルトの名無しさん:2005/11/09(水) 01:21:29
そういうことか。無言でURLだけ差し出されたから、意図がつかみとれんかった。すまんね。
444デフォルトの名無しさん:2005/11/09(水) 02:11:52
http://homepage1.nifty.com/algafield/JavaGUIFaq19j.html#four3

ここのFAQ(日本語訳)によると
Swingのどこかにスレッド関連のバグがあるので、
GUIの構築と始動はつねにEDTから行う必要がある
ってことになってるんだけど、
この問題はもう解決したということなんでしょうか?
445デフォルトの名無しさん:2005/11/12(土) 00:33:07
>>444

おおお、そんな罠があるのか。
ちょっと気になった。

はやくなおしてくれよ、Sun
446デフォルトの名無しさん:2005/11/12(土) 00:55:04
始動はあったとしても
構築はないんじゃないかな
ただ、packも構築というのならそれもはいってしまうわけだが
447デフォルトの名無しさん:2005/11/17(木) 01:02:05
LinuxとWinで動くGUIアプリつくるのに、SwingにするかQtにするか迷ってるんですが、
やっぱSwingでつくるとGCでときどき止まったりとかするんでしょうか?
448デフォルトの名無しさん:2005/11/17(木) 01:27:01
リアルに止まるのは JDK 1.2 まで。
1.3 以降の GC は他の処理を止めない。
449デフォルトの名無しさん:2005/11/17(木) 01:31:34
現実問題、それほど気にならないと思われ。
それに、規模が大きければQt以前の問題でJavaで組んだ方が楽。
規模が小さければGCも気にならない。
450デフォルトの名無しさん:2005/11/17(木) 01:55:41
昔、JBuilder使ってたけど、空白の3秒とかあったな・・・
VMの最大ヒープサイズ(-Xmx<size>)近くまでメモリを利用すると頻繁に
GCがかかって極端に遅くなる(GCがかかっても解放する領域がないので
何度もGCがかかる)けど、それ以外のGCではそれほど気にならないと思う。
JDKをインストールしたディレクトリの demo\jfc\SwingSet2\SwingSet2.jar
でSwingのデモを触ってみるといいかも。
451デフォルトの名無しさん:2005/11/17(木) 04:15:55
それって、世代別GCじゃないころの話?
452デフォルトの名無しさん:2005/11/17(木) 11:53:41
FullGCはしれば今でもひっかかる
ただ、メモリ使用量やアプリによってこの辺は変わる
レスポンスが欲しいのかスループットが欲しいのかその辺考慮してオプション設定が必要
453デフォルトの名無しさん:2005/11/17(木) 22:32:53
>>452
それってVMのチューニングの話?
ユーザが特定できない場合はどうしようもないよね。
454デフォルトの名無しさん:2005/11/17(木) 22:37:31
そりゃGCの実装に依存するようなプログラミングするなよっていうのがJavaのスタンスですから
455デフォルトの名無しさん:2005/11/17(木) 23:28:52
>>453
実行時のチューニングの問題

GCの把握というより、どのメソッドでどれだけメモリを食うかなどは
チェックするのは当たり前

SwingはGUI部分なのでロジックの外で動くからFullGCが動きやすいのは事実
だからこそインクリメンタルGCとかで対応するわけだ

5.0からは並列GCがデフォのインクリメンタルGCになったから
今後のマルチコアで効果が大きいはず

今はアプリが出来上がったあとにプロファイラはしらせてGCが本当にネックになってるか
グラフィカルに簡単に調べれるんだから簡単なもんだろ
456デフォルトの名無しさん:2005/11/26(土) 22:48:53
Swingに挑戦します。
手始めにアプリの基本である
左ツリーの右上リスト、右下エディタ(またはリーダ)
な分割をしたいと思います。

適切なContainer?の組み合わせを教えてください。
ずうずうしくてごめんなさい、でも頑張ります。
457デフォルトの名無しさん:2005/11/26(土) 22:52:41
まずNetBeansをいれてみよう
それでぺたぺたはりつけて試行錯誤してみては?

おそらくやりたいのはJSplitPaneでの区画とおもわれ
これだけ使うのであればレイアウトはあまり意識しないかもしれないけどね
その中のパネル等でレイアウトが必要になる
458デフォルトの名無しさん:2005/11/26(土) 22:58:35
>>457
さっそく入れてみます。ありがとう。
459デフォルトの名無しさん:2005/11/26(土) 23:05:47
>>256
XAMLに対抗でき技術としてMozilla ProjectのXULというのがあるぞ。
ほかにAjaxやAjax、Macromedia Flex
460デフォルトの名無しさん:2005/11/26(土) 23:40:00
JavaOneTokyo 2005によると

JavaStudio Creator,

Java Studio Enterprise
が無料になったらしい。

GUI開発するには
NetBeansとどっちつかうのがいいんだろう。

だれか使い心地れびゅーよろ


それからJava SE 6 Mustangでは
デスクトップ周りがかなり進化しているようだ。

櫻庭氏がjavaOneTokyo2005のセッションで紹介していた。

タスクトレイの追加、タブのスクロールが追加された。しかし、タブを閉じるボタンが
無いのが残念と桜橋がいっていた。そこがSWTやFirefox, Operaなど
のタブブラウザなどにまだ負けていると。
Java SE 5 Tiger 虎の穴をつくった桜橋が
Java SE 6 MustangのサイトをJavaOneTokyo2005で早速紹介していた

Java SE 6 Mustang じゃじゃ馬ならし
http://www.javainthebox.net/laboratory/JavaSE6/
461デフォルトの名無しさん:2005/11/26(土) 23:44:46
そこはもう読んだけどTigerのときと比べると衝撃は少ないなぁ
スクリプト対応くらいじゃね?
462デフォルトの名無しさん:2005/11/27(日) 00:03:59
たしかに衝撃は1.4や5.0に比べてないね
デスクトップのやつも今でも使えるライブラリが標準ではいるだけだし
OpenGLアクセラレーションが本当にWindows環境でもちゃんと動くかどうかが気になる

現行使い物になってないからね
463デフォルトの名無しさん:2005/11/27(日) 00:48:20
NBのプロパティペインみたいなのはどうやって作るんですか?
JTableを貼り付けてみたけど、何か違う気がする・・・
実際に作りたいのは*の行は新規でそうじゃないのは更新、
値入れるところは文字列だったり右隅に編集ボタンなど動的に切り替えられるAccessみたいな作りです。
464デフォルトの名無しさん:2005/11/27(日) 00:54:50
それはJTableで作れる
セルレンダラとセルエディタを勉強しよう
465デフォルトの名無しさん:2005/11/27(日) 00:55:47
>>464
ありがとう。がんばるよ!
466デフォルトの名無しさん:2005/11/27(日) 01:05:22
まずは自由自在にデータをいじれるように
DefaultTableModelの勉強からだね
JTableはセルに入るのはObjectならなんでもいい
つまり、クラスが自由に入るのだよ

そして
セルレンダラは表示方法
セルエディタは入力方法

セルのオブジェクトはInteger型でも
表示はその値に応じたプログレスバーだったり
入力方法はコンボボックスだったりと非常に多機能すぎ、といいたくなるくらいの
ものだから勉強すればするほど便利になっていくよ

JTableとJTreeをまじめに書くとそれだけで本ができあがるくらい
とっはよくいうが、実際にそこに踏み込んだ本が一冊もないのがすごいな
おそらくこの辺は社外秘のドキュメントにまとめられてるとかなんだろうけど
467デフォルトの名無しさん:2005/11/27(日) 01:22:01
>>466
> セルのオブジェクトはInteger型でも
> 表示はその値に応じたプログレスバーだったり
うわ、これはかっこいいな。
ちょうど進捗管理項目を用意しようと思ってました。
%表示より断然こっちですね。
468デフォルトの名無しさん:2005/11/27(日) 01:38:20
>>460 リンクthanks
読んだところ、StAXが良い感じ。
巨大XMLを生成するのにDOMではやってられず、
文字列で直に出力するのも賢くない感じで、
どうしたもんかなぁと思っていたところだった。

Scriptは適用できる場面を思索中。色々ありそうなのだが、
現状では「Javaでやれば?」と言う思考が邪魔をする orz
469デフォルトの名無しさん:2005/11/27(日) 01:48:10
>>468
> script
俺は設定ファイルの更新に使う予定。
下手なGUI作らずともBeanを直接書き換えられるのは魅力。
あとOSXのダッシュボードみたいなこともできるようになる。
タスクトレイと組み合わせれば強力なデスクトップ支援アプリに育つよ。
470デフォルトの名無しさん:2005/11/27(日) 02:10:52
設定ファイルの更新か。

俺だったらAntやMavenとかでやってしまいそう
471デフォルトの名無しさん:2005/11/27(日) 02:18:05
メニューコマンドとスクリプトを1:1で関連付けたXMLファイルとかあれば
カスタマイズがしやすいエディタとか作れるね
プラグインという考え方が変わってくるんじゃない?
472デフォルトの名無しさん:2005/11/27(日) 03:41:29
>>466
JTableだけで一冊書いた本はあるだろう
473デフォルトの名無しさん:2005/11/27(日) 05:35:48
>>472
JAVA GUIプログラミング SWING の3巻目がほとんどJTable。

今探してきたが結構古い本だ、光陰矢のごとし。
474デフォルトの名無しさん:2005/11/27(日) 10:41:45
Windows XPでSwingのメニューやツールチップに影が付かないのがすごく気になる。
475デフォルトの名無しさん:2005/11/27(日) 11:39:10
そんなに詳しかったっけ?あの本
ぱらぱらと見た感じではあまり詳しくはのってなかった様な気がしたが
またあとでみてみよう
476デフォルトの名無しさん:2005/11/27(日) 11:42:38
>>474
同意…影って付けれないんかね
477デフォルトの名無しさん:2005/11/27(日) 12:05:30
>>474
気になるどころか、そんな違いがある事に初めて気づいた・・・
478デフォルトの名無しさん:2005/11/27(日) 12:12:53
自分でLAF作ればつけれるのでは
479デフォルトの名無しさん:2005/11/27(日) 14:01:42
JTableは面白いけど、わざわざシングルラインな行幅を太くしちゃうようなGUIにはしちゃいけねーよ。
480デフォルトの名無しさん:2005/11/27(日) 14:03:43
>>479
どういうこと?
481デフォルトの名無しさん:2005/11/27(日) 14:06:32
>>480
ここの最下段みたいなGUIのこと。真ん中の画像はギリギリセーフ。
ttp://www.javadrive.jp/tutorial/jtable/index3.html
482デフォルトの名無しさん:2005/11/27(日) 14:59:20
JSplitPaneを使って ├ のような仕切りを作ったんですが
horizontalな仕切りが右へずらせません。verticalな仕切りが邪魔をしてると思うのですが
どのように対処したらよいのでしょうか?
483デフォルトの名無しさん:2005/11/27(日) 15:19:43
>>482
そんなの案件しだいだろ
スペースが足りなければ1行に複数行かくことはある
基本的に俺も横方向だがね

業務系だと結構あるよ

484デフォルトの名無しさん:2005/11/27(日) 15:20:08
>>481の間違い
485デフォルトの名無しさん:2005/11/27(日) 15:21:18
>>482
JSplitPaneのコンテナの中にJSpritPaneいれてるならふつうにうごくけど?
486デフォルトの名無しさん:2005/11/27(日) 15:26:43
>>481のサイト解説サイトのように見えて
よくわからないとかこれでたぶん大丈夫とか
やばい感じがぷんぷんとするよね
487デフォルトの名無しさん:2005/11/27(日) 15:31:19
JSplitPane
    left:JPanel
        JTree
    right:JPanel
        JSplitPane
            top:JPanel
                JTable
            bottom:JPanel
                JEditorPane

こんな感じの構造なんだけど、何故かできない・・・
JPanelは全てBorderLayoutで全部Centerに放り込んでます。
488デフォルトの名無しさん:2005/11/27(日) 15:50:08
>>487
まったく動かないの?
489デフォルトの名無しさん:2005/11/27(日) 15:52:53
490デフォルトの名無しさん:2005/11/27(日) 15:53:24
もしかしてJScrollPaneはってないきがする
491デフォルトの名無しさん:2005/11/27(日) 15:54:37
JTree,JTable、JEditorPane等はJScrollPaneの上に貼り付けるのが必須だと思っていい
492デフォルトの名無しさん:2005/11/27(日) 16:03:36
>>488-491
できました!ありがとうございます。
ただこれだとJTreeとJTableが相対的なリサイズを持たないのですが
これはJPanelをはさめということですか?
493デフォルトの名無しさん:2005/11/27(日) 16:11:09
相対的なリサイズを持たないって具体的には?
494デフォルトの名無しさん:2005/11/27(日) 16:12:27
>>493
最大化すると一緒に大きくなってくれないって意味です。
495デフォルトの名無しさん:2005/11/27(日) 16:14:29
ごめんなさい。その部分だけLayoutがWestになってました。
改造中に余計なドラッグしちゃってたみたいです。
496デフォルトの名無しさん:2005/11/27(日) 16:19:01
勝手に割合で増減はしなかったとおもう
イベントに応じてやるしかないな

ただ、ピクセル単位のほかに比率も使って設定、取得できるのでさほどむずかしくはないよ
497デフォルトの名無しさん:2005/11/27(日) 16:24:23
(#´・ω・`) ←>>496
498デフォルトの名無しさん:2005/11/27(日) 16:28:34
拡大縮小時に割合でかえないのはOSの動きに合わせてるからでしょ
Windowsだってそうだし
499デフォルトの名無しさん:2005/11/28(月) 11:11:27
独自のLookAndFeelでメニューに影を付けたい人にヒントを置いておきますね。

つjava.awt.Robot
500デフォルトの名無しさん:2005/11/28(月) 11:16:07
>>499
激しくめんどくさそうだな。
でも、ヒントその2でも置いていこう。

ttp://www.javainthebox.net/laboratory/GUI/TransFrame/TransFrame.html
501デフォルトの名無しさん:2005/12/02(金) 16:53:18
初歩的で申し訳ないんですが質問です。

昨日からVisualStudioを使ってアプリ作ってます。
↓のような感じでJButton1押下時の処理を記述しております。

private JButton getJButton1() {
  if (jButton1 == null) {
  jButton1 = new JButton();
  jButton1.setBounds(400, 30, 73, 24);
   jButton1.addActionListener(new ActionListener() {
     public void actionPerformed(java.awt.event.ActionEvent e) {
        〜ボタン押下時の処理〜
     });
   jButton1.setText("登録");
}
return jButton1;

これがeclipseの「実行」⇒「次を実行」⇒「Java Bean」で実行するとちゃんと動くのですが、
JavaWebStartを使ってTomcatから配布する形にすると
addActionListenerの行で「java.lang.NoClassDefFoundError」が発生して起動できないという事象が発生します。
ボタン押下時の処理を全部消すと一応起動はするのですが・・・。

何か設定とか要るんでしょうか?
502デフォルトの名無しさん:2005/12/02(金) 20:05:36
ActionListenerの実装が匿名クラスで作成されているので
このファイルをコンパイルするとクラス名$番号.classってファイル
ができると思うけど、配布ファイルに含めていないのではないかと。
参考: http://sjc-p.obx21.com/word/jt/anonymousclass.html
503501:2005/12/02(金) 21:22:34
>502 さん

ご指摘のとおり、匿名クラスのファイルが配布ファイルに含まれていませんでした。
匿名クラス使ったこと無かったのでそんなものが作られていたとは、もっと勉強します。

どうもありがとうございました。大変助かりました。
504デフォルトの名無しさん:2005/12/03(土) 05:26:16
   _ _/             |           /
     \               |     __  /     |   |   |
  __  _/  ____/             |    _| _|   /
      |              |\        |            /
      /              | \/      |          /
     ̄               _|         _|      __/

                                  /\___/ヽ
    (.`ヽ(`> 、                      /''''''   '''''':::::\
     `'<`ゝr'フ\                 +  |(●),   、(●)、.:| +
  ⊂コ二Lフ^´  ノ, /⌒)                 |  ,,,ノ(、_, )ヽ、,, .::::|
  ⊂l二L7_ / -ゝ-')´                .+ |   `-=ニ=- ' .::::::| + .
       \_  、__,.イ\           +     \   `ニニ´  .:::/    +
        (T__ノ   Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|  .
         ヽ¬.   / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
          \l__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
  ___________________________  __
 │  │  │  │  │  │  │  │  │  │  │  │  │  │|  |
 │東│東│南│南│西│西│北│北│  │  │發│發│中│|中|
 │  │  │  │  │  │  │  │  │  │  │  │  │  │|  |


505デフォルトの名無しさん:2005/12/03(土) 10:17:57
そんな安くていいんだ。ラッキー★
506デフォルトの名無しさん:2005/12/04(日) 16:20:17
>>504
ツーイーソーってのにはならないの?
507デフォルトの名無しさん:2005/12/08(木) 00:59:25
まだいるか〜?
SwingがいつかまともなGUIになると希望持っているやつ・・
508デフォルトの名無しさん:2005/12/08(木) 01:06:23
>>507
どのへんがマトモじゃないと思ってるのか詳細教えてくれ。
509デフォルトの名無しさん:2005/12/08(木) 01:44:01
510デフォルトの名無しさん:2005/12/08(木) 02:30:54
ワシが最後に触ったSwingはXPのL&F未対応だったんだけど、今みたらテーマまで対応してた。
ちとびっくり(しかも速い!)

実はSWTよりSwingの方が好きなにためらっていたが今その理由が消えた。
511デフォルトの名無しさん:2005/12/08(木) 03:03:34
速くなったなSwing。SWT派だけど、正直今はSwingの時代だと思う。
512デフォルトの名無しさん:2005/12/08(木) 07:54:39
>509
Swingもだいぶお洒落になったもんだな
むかしは味気なかったのに
513デフォルトの名無しさん:2005/12/08(木) 10:01:53
FreeMindやらJUDEやら使ってみて
結構普通なんでSwingもありだなあと
思い始めてきました。

ただ、ZendStudioもSwingだと思うんだけど
すんごい重いんだよねぇ。再描画が間に合わない。
JBuilder4のころみたい。懐かしい。

どの程度の事やり始めると重くなるんだろう。
それか軽く作る作法みたいなTIPSをまとめた
本でも出てくれれば嬉しいなあ。
514デフォルトの名無しさん:2005/12/08(木) 16:49:15
使ったこと無いけどGUIの設計がイケてないんじゃないの?
何かを表示するたびに裏でいろいろしないといけないような設計になってるとか。
515デフォルトの名無しさん:2005/12/08(木) 17:23:17
JBuilderは5か6あたりが神だったな
516デフォルトの名無しさん:2005/12/08(木) 22:03:53
8だっけ?なんか半年でバージョンアップしてたの。
あれがある意味神だった。
517デフォルトの名無しさん:2005/12/08(木) 22:06:44
画面表示部のクラスの分割方法がわからん。。
1画面・1クラスにすると複雑な画面だとかなりの行数いくし。。
みんなどうやってんの?
518デフォルトの名無しさん:2005/12/08(木) 23:00:53
8は1.4系に始めて対応したバージョンだったと思う
でも7だったか8から価格を一気に跳ね上げ他結果
ユーザーにそっぽを向かれたという分かりやすい例

そのあたりからEclipseやNetBeansが業務で使われだしたというのもある
519デフォルトの名無しさん:2005/12/08(木) 23:02:12
NetBeansを業務で使う!?
いやNetBeansは個人的にはEclipse以上とは思うが
企業がNetBeansの魅力に気づいているケースなんて稀だろ
520デフォルトの名無しさん:2005/12/08(木) 23:05:38
>>519
GUI絡みだったら使ってたのかも。俺は知らんが・・・
521デフォルトの名無しさん:2005/12/08(木) 23:12:30
>>519
プラグインのセットアップの手間とか考えたら業務で普通に使うだろ
Sun純正なわけだし
Javac使うだけにJDKの制御がわかりやすい

GUIとWEBアプリなら割と使われてるよ
EJBもNetBeansで、というのはこれからかな
522デフォルトの名無しさん:2005/12/08(木) 23:14:31
EJB3はNetBeansがかなりいいと思う。
そして、JSFも、パレットのD&Dが便利。
TSSのEclipseWTPのところのコメントにあったけど、EclipseはJavaSEのためのIDEで、JavaEEのためにはNetBeansがいいと思う。
523デフォルトの名無しさん:2005/12/08(木) 23:16:23
ベテランSE40歳「でもSwingって遅いでしょ?EclipseはSWTじゃんw」
524デフォルトの名無しさん:2005/12/08(木) 23:20:22
WEBアプリ開発は2年位前まではわりとあったけど
うちのまわりでは最近は業務系はないからね。

使い勝手の悪さと開発効率の悪さが問題になって
みんなリッチクライアントとかになっていった。
特に効率の悪さは純粋にコストに跳ね返るからね。

VEでGUI、JBuilder、JDev、NetBeansと評価したけどVEだけは論外
JDevはGUI部分はJBuilderの古いやつとほぼ同じだが重さが最強
JBuilderは1本限りではコストが高いのとGUI部分は多少劣る。

とNetBeansになった。
古いJBuilderもあるけど、1.3時代のものだから
JDK差し替えるとGUI部分がうまく動かなくなるのがねぇ。
当時は重いと思っていたJBuilderも今のマシンだとEclipseとかNetBeansとかと
速度変わらん。むしろ軽い。

当時は最強だったがリファクタリングとか折り畳みがないとか今では機能不足過ぎて・・・。
525デフォルトの名無しさん:2005/12/09(金) 12:19:37
>517
ある機能の呼び出しや結果表示に
画面のあらゆる部分が使用されうるなら
1クラスにしてしまった方が自然だと思う。
たとえ複雑な画面でも。
526デフォルトの名無しさん:2005/12/09(金) 12:59:57
>>507
何のために俺が>>5を書いたのかああぁぁ!!!!
SwingのLaFが気に入らなければ自作もできるのだああああああぁぁ!!!!!
527デフォルトの名無しさん:2005/12/09(金) 13:01:08
>>517
画面構築用のコードなんか、ツールに任せとけばいいんだから問題ない。
528デフォルトの名無しさん:2005/12/09(金) 20:03:22
俺、今Visual EditorでSwingやってるんだけど、面倒に感じてる。
なんというか、MVCのうちのViewしか自動でできないじゃないか。
イベントリスナの生成と追加まではマウス操作でできるけど、
その中身のControllの部分は自分で延々と書かざるを得ない・・・。

Cとか、欲を言えばMまで面倒見てくれるソリューションは無いものか・・・。
529デフォルトの名無しさん:2005/12/09(金) 20:18:54
530デフォルトの名無しさん:2005/12/09(金) 20:23:58
MVCのMとVとCを自動生成してくれれば、やることなくてウハウハだな、兄弟。
531デフォルトの名無しさん:2005/12/09(金) 20:35:07
MとVとCを自動生成してくれればおれたちゃクビだな兄弟。
532デフォルトの名無しさん:2005/12/09(金) 22:20:01
>>517
1クラスに何もかも突っ込まなくてもデータはデータストアクラスつくっときゃいいじゃん。
Modelでデータストアから表示したデータを引っ張り出せばいいじゃん。
何かあったらオブザーバパターンで同期とりゃいいじゃん。
という感じでやればパネル毎とかに分割しても大丈夫。

コンポーネントの初期化が邪魔ならファクトリパターンを使えばよい。
ファクトリパターンじゃなくても単に初期化する関数を作ってやればいい希ガス。
533デフォルトの名無しさん:2005/12/09(金) 22:22:10
>>528
そんなGUIツールあるか馬鹿。

何もしないで自動でアプリケーションが完成するなら、俺たち全部失職だよ。
534デフォルトの名無しさん:2005/12/09(金) 22:23:04
モデルまで自動生成ワラタ
でも、配置以外にもうちょっとつっこんだところをやってほしいというのは多少あるけどね
535デフォルトの名無しさん:2005/12/09(金) 22:25:28
>>534
Swing版Struts作ったら使ってくれるか?
536デフォルトの名無しさん:2005/12/09(金) 22:32:40
Strutsってビューの遷移とデータの管理がメインだから
GUIアプリで必要には見えんな

オープンソースのSwingのDB連携コンポーネントが
あると喜ばれると思われ
537デフォルトの名無しさん:2005/12/09(金) 22:33:46
>>536
O/Rマッパー系のライブラリをクライアントでつかえばいいやん。
別にサーバー専用じゃないっしょ。
538デフォルトの名無しさん:2005/12/09(金) 22:34:27
要するに、JTableを何とかしろってことか?
539デフォルトの名無しさん:2005/12/09(金) 22:35:22
>>537
ORマップとGUIコンポーネントの連携は?
用はぽとぺたでAccessみたいなのが創れれば業務系でヒットするのでは、ということなんだが
540デフォルトの名無しさん:2005/12/09(金) 22:54:16
>>539
仕様クレ。
541デフォルトの名無しさん:2005/12/09(金) 23:03:11
RowSetを管理するコンポーネントと
各種コンポーネントはフィールド名がマッチングされていて
データのロード、セーブができてればそれでいい
542デフォルトの名無しさん:2005/12/09(金) 23:04:29
>>541
ObjectBrowserのテーブルビューワだけでいいのかな?
それなら何とかいけるかも。JDBC差し替えればどのDBでも使えるか・・・
543デフォルトの名無しさん:2005/12/09(金) 23:05:34
> ORマップとGUIコンポーネントの連携は?
普通にDIコンテナかませばいい。
Struts + Spring + ORM が Swing + Spring + ORM になる。
JSP や taglib で長時間かけてショボいビュー作ってたのが
Swing で短時間にリッチなビュー作れる。
マジおすすめ。

データをJTable に流し込む処理くらい手で書きゃいい。
544デフォルトの名無しさん:2005/12/09(金) 23:09:11
>データをJTable に流し込む処理くらい手で書きゃいい。
たったこれだけのことができない馬鹿がこぞってHTML書いてるってことか。
悲しいね。
545デフォルトの名無しさん:2005/12/09(金) 23:11:17
JTableにながすのは手で書いてる、というかライブラリ化はしてるけど、
外部からちょっかい出すんじゃなくてやはりJTableを継承したものにそれなりの
実装したほうが綺麗かな、と思ってね

RowSetはPostgresとかMysqlが未実装なままなので使いにくいけどな
結局自分でRowSetもどきをインプリメントする必要がある

RowSetそのもののを実装すればいいという話もあるが、
あれはひどいAPIですね
546デフォルトの名無しさん:2005/12/09(金) 23:14:16
JTableだけでもかなり需要はありそうだな

データを検索して一覧表示、選択して詳細表示とか普通の処理だからな
ただ、セルエディタでなんかやろうとすると結局アプリ単位で挙動が必要になるのがつらいところ

マスタメンテ程度なら一元化できるだろうけど
547デフォルトの名無しさん:2005/12/09(金) 23:48:34
>>509
これOSなんなのだろう。WinやMacとは違うと思うけど。
GNOME on Unixかな。
548デフォルトの名無しさん:2005/12/09(金) 23:52:53
Vistaでしょ
549デフォルトの名無しさん:2005/12/10(土) 00:00:48
メイリオ使ったスクリーンショットも見たいっす。
550デフォルトの名無しさん:2005/12/10(土) 00:46:05
JTableの1行データにアクセスするときどうしてる?
例えば、Book クラス
class Book {
    String title;
    String author;
    int    price;
}
をテーブルに追加・更新する場合
DefaultTableModelのsetValueAt(Object value, int row, int col)や
addRow(Object[] rowdata)で値をいれるか
それとも、Bookオブジェクトを追加するメソッド(addBook(Book book)等)をTableModelを
継承したクラス(BookTableModel等)で実装するか

セル編集のときはsetValueAtで行い、集計処理やDB格納などはList getBooks()みたいに
オブジェクトを取り出して処理してるけど、クラスごとにTableModelを継承した
クラスをつくらないといけないのがちょっとだけ面倒。かといってsetValutAtだと
属性だけが追加・更新されBookオブジェクトがなくなってしまうし。
551デフォルトの名無しさん:2005/12/10(土) 00:55:41
>>550
つJakartaのBeanUtil
552デフォルトの名無しさん:2005/12/10(土) 01:04:21
DefaultTableModelを継承して
ユーザーオブジェクトの更新のところをオーバーライドするとか
まぁ前者が理想だな
553デフォルトの名無しさん:2005/12/10(土) 02:19:35
>>534
いや、Mに関しては自動生成ナンセンスなのは分かってんだけど、
なんていうかな・・・。
コレクション以上に抽象化してくれるような・・・。まぁここらへんは
すでにGUIツールの範疇じゃないんだろうけど。

MacOSXでいえばCocoa BindingとかCore Dataとか、色々と便利な
モノがあると聞いたことがある。
554デフォルトの名無しさん:2005/12/10(土) 02:57:42
グリッドが高機能で特にデータ連携部の抽象度が高いと
初期段階の作業効率はいいんだが
あとからお客さんの追加要望なんかがすんごい細かいと、
融通が利かなくて泣く。

散々VC++で経験した。
555デフォルトの名無しさん:2005/12/10(土) 11:31:47
>>554
kwsk

俺もなんかinvokeLaterするしかない状況があったけど何だったか忘れたなあ。
556デフォルトの名無しさん:2005/12/10(土) 12:50:11
ところで、VisualEditor の吐くコードってどうよ。
全部のコンポーネントに getメソッド作って、
リスナとかは登録時に無名クラスで直書きってのは。
557デフォルトの名無しさん:2005/12/10(土) 13:01:11
setSizeするよおうなのは信用できない
558デフォルトの名無しさん:2005/12/10(土) 13:02:36
遅延生成をやる以上getterは必要だろうな。
559デフォルトの名無しさん:2005/12/10(土) 13:14:09
>>553
ORMと連携しやすいIFもっていて、「一般的な」用途を満たすTableModel
の実装をフレームワークとして提供してくれってことやな。

「一般的な」TableModelなんてあるかなあ。ユーザはリッチGUIになった
とたんに好き勝手なことをいうもんだと思ってるんだが。

・・・というか、ココ最近のWebアプリって、HTML製のViewが持つ操作性の制約
を悪用して、大手ベンダが手抜きしているだけなんだよなあ… orz
560デフォルトの名無しさん:2005/12/10(土) 13:17:29
だからまともなところは2年ほど前からどんどんリッチクライアントに行ってる

一方いまごろWEBアプリ最強といいつつ、入力系なのに社内システムに採用させようと
がんばってるおっさんもいる
561デフォルトの名無しさん:2005/12/10(土) 13:21:34
>一方いまごろWEBアプリ最強といいつつ、入力系なのに社内システムに
>採用させようとがんばってるおっさんもいる

まあ、フットワークの重い腐れSIerなら、蓄積したノウハウをすっぱり
捨てるなんてできないだろうからなあ。あーあ。
562デフォルトの名無しさん:2005/12/10(土) 14:02:12
>>553
ObjectWebのCayenneというO/Rマッパーは、Cayenneを経由してDBの
データを表示するための、Swing用クラスも提供してるよ。ポトペタでDBデータをリストに表示できる(らしい)。
Cayenne自体、Core Dataの前身であるEnterprise Object Frameworkのコピーみたいなもんだし。

残念ながらCocoa BindingはOS X + Objective-C限定だなあ。
563デフォルトの名無しさん:2005/12/10(土) 14:52:08
手が空いたら、BeanのプロパティをそれぞれJTextFieldとかのコンポーネントに割り当てるフレームワークと、その設定をするNetBeansのプラグインを作る。
きっと作る。
564デフォルトの名無しさん:2005/12/10(土) 14:56:17
Beansというかそのへん簡単にやってくれるのがRowSetの役割なんだけどな・・・
565デフォルトの名無しさん:2005/12/10(土) 16:50:37
JTextFieldとかJTextAreaとかJComboBoxとか、それぞれ値の取り出し方が違うから、そこを平滑化してくれるものが欲しい。
566デフォルトの名無しさん:2005/12/10(土) 17:16:28
>>565
その程度なら自分で作れよw
567デフォルトの名無しさん:2005/12/10(土) 17:18:49
ComboBoxは統一的に扱うのは多少難しいね
データの値と表示項目は大概違うから
568デフォルトの名無しさん:2005/12/10(土) 17:38:29
>>555
いや大した話じゃないのよ
ここの一覧はやっぱりこういう条件の場合はこう出してとか
集計行もブレイクして出してとか
こういう条件の時は更新に別のテーブルに更新に行ってとか
要望があると、サードパーティ製品にありがちなんだけど
グリッドとレコードセットががっつり組んでて
Updateメソッド一発で編集内容を更新とか楽な事やってると
変更が大変なんですよ・・・・。
569デフォルトの名無しさん:2005/12/10(土) 18:34:06
>>513
FreeMindって
あのMindMapの?
570デフォルトの名無しさん:2005/12/10(土) 18:49:20
おれが知ってるJava製FreeMindはMindMapを書くツールだ。
571デフォルトの名無しさん:2005/12/10(土) 21:50:32
>>569
そうそう。起動にちょっとかかるけど
起動しちゃえばわりと軽かった。
Swing見直そうと思ったきっかけ。
572547:2005/12/11(日) 03:37:15
>>548
ありがとう。Vistaか、Windows最新のやつ、興味なかったので、全然わからなかった。
573デフォルトの名無しさん:2005/12/11(日) 13:57:01
>>562
http://pcweb.mycom.co.jp/special/2005/cocoamvc/
にあるような感じか・・・。
確かにこれめちゃ楽そうだよな・・・。いいな、Javaにもこんなの欲すぃ・・・。
574デフォルトの名無しさん:2005/12/11(日) 14:12:29
Swingは素のAPIなんで、DBとかとの連携とか細かいのはサードパーティでどうぞってことでは?
JBuilderが業務系で使われてたのはそういうことだと思うし

Win32APIとおなじくあくまでも素
575デフォルトの名無しさん:2005/12/11(日) 16:29:41
なにか構想描くときみなMindMapを描いているのか。
新しい仕様を考えるとき
新しいものを発明、発見するとき、
新しいプロジェクトを立ち上げるとき
みなMindMapか
576デフォルトの名無しさん:2005/12/12(月) 08:46:29
>>573
Java には既に MVC あるだろ
577デフォルトの名無しさん:2005/12/12(月) 14:19:31
>>567
SwingのMVCはGUIコンポーネント単位(JTable(VC), TableModel(M))であるけど
ぱっと見てCocoaは画面単位でMVCのフレームワークがあるみたい
578デフォルトの名無しさん:2005/12/12(月) 19:16:21
質問です。

JavaWebStart使ってSwingのアプリケーション配布する場合に
<j2se version="1.4"/>
と書いてJREのバージョン指定すると、
クライアントの端末にJREの1.4.X以外のJRE(1.5等)が入っていた場合に、
JRE1.4の自動ダウンロードが始まってくれますが、
JREが全くインストールされていないクライアントの場合、jnlpファイルへのダウンロードダイアログが開くだけで、
JRE自動インストールが出来なくて困っています。

何とかJREなしの環境でも自動インストールさせる方法って無いのでしょうか。
579デフォルトの名無しさん:2005/12/12(月) 20:28:58
580578:2005/12/13(火) 11:02:13
>579さん
ありがとうございます。うまくいきました。
要ActiveXなんですね。
581デフォルトの名無しさん:2005/12/13(火) 16:13:10
Swingの本はどれがオススメですか?
リファレンス的なのがいいのですが
582デフォルトの名無しさん:2005/12/13(火) 16:26:39
3本セットの奴しかない気がする・・・
高いんと思うんだったら変な表紙の奴のほうで・・・
583デフォルトの名無しさん:2005/12/13(火) 16:28:02
比較的まじめに書かれてるのはオプショナルパッケージの時代の
SwingによるJavaGUIプログラミングだが
さすがに古過ぎて一部おかしいところも見受けられる
584581:2005/12/13(火) 16:41:19
3本セットのやつとは「Java GUIプログラミング さらにパワーアップしたSwing」の1〜3ですか。
まずはVol.1をマケプレで買ってみようと思います。
585デフォルトの名無しさん:2005/12/13(火) 18:05:10
JavaのTutorialはやったの?
あれ一通りやればわかった気になれるよ。
586デフォルトの名無しさん:2005/12/13(火) 18:08:00
実際のところおかしいと思ったらその場で調べればすぐに分かるからな
たぶんSwingで今のところおかしいと思うのはセルエディタとフォーカスの問題あたりくらい
587デフォルトの名無しさん:2005/12/13(火) 19:56:39
表紙が変な方のSwingの本

Javaアプリケーション作成講座 Swingプログラミング徹底攻略
http://www.7andy.jp/books/detail?accd=31371035
588デフォルトの名無しさん:2005/12/13(火) 20:00:01
589デフォルトの名無しさん:2005/12/13(火) 23:05:41
>>583
1.4ぐらいから新しく書き直されたでしょ
590デフォルトの名無しさん:2005/12/14(水) 00:30:47
>>587
その表紙が変なほうのSwing本、実は評判は良かったりするんだよな。
Swing系でこれだけまとまって、きちんと紹介した本はないと言われてるくらいで。
591デフォルトの名無しさん:2005/12/14(水) 00:35:41
ブラウザサンプルを起動するとエロゲメーカーのページに飛ぶのは如何なものか。
592デフォルトの名無しさん:2005/12/14(水) 00:43:55
俺イズムをぐっとこらえればベストセラーだったろうに・・・
Kitty on your lapの人みたいな微妙なダメダメさがw
593デフォルトの名無しさん:2005/12/14(水) 00:50:03
俺も持ってるなあ、その本。いい本だよね。
会社の机の上に放置するのが、ちょっと恥ずかしいのが難点。
594592:2005/12/14(水) 00:54:03
調べてみたら同じ人だったΣ(´д`)
595デフォルトの名無しさん:2005/12/14(水) 01:17:20
しかし絶版。
表紙変えて出しなおしてくれればいいのに。
596デフォルトの名無しさん:2005/12/14(水) 20:25:09
lainたん…ハァハァ…。

って男かよ!
597デフォルトの名無しさん:2005/12/15(木) 03:08:18
大村忠史のJava GUIプログラミング さらにパワーアップしたSwing」全3巻持ってます。
とても役に立ってますよ。特にJTableについては、ほしい情報がほとんど書かれていました。
初級から上級まで、満足させられる内容で、まさしく戦うSwingプログラマのバイブルといえます。

柏原正三の「Java GUI コンポーネント完全制覇」もいいですよ。テキストコンポーネントに
ついてはこの本が一番詳しいんではないでしょうか。「さらにパワーアップしたSwing」と
「完全制覇」はだぶっている部分があまりなく、結果的に補完しあうような関係になっていると
思います。

それから、あまり話題にのぼらない本ですが、David Flanaganの
「Javaプログラム クイックリファレンス」も大好きな本です。この本はSwing専門ではないの
ですが、Swingに関する内容もかなり含まれています。JEditorPaneを使って、Webブラウザが
簡単に作れることが書かれていて、驚かされました。また、ドラッグ&ドロップによるデータ転送
のやり方も非常に詳しく書かれていて、とても助かりました。
他にも「さらにパワーアップしたSwing」と「完全制覇」には書かれていない、興味深いテーマが
非常に多く網羅されています。また、本格的に大きなプログラムを作るときの設計の仕方についても
参考になると思います。これは中級者以上でないととても読みこなせない内容ですが、末永く
つきあえる良書だと思っています。
598デフォルトの名無しさん:2005/12/16(金) 11:58:55
あの本絶版になってたんか。
表紙と文字色の読みにくさはともかく
内容はかなり良かった。

文字色がどうしてもダメで買わなかったけど。
599デフォルトの名無しさん:2005/12/16(金) 12:04:35
ここって、本の内容と同等?
http://wisdom.sakura.ne.jp/system/java/index.html
600デフォルトの名無しさん:2005/12/16(金) 12:33:49
>>599
少し覗いてみた限りでは、目次で見て必要なことはちゃんとあるって感じ。完全に同等かどうかはわかりません。
本とは色使いが違ってる。本のほうが読みやすいかな?
601デフォルトの名無しさん:2005/12/19(月) 21:59:23
質問させてください
swingは以前に比べたらとても軽快に動くようになったと聞きましたが、
例えばCPU1G、メモリ128MB程度のPCでJTableを表示させようとすると、
表示までに10秒とかユーザーがストレスを感じるくらいのレスポンスになってしまうのでしょうか?もちろん個人差の問題でもあるとは思いますが。
java web startを使う形で運用したいと思っているのですが、うちの社内だとまだCPU1G未満だったりOSがNTだったりのPCが多いので。
602デフォルトの名無しさん:2005/12/19(月) 22:06:56
メモリが128Mときついことはきついが
OSがNT4ならサクサク動くよ

まず遅いかどうかやってみたらどうかね
すぐ作れるんだから
603デフォルトの名無しさん:2005/12/19(月) 22:14:35
>>602
128Mでも動くことは動きますか
安心しました

とりあえず簡単なものを作って、SWTのtableとどちらが早くて使いやすいか確かめてみます

あと>>473の本ですが、やはり1巻2巻と買わないと内容は理解できない内容になっているのでしょうか
JTableに重点を置いて勉強したいので、なるべくJTableについて多くページを割いている本を探しているのですが
604デフォルトの名無しさん:2005/12/19(月) 22:18:24
まずどういったテーブルを出したいかだね
Swingのテーブルはテーブル載せる一つ一つにComponentのせれる

つまり、JPanelのせてその中自由に配置することが可能
やり方わからん買ったらまた書き込んでくれ

NetBeansで初期のカラム名、行数指定で配置きるから
それでまずは2000行くらいつくってみては?
たぶん、思ってるより重くはない
605デフォルトの名無しさん:2005/12/19(月) 22:19:16
「セル」一つ一つの書きミス
606デフォルトの名無しさん:2005/12/19(月) 22:34:54
>>604
netbeansですか。
ありがとうございます
早速やってみます
607デフォルトの名無しさん:2005/12/19(月) 23:57:20
>599-600
本のほうが解説は豊富に載ってるよ。
サイトに載ってないこともいくつかある。
俺が知ってる限りではJTreeの使い方など。

+αくらいじゃないかな?
とりあえずかなり読みやすい。
608デフォルトの名無しさん:2005/12/20(火) 02:13:04
JTableだったら大村忠史の「Java GUIプログラミング さらにパワーアップしたSwing」
で決まりですね。各セルにいろんな種類のコンポーネントを貼付ける方法も書かれています。
自分はこの本でいろいろ実験しましたが、普通に使っている限り、JTableは結構軽いですね。
しかし各セルにコンポーネントを貼付けると、ものすごく重くなります。まあマシンの処理
速度にもよるでしょうからご自分で確かめるしかないと思いますが。
609デフォルトの名無しさん:2005/12/20(火) 02:46:59
セルにコンポーネント貼り付けてもNT4なら1万行くらい合っても普通にサクサク動きそうだが
むしろ1万件のデータを格納するモデルを作るほうで時間がかかるとか
610デフォルトの名無しさん:2005/12/20(火) 11:20:00
JTableってパフォーマンスの話題になると、
「重い」「重くない」の両方出るなあ。

組んだやつによるのか、それとも実行環境によるのか……
611デフォルトの名無しさん:2005/12/20(火) 12:14:27
両方
612デフォルトの名無しさん:2005/12/20(火) 13:18:58
>>610
JTableの内容次第。
複雑なことやろうと思えばいくらでも複雑に出来るから、
重い時もあれば軽い時もある。
613デフォルトの名無しさん:2005/12/20(火) 14:03:53
JTableの重い軽いを、口にする時のルール

「重い!」というヤツは、「この程度で、こんなに重くなる」というソースをさらせ
「いや軽い!」というヤツは、「これだけのことをしても、こんなに軽い」というソースをさらせ
614デフォルトの名無しさん:2005/12/20(火) 14:05:27
軽いという根拠のほうはきついんじゃないだろうか
615デフォルトの名無しさん:2005/12/20(火) 15:00:58
>>614
じゃあ、軽くないってこった
616デフォルトの名無しさん:2005/12/20(火) 15:54:02
普通に書いてどこがおもくなるかわからん
なかでsleepいれてるとかか?
617デフォルトの名無しさん:2005/12/20(火) 16:29:40
Imageとか使うとちょっと重くなったことがあったような
618デフォルトの名無しさん:2005/12/20(火) 17:14:55
昔セル連打ら書いて、中でnewしまくりのString結合しまくりしだったら重かった
先輩に見せたら殴られた
619デフォルトの名無しさん:2005/12/20(火) 17:58:45
>>608 の重いコードが気になるなぁ
620デフォルトの名無しさん:2005/12/20(火) 23:09:32
>>618
殴るわけないじゃん
621デフォルトの名無しさん:2005/12/21(水) 00:56:56
大村さんOS/2デベロッパーの最後の砦だったなぁ。
622デフォルトの名無しさん:2005/12/21(水) 00:57:54
環境にも寄るかもよ。

P4 3GHz超でJava動かしてる香具師も居れば、Celeron 500MHzで動かしてる香具師も居るだろう。
メモリだって4GBと64MBだと全然違うだろうし。
623デフォルトの名無しさん:2005/12/21(水) 00:58:49
JTableとJTreeを極めたらSwingも楽しくなるんだろうな
れんだらーが全ての決め手ってことだね
624デフォルトの名無しさん:2005/12/21(水) 01:12:54
厄介なのはエディタのほうだけどな
625デフォルトの名無しさん:2005/12/21(水) 01:19:47
で、極めた結果重すぎて誰も使えない物が出来上がると。
626デフォルトの名無しさん:2005/12/21(水) 01:20:07
だから重いのはお前のコードが悪いからだろ
627デフォルトの名無しさん:2005/12/21(水) 01:26:15
重くなる理由は何?GDI?newしまくり?
628デフォルトの名無しさん:2005/12/21(水) 10:27:14
JButtonのテキストなんかに日本語使いたいんですけど、どうすればいいですか?
jdk: 1.4.2
629デフォルトの名無しさん:2005/12/21(水) 10:28:40
?
普通に指定すれば?
630デフォルトの名無しさん:2005/12/21(水) 10:30:38
new JButton("にほんご");
631628:2005/12/21(水) 10:38:03
普通に指定しても□□□となってしまいます。
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
が日本語フォントを返さないのと関係あるんでしょうか?
632デフォルトの名無しさん:2005/12/21(水) 12:28:00
>>631
OSぐらい買手
633デフォルトの名無しさん:2005/12/21(水) 12:45:03
Linuxでfont.propertiesの設定をしていないに一票
634デフォルトの名無しさん:2005/12/21(水) 21:41:48
>>631
fallbackディレクトリにフォントのシンボリックリンクをつくりまくれ。
635デフォルトの名無しさん:2005/12/21(水) 22:43:25
servletから動的に生成した文字列を引数に、JTableを起動させることは可能なのでしょうか
636デフォルトの名無しさん:2005/12/21(水) 22:51:38
可能
637デフォルトの名無しさん:2005/12/21(水) 22:53:37
質問の意味がわからん。
もっと詳しく書いてくれ。
638デフォルトの名無しさん:2005/12/21(水) 23:06:21
>>637
サーバ側のservletの段階で開くデータベースを決定し、
そのデータベース名を引数にしてjwsを使いクライアントにJTableを使って内容を表示させようと思うのですが、
JTableの中からデータベースを読み込むことができるのはわかったのですが、
データベース名をJTableに渡すやり方がみつかりませんでした
639デフォルトの名無しさん:2005/12/21(水) 23:15:14
jws起動できてるならそれでパラメータ渡せば?
つーか普通はjws使えるならクライアント起動した後に選択とか
いろいろとやるほうがらくだけど
640デフォルトの名無しさん:2005/12/21(水) 23:39:24
>>638
servletからjwsへパラメータでデータベース名を渡す。
jws内(というかJavaApplication内)でデータベース名を受け取るTableModelを作成。
そのTableModelを使用してTable表示。

で、いいんじゃないか?
ただ、639氏の意見がもっともだと思うけどね。
641デフォルトの名無しさん:2005/12/22(木) 01:07:54
>>639-640
確かにクライアント起動後にデータベースを選択できないと不便でしょうがないですね。
データベースを選択するごとにいちいちwebページからやりなおすというのは。
レスありがとうございました
TableModel、Tableをもっと勉強してきます
642デフォルトの名無しさん:2005/12/22(木) 04:21:26
おはようございます。
SwingでSWTのGroupに相当するものはありますか?
643デフォルトの名無しさん:2005/12/22(木) 06:51:56
>>642
JPanelにTitledBorderを指定ってことかな?
644デフォルトの名無しさん:2005/12/24(土) 01:17:12
賢者の皆さん、毎度お世話になってます。長いので2回に分けます。JEditorPaneでhtmlを
表示するとき、<font size=5>などとサイズをタグで指定しない場合、基本フォントサイズの
font size=3で表示されますが、これがちょっと小さすぎるので、基本フォントサイズを
size=5くらいに設定したいのです。そこで、以下のコードを実行しましたが、abcdだけ
依然としてsize=3で表示されてしまいます。efghはもちろんsize=5で表示されてくれます。
こんな簡単なことはすぐに実現できると思っていたのに、世界中のサイトを調べても
解決方法が見つかりませんでした。というか、ほとんど話題にすらなっていませんですた。
StyleSheet#addRule("body{basefont-size:large}")みたいな感じで、設定できるのでは
ないかとも考えましたが、そもそもbasefont-sizeなどという属性はないですよね。また、
editorPane.setText("<html>abcd<font size=5>efgh</font>");の部分を
editorPane.setText("<html><basefont size=5>abcd<font size=5>efgh</font></basefont>");
としてみても結果は同じでした。結局現在のところ基本フォントサイズを変更する方法は存在
しないのでしょうか。StyleSheetのjavadocにも実装が不完全と明言されていますが、これが
まさに不完全な部分なのでしょうか。
645644:2005/12/24(土) 01:18:25
続き

import java.awt.*;
import javax.swing.*;
import javax.swing.text.html.*;

public class StyleSheetTest extends JFrame{
JEditorPane editorPane;

public static void main(String[] args){
StyleSheetTest f=new StyleSheetTest();
f.setBounds(0,0,400,400);
f.setVisible(true);
}
public StyleSheetTest(){
editorPane=new JEditorPane();
editorPane.setEditable(false);
editorPane.setContentType("text/html");
StyleSheet ss=new StyleSheet();
ss.setBaseFontSize(5);//ベースフォントサイズを設定しているつもり。
editorPane.setDocument(new HTMLDocument(ss));
editorPane.setText("<html>abcd<font size=5>efgh</font>");
getContentPane().add(new JScrollPane(editorPane),BorderLayout.CENTER);
}
}
646644:2005/12/24(土) 18:07:38
私の環境はJ2SE 1.4.2ですが、どなたかJava SE 5.0で試していただけないでしょうか。
自分のマシンにはJava SE 5.0はインストールできませんので。
よろしくお願いします。m(_ _)m
647デフォルトの名無しさん:2005/12/24(土) 18:38:13
内蔵レンダリングエンジンってHTML3.2時代のものでしょ?
スタイルシートにしても保障できるようなものじゃないし

最も内蔵ブラウザはイベントの問題で5.0以外使い物にならないんだけどね
648デフォルトの名無しさん:2005/12/24(土) 18:54:08
>>646
> 自分のマシンにはJava SE 5.0はインストールできませんので。

なんで?
それと、Java2 SE 5.0ね。
649デフォルトの名無しさん:2005/12/24(土) 20:38:13
バックアップ取って試せよって話だなあ。
開発環境ぐらい整えろよ。
650デフォルトの名無しさん:2005/12/24(土) 21:13:51
SDKなんて普通に複数入れても問題でないし
651644:2005/12/24(土) 23:34:06
Java SE 5.0です。

basefontのことについては、他のことをやりながら時が解決してくれるまで
待つことにしました。ありがとうございますた。
652デフォルトの名無しさん:2005/12/24(土) 23:40:55
Java SE 5.0ってなにさ
653デフォルトの名無しさん:2005/12/25(日) 00:31:14
これは解決せんだろうな
CSSサポートなんて追加でやるとはおもえん
654デフォルトの名無しさん:2005/12/25(日) 01:29:25
間違い指摘してやっても認めないやつっているんだな
655デフォルトの名無しさん:2005/12/25(日) 11:26:35
Java SE になるのは6.0からだけど
Java SE 5 と呼んでもいいんじゃね? 5と6で呼び分けるのめんどくさいし
656デフォルトの名無しさん:2005/12/25(日) 12:49:24
657デフォルトの名無しさん:2005/12/25(日) 12:57:57
その後藤タンの記事間違ってるから
658デフォルトの名無しさん:2005/12/25(日) 15:09:35
>>655
Java SEになるのは、6.0ではなくて6
6が出るころならかまわんと思うが、いまはまだJava2SE5.0だろ。

そのへんは個人差あるかもしれんが、少なくとも指摘をうけてからいいはるもんじゃない。
659デフォルトの名無しさん:2005/12/25(日) 15:24:43
>>657
その間違いひどいね。
JavaOneでなに聞いてたんだか。

Java SE 1.4とか書いてるし、わかってないみたい。
660デフォルトの名無しさん:2005/12/25(日) 15:36:30
以前一部でうわさになった記事もわりとすごいよ
http://pcweb.mycom.co.jp/articles/2005/10/25/beaworld1/

要約すると
・SunのVMは遅い、それにくらべてIBMやBEAの早いこと。

理由は
・並列GCがある
・世代別GCがある
・JITがある

比較してるのは1.0あたりかな・・・
1.3時代ならBEAやIBMは確かにそれなりに利点もあったけど

結局1.3.1とか1.4とか5.0とかどんどん高速化してるのと
ユーザー数が多いために比較的安定化しやすい、
チューニングのノウハウがたまりやすいってことで以前ほど利点はないんだよね
661デフォルトの名無しさん:2005/12/25(日) 15:47:01
まあそれは発表まんまってことで。
662デフォルトの名無しさん:2005/12/25(日) 15:48:29
BEAが比べてるのは1.1時代ってカワイソス
663デフォルトの名無しさん:2005/12/25(日) 16:15:43
>>652-659
そんな大方の人間にとってどうでもいいことを
スレ違いでつづけるクリスマスってどうよ。
664デフォルトの名無しさん:2005/12/25(日) 17:20:21
間違ってると恥ずかしいぞ。
665デフォルトの名無しさん:2005/12/25(日) 18:20:12
私がまちがってました。Java SE 5.0ではなくJava2 SE 5.0でした。
大変な過ちですた。
666デフォルトの名無しさん:2005/12/25(日) 18:32:40
悪いのはごとーたん
667デフォルトの名無しさん:2005/12/25(日) 18:37:55
ライトニングJavaのほうは間違ってないと思うのでがんがれ

コンカレント周りや新コレクションはネット上でも日本語情報が少ないので
あげると注目記事になるかもよ
668デフォルトの名無しさん:2005/12/25(日) 18:52:59
>>644
フォントの件だが、JEditorPane#HONOR_DISPLAY_PROPERTIES見た?
669デフォルトの名無しさん:2005/12/26(月) 09:18:30
HONOR_DISPLAY_PROPERTIESとはJava 2 SE 5,0から導入されたフィールドですね。
componentA.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
のように使うらしいですが、これで何が起こるのかはわかりません。
いずれ、5.0が利用できるようになったら、試したいと思います。
ありがとうございました。
670669:2005/12/26(月) 09:23:17
訂正

editorPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);

でした。
671デフォルトの名無しさん:2005/12/26(月) 20:17:30
mycomは信じてないなあ。ググッてもキャッシュ拒否してるから読まないし。
672デフォルトの名無しさん:2005/12/30(金) 15:58:46
基本的過ぎる質問で恐縮なのですが。

表示するデータがコレクションを含んでて、その要素がさらにコレクションを含んで、
要素には最上位と同じクラスが再帰的に入ってます。
そのようなデータを複数のJTableやJTreeで表示/操作する場合、どのようにするのが
一般的でしょうか。

(1) 操作でデータに変更し、Observerや独自のリスナを使ってデータの変化を表示してるModelに反映させる。
(2) そもそもデータ構造をTableModelなどで表現しておく。複数表示はリスナ使って同期取る。
(3) その他
673デフォルトの名無しさん:2005/12/31(土) 00:04:15
>>672
1.やりたいことをよく考える。
2.やりたいことにあっているUIを考える。

実装を考えるのはそれからではないか。
674デフォルトの名無しさん:2005/12/31(土) 00:23:29
Swingでいろいろ作成し始めたのですが、
何かこうバイブル的な本とかってないですか?
それともクラスライブラリのソースを読む方がいいのでしょうか?
675デフォルトの名無しさん:2005/12/31(土) 10:56:30
ちょっと前のレスすら読めない>>674に本が読めるか心配だよ
676デフォルトの名無しさん:2005/12/31(土) 15:36:05
ちょっとと言うほど前でもない気がするが。

まあ>674はページ内検索を覚えてから半年ROMるんだな
677デフォルトの名無しさん:2006/01/01(日) 02:40:02
Swingのクラスライブラリのソースはいきなり読むのは難しいし、どこがどう役に立つのか
分からないと思います。必ず必要になるときが来るはずなのでそのときに読めばいいんじゃ
ないでしょうか。日本語で書かれたリファレンス的なものはごく限られたいるので、
このスレで大体出尽くしているんじゃないでしょうか。

最近うっかり「Definitive Guide to Java Swing」という本を買ってしまいました。
おそらく日本語で書かれているどんなSwing解説書よりも詳しいと思いますが、
英語なので、まだ全然読んでいませんw
でもこの本、魅力的なスクリーンショットがいっぱい載っていて、絵本感覚で
楽しんでいます。
678デフォルトの名無しさん:2006/01/04(水) 23:11:20
皆さんjava暦何年ですか?
あと年齢も
679デフォルトの名無しさん:2006/01/04(水) 23:29:13
Java暦13年、年齢16歳です。
3歳のときからやってます。
680デフォルトの名無しさん:2006/01/04(水) 23:33:28
>>679
スッゲ━━━━━━(゚∀゚)━━━━━━ !!!!!
681デフォルトの名無しさん:2006/01/04(水) 23:41:44
Java暦3年、年齢80歳です。
喜寿のときからやってます。
682デフォルトの名無しさん:2006/01/04(水) 23:42:43
普通だろ。
俺のクラスの香具師なんか先天性Javaプログラマーだぞ。
683デフォルトの名無しさん:2006/01/05(木) 00:00:06
やっぱ小学校入る前に始めとかないと、世界は狙えんからな。
684デフォルトの名無しさん:2006/01/05(木) 00:25:52
で、二十歳過ぎたらコーチに転職だな
685デフォルトの名無しさん:2006/01/05(木) 06:11:30
>>679

Javaが発表されたのは11年前だよ〜だ。や〜いや〜い。
686デフォルトの名無しさん:2006/01/05(木) 09:43:40
3歳のころは予知能力がありました。
687デフォルトの名無しさん:2006/01/05(木) 10:58:58
俺、前世はゴスリンだったよ。
688デフォルトの名無しさん:2006/01/05(木) 11:38:47
奇遇だな。
おれもゴスリンの生まれ変わり。
お前とは気が合いそうだ。
689デフォルトの名無しさん:2006/01/05(木) 17:55:05
ゴスロリン
690デフォルトの名無しさん:2006/01/05(木) 21:13:07
ゴスリン今も生きてるんだけど。
あ、マルチスレッドか。さすがゴスリン
691デフォルトの名無しさん:2006/01/05(木) 22:00:08
たまにオレ、動作が重くなるんだよね。
ゴスリンにCPU食われてるって実感する。
692デフォルトの名無しさん:2006/01/05(木) 22:55:47
          ,、 -‐ ''"" " " '' ‐- 、、
       ,、‐' ´          、、 ` ‐ 、
     ,、 '       i  !      ヽ、  \
    /    ,  .,. /',   ',   ヽ,.  ヽ.    ヽ,
.  ,.'.,.' /  ,/  ,ri / ',  lヽ'ヽ,   ',   .ヽ.   ヽ
.  ,' / ,'  /.i  / .!./  ヽ,.! ヽ \ 'ヽ,、 ゙、',    ヽ
.  !,'! !  ,' ', ,t',,、!i- ‐ ''''ヽ、,'_''' ' `‐ 、-.ヽ',‐     ',
.  ' ',iヽ, r ''"',レr<t'     ',,r''うlli;`,`   ,'.,' ',.     ',
.    i. l ヽ''´,r''',_,)lli      r:';iiiii}.゙i   i i  ',    , ',
   i. .l ' ヽ,,;!:ir''').      ゞ,,,,,rう.  l l   i    .i. i
   !. ! ', ゝ,'"ニ´-‐,. '' "" " " " '' ' ‐t-  i  !  .l .!
   ', ゝr''、´                ゝ- '´! .,'  li,'
.   ',',  ',‐ヽ,     , -っ       ./,.,   .l /  ,!!
.    ',ヽ. ',   `‐、,/ ノ      ,、 '_,,、ノ!r‐'"l/从‐'
     '、\`ヽ‐-/ ,,/‐'''、--‐ ' "l ̄      '
         r'   -.‐'‐,.     '、,
         ,'     ``ヽ,. ‐ ''./`''‐ 、
.      ,、‐''l.      r_,'  ,'       ',
.     /   ',      ノ.    i.      '
    r'     ヽ、  .ィ'、.     l  ,    ',
    ',       ``''''´./    ',   ',    '
693デフォルトの名無しさん:2006/01/05(木) 23:48:49
         「\     __    __
         │ト、l、 /´, '`⌒'´ `ヽ: : .
          ヾヽ!lV/ / ,/ /  ,' ハ、: .
       ,ィニ≧ゝレ' / /  ,./   / , ハ : : .
      く<-‐7´ _」] l l/_,∠/   / / / い : : .
        ̄ノ/: :f r'l l /レ'/、_/‐ト'、/l| li l : : : : .
      . : {ハ : :|{(l|y==ミ   _ノ、/ソリ ll | : : : : :
      : : : :ヽヽ: :|、lハl、゙      ⌒ヾlノリ ll l : : : : : :
      : : : : : : : : V\ヽ、 `ー  ゛ノルんイリノ : : : : : :     Javaやってると頭悪くなるの?
      : : : : : : : : : ,.--、_ハ`−r=ニ--、′ノ. : : : : : : :
      : : : : : : : : /  /-ョロ'ヲ´   i l : : : : : : : : : :
      : : : : : : : 〈  ,ハフ'兀「     ! } : : : : : : : : :
      : : : : : : : : ヽ,   ト{‐lハ. ヽ ' ノ : : : : : : : :
        : : : : : : : 〈 ,  !{ソ   ヽl/|、: : : : : : : :   ,r-、
       : : : : : : `ヽ  V     j _ノ ,スヘ_ノ7--−イ∧〈
          : : : : : : : { /     ,ハ、  _//く 〈 ___ r'九〈ハ.}
          : : : : : : :レ'    ' ,ハヘニイヽ_厂 、ノソト}〈V´
            : :_ノ−- 、'  {∧ トヘ_「    {Y: :仔 之_
            〈l ̄>-、_ 丶レ^ヽ厂`    上l_:/Z/ソ‐′
        r个y'⌒ll_,/‐、;_,、ト、__ト、  ` ー/「>,、 └トf‐′
      {_Y^lヽ、,ど , ,  〈__j,ハ、) 、_イソ´`ヽヘ、ノ、lフ
      ヽ>ゝハ 〈ノ{ l! ハ_j人lJ  /ソ: : : . ノフく_.イ
       〉 〈、ソ´ UU     、ノ入 : :__rクー<__〉
      ∠__, 〈_⊥、′  i  _,rくソヽ√ヽフ
         j__ルく_/T'┬_ヒス⊥イ \ノ
            ヽ√ \丿 ヽ/
694デフォルトの名無しさん:2006/01/06(金) 02:10:59
Javaをやってると頭がゴスリンになります。
695java:2006/01/06(金) 02:27:27
すみません、聞きたいことがあります。
MouseEventでjavaアプレットを起動しているのですが
そのアプレット内にあるActionEventが実行されません。
何が原因なのでしょうか?
ActionEventのみで作ったプログラムは動きます。
よろしくおねがいします。
696デフォルトの名無しさん:2006/01/06(金) 08:37:03
ActionEventのみで作ったプログラム?

原因は、なにか誤解かプログラムミス。
697デフォルトの名無しさん:2006/01/06(金) 12:20:31
マウスイベントでアプレットを起動ってなんだろ
698デフォルトの名無しさん:2006/01/06(金) 15:45:06
文字通りに解釈するなら、一つのアプレットが起動していて、そのアプレットでMouseEvent
が発生したら、他のアプレットを起動するという意味だね。なかなか複雑な技を使う達人と見た。
699デフォルトの名無しさん:2006/01/06(金) 16:02:52
>>695
Java歴約4年の俺だけど、意味がさっぱりわかりません。
推測できることはいっぱい有るけど。たとえばリスナーをaddしていないとか。
意味が分かれば、多分すごく簡単に解決できるんだろうけど、さすがにこの質問内容じゃあ
答えたくても答えられない。質問するにも技量が必要なんだよな。
「起動」とか「実行」とか言う言葉をプログラマがむやみに使っていると思っているかも
しれないけど、だとしたら大変な誤解ですよ。
700デフォルトの名無しさん:2006/01/06(金) 16:24:14
アッパレット氏を思い出したよ...
701デフォルトの名無しさん:2006/01/06(金) 21:08:30
695のアプレット = extends JApplet
702デフォルトの名無しさん:2006/01/07(土) 16:58:12
695はたぶん匿名クラスでリスナーをaddしてるとみた
APPLETタグでclassではなくjarを指定すればいいかも
匿名クラスがロードされていないのでは?
703デフォルトの名無しさん:2006/01/07(土) 17:26:20
JTreeで、最初はルートノードのみのツリーモデルをコンストラクタに渡してから
その後そのツリーモデルにデータを追加する処理をしています。

それで、どうもJTreeのサイズがルートノードだけしか表示できないサイズに
なってしまうようなのですが、ノード追加後に、すべてのノードを表示できるように
JTreeのサイズを変更する方法がないでしょうか?
704デフォルトの名無しさん:2006/01/07(土) 17:59:03
>>703
コード出してごらん
たぶんノードの変更通知してない
ただいじった場合文字列が長くなるだけでもだめだよ
705703:2006/01/08(日) 00:58:36
DefaultTreeModelを継承したクラスで、コンストラクタとかはこんな感じです。
で、後ほどaddStoreというメソッドで、insertNodeIntoを使い
DefaultMutableTreeNodeの挿入をしています。

private Vector scanned;
public FolderTreeModel(){
super(new DefaultMutableTreeNode("root"));
scanned = new Vector();
scanned.add(getRoot());
}
public FolderTreeModel(Store store) throws MessagingException{
this();
addStore(store);
}
public void addStore(Store store) throws MessagingException{
if(store == null){
return;
}
Folder folder = store.getDefaultFolder();
DefaultMutableTreeNode defaultFolderNode = new DefaultMutableTreeNode(store.getDefaultFolder());
insertNodeInto(defaultFolderNode, (MutableTreeNode)getRoot(), getChildCount(defaultFolderNode));
scanNode(defaultFolderNode);
}
706703:2006/01/08(日) 01:00:43
scanNodeメソッドは、Folderオブジェクトから子を探し
再帰的にモデルに追加する処理を行っています。
要はJavaMailのFolderオブジェクトのツリーを作っています。
707デフォルトの名無しさん:2006/01/08(日) 21:52:08
たぶんツリーの変更のイベント送ってないね
708デフォルトの名無しさん:2006/01/08(日) 22:02:35
insertNodeInto使えば変更通知イベントは自動的にとんでるはずだ
最小限のコードでためしてごらん
たぶん、継承先でにぎりつぶしてるとか
709601:2006/01/12(木) 00:22:48
質問お願いします
サーバからjwsを使ってクライアントにJTableを表示させ、そこからサーバのmysqlのデータを照会させるプログラムを作っているのですが、
サーバ単体でのテストでは、データ照会まで順調に行くのですが、クライアントから照会させようとするとエラーが起きてしまいます
java.lang.NullPointerException

at PersistenceManager.executeSQL(JDBCSwingApplet.java:59)

at JDBCSwingQuery.<init>(JDBCSwingQuery.java:27)

at JDBCSwingQuery.main(JDBCSwingQuery.java:18)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.sun.javaws.Launcher.executeApplication(Unknown Source)

at com.sun.javaws.Launcher.executeMainClass(Unknown Source)

at com.sun.javaws.Launcher.continueLaunch(Unknown Source)

at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)

at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)

at com.sun.javaws.Launcher.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)
710601:2006/01/12(木) 00:24:26
すいません、エラーをそのままコピーしたら変に改行が入ってしまいました・・・

あと、クライアント用にプログラムを少し変更しているのですが、箇所はconnect.jar(JTableのプログラム)の
(サーバテスト用)
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sample", "jsp", "jsp");
(クライアント用)
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://サーバのローカルアドレス:3306/sample", "jsp", "jsp");
のところです。
長々と書き込んでしまって申し訳ありませんが、どうにも資料が少なくてほとほと困り果ててます
よろしくお願いします
711デフォルトの名無しさん:2006/01/12(木) 00:28:39
Swingと何の関係もないようなきがするんだが
まずMySQL単体ではサーバーまでつながるのね?
それと、jws配備した鯖とMYSQLの鯖は同じだよね?
712デフォルトの名無しさん:2006/01/12(木) 01:20:42
>>709はまずスタックトレースの読み方から勉強しよう、な!

しかし久しぶりのレスだと思ったらSwingと関係ない質問だもんな
なにか、スレが賑わうホットな事件は起きないものか
713デフォルトの名無しさん:2006/01/12(木) 12:37:26
>>709
質問をお願いされてもなあ…
普通、回答が欲しくてレス書くと思うんだが、↓君はどう思う?
714デフォルトの名無しさん:2006/01/12(木) 12:55:26
些細な前文の間違いならさほどきにせん

さて、Swingの話題だが
JTableでのセルエディット中のフォーカスの問題はまだなおってないよな?

フォーカスがセルエディタから外れた場合セルエディットを終了させたくても
セルエディットを終了させるとフォーカスはテーブル以外にうつるので
フォーカスの移動先を見てstop処理ってのができない

これNetBeansのテーブルモデルの初期設定画面とかでも簡単に問題発覚できるんだよね

結局めんどうなところを作りこんでいくことになり手軽なカプセル化ができん
715デフォルトの名無しさん:2006/01/12(木) 14:31:45
>>714
お馬鹿な私にももうちょっと分かりやすく…
716デフォルトの名無しさん:2006/01/12(木) 14:46:56
要するに、JTableでの入力中にEnterで確定させずに他のコンポーネントにフォーカス移してしまったら確定処理ができないってことでしょ。
717デフォルトの名無しさん:2006/01/12(木) 14:51:34
ああ、俺もそれはまったわ。
718デフォルトの名無しさん:2006/01/12(木) 14:52:15
そういうこと

たとえばNetBeansでテーブルモデルのカラム名の編集中に行削除ボタン押してごらん
719デフォルトの名無しさん:2006/01/12(木) 14:52:46
Swingの話題といえば、ここではSwingXの話題は出てないんじゃないか。
720デフォルトの名無しさん:2006/01/12(木) 14:54:10
業務系だとJTable使いまくるから各プロジェクトごとに独自ライブラリ作るか
生臭いコードを書くかというのでみんな回避してるだろうね。
721715:2006/01/12(木) 14:54:33
>>716
JTableを継承させて出来ない?
722デフォルトの名無しさん:2006/01/12(木) 15:01:43
ポイントは

・セルエディット中はフォーカスはテーブルではなく、セルエディタにいっている

・次の行をクリックするとフォーカスは一旦JTableの次のコンポーネントにいって
 セルエディタがその次にフォーカスを得る

・ひとつのセルの中に複数のコンポーネントがある場合生臭いコードになる


3つめは業務系ならよくある話でJTable継承で済む話でもないな
継承させたところで外部からセルエディタやらいじれることはいじれるし

回避できないことではないが面倒な処理を書く羽目になるという例
723デフォルトの名無しさん:2006/01/12(木) 15:05:02
それってそもそもバグなの?
724デフォルトの名無しさん:2006/01/12(木) 15:15:11
バグというか触れば自然と問題になる点で
開発者はSwing触る場合必ず覚えておかなければならないもの

そしてNetBeansではその対処してないからバグ確定
もう何年も前からだけどね
725デフォルトの名無しさん:2006/01/12(木) 15:26:34
バグ確定を主張したいならバグパレ検索して出直せ。
726デフォルトの名無しさん:2006/01/12(木) 15:30:44
>>725
netbeansの中の人?
触ってみればバグなのすぐ分かるだろうに。
727デフォルトの名無しさん:2006/01/12(木) 15:44:12
ライブラリが自分の期待した通りに動かなければ全てバグのせいかと。
安易に 「OS のバグです」 とか抜かす アフォ 派遣か?

Synopsis: JTable cell value lost when focus is changed from the JTable
Status: Closed, not a bug

> By default, JTable does not commit changes when it loses focus.
> To change this behavior, use:
> table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6242668
728デフォルトの名無しさん:2006/01/12(木) 15:55:36
おめでとう。
君が徹夜して書いた自作ライブラリや生臭いコードは全て無駄でした。

こんな分かりやすい挙動が何年も放置されてる時点で修正対象のバグ
ではなさそうと思わなかった君がプロジェクトのバグ確定。
729デフォルトの名無しさん:2006/01/12(木) 16:14:18
口は悪いが久々の俺的ヒットネタ
だが、そんなの常識だと騒ぎ始める人たちも光臨予定
730デフォルトの名無しさん:2006/01/12(木) 16:29:55
バグではなくて互換性維持のために従来の方法から意図的に変えてこなかったというところか?
割と重要なポイントだなこれ
731デフォルトの名無しさん:2006/01/12(木) 16:37:35
・NetBeansではこの対処してないからバグ
・Swing自体はバグではない

ってところだろうか。NetBeansの中の人みてるかな。

ってSwingのこういった隠しのようなパラメータはどこで公開してるの?

Java2Dまわりのオプション系は日本語ドキュメントにちゃんとはいってるけど、
こういった非常に有用かつ必須な情報が検索かけてもドキュメントにひっかからないな。
732デフォルトの名無しさん:2006/01/12(木) 16:45:18
早速いじってみた。
terminateEditOnFocusLostってフォーカスはずれたらエディット終了ってコードと同じ動きする。
つまり使い物にならねぇ。
この方法だと次の行をクリックするとセルエディットが開始しないんだよね。
これは自作しても同じ原理。

つまり未解決のままか・・・。
楽できるとおもったんだけどなぁ。
Swingもまだまだだね。
733デフォルトの名無しさん:2006/01/12(木) 17:09:13
説明書だけでわかんなかったら、結局ソース読んだ方がはやいと思うよ
734デフォルトの名無しさん:2006/01/12(木) 17:14:22
どのみちこの問題は未解決か
ふりだしにもどる
735デフォルトの名無しさん:2006/01/12(木) 17:21:33
>>732
何がしたいのか知らんがそりゃまた別の話だろ。
少なくとも編集中に JTable 以外のコンポーネントにフォーカスが移った時の、
入力値の TableModel への反映は行われるようになる。

と思ったが…

>>714=>>722>>716 で問題にしてる点が微妙に違うな。
>>716 の問題は terminateEditOnFocusLost で回避できるが (多分皆それかと
思ってたが)、>>714 は 「セルの中に複数のコンポーネントを入れた時、それらの
コンポーネントのエディット処理が?フォーカスを失った時??」 何をしたいのか良く分からん。
HTML でよくやるように JTable をレイアウト用に使ってるってこと?
736デフォルトの名無しさん:2006/01/12(木) 17:28:58
まとめ

1・まずどっかのセルをクリックしてセルエディットしています

2・何も考えなくても他のセルをクリックしたとき現在のセルエディットは終了して
 新しくクリックした先のセルエディットが始まる
 (実はこの際にフォーカス移動がすさまじいことになってる)

3・セル間の移動ではなくて他のコンポーネントへのフォーカス移動だと
 セルエディットはストップしません

4・仕方がないのでフォーカスが離れたときにstop発行を自作、もしくは>>727のコードを使うと
 他のコンポーネントにいったときセルエディットは終了するが、
 セル間移動(正確には新しいセルでのエディット)が出来なくなる
 おそらく原因は2でのフォーカスの不思議な動き

結局、解決方法は生臭いコードしかなし
カプセル化が多少厄介
737デフォルトの名無しさん:2006/01/12(木) 17:38:28
>>736
4.の後半の意味が良くわかんないんだけど、他のコンポーネントにフォーカス
行ってるんだから新しいセル (新しいって何か知らんが) の編集ができなくて
当然じゃないか?

動きが分かるような最小コード出せない?
738デフォルトの名無しさん:2006/01/12(木) 17:58:32
>>737
セル間での移動は通常2の動作が正しいとする

それがセルエディットが始まらない

他のセルをクリックしてもそれがstopと判断して新しい先でstopしてる感じ
イベントの発生順の問題かなぁ

table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
をいれたテーブルと1クリックでエディットが始まるようなセルエディタを作ればすぐに分かる
739デフォルトの名無しさん:2006/01/12(木) 18:08:50
>>738
JTable と JButton だけのアプリケーション作ってみたが:

セル1を編集中にセル2をクリックする → セル2で編集ができる
セル1を編集中にボタンをクリックし、セル2をクリックする → セル2で編集ができる

で問題なさそうだが (terminateEditOnFocusLost にかかわらず)。
740デフォルトの名無しさん:2006/01/12(木) 18:19:59
問題が出るのは1つのセルの中に複数のコンポーネントを入れたときね
741デフォルトの名無しさん:2006/01/12(木) 19:07:35
複数のコンポーネント入れても大丈夫になりました。
フォーカストラバーサルサイクルをいじるといいようです。

これは1.4からの新機能なので1.3以前のSwingではうごきません。むぅ。

ということで解決方法は>>727やフォーカスロストのタイミングでいいっぽいです。
たぶん。
もうちっと詳しく調べてみます。
742SWT:2006/01/12(木) 19:56:52
すみません質問したいのですが。
javaアプレットでJFrameからJFrameを実行することが出来るのですが、
JLabelで画像を載せると実行できなくなります。
JFrameから新たなJFrameをたちあげそこに画像を載せるには
どうすればよろしいでしょうか?
743デフォルトの名無しさん:2006/01/12(木) 20:02:47
>733
ですね。

継承使う以上、派生元の実装に深く左右されるのは当然だから
不自然な挙動に気づいたらさっさとソース読んだ方が早い。
もっともその振舞が環境・バージョンに依存していないか、
ドキュメントもきちんと読まないといけないけど。
744デフォルトの名無しさん:2006/01/12(木) 20:09:24
JFrameからJFrameを実行というのはどういうこと?
745デフォルトの名無しさん:2006/01/12(木) 20:23:27
>>742
表示する画像ファイルはどこに置いてあるの?
746デフォルトの名無しさん:2006/01/12(木) 20:27:51
>>741
報告出たら先の罵詈雑言は撤回しよう。
747SWT:2006/01/12(木) 20:57:33
説明不足で申し訳ないです。
ActionEventでJFrameが立ち上がるようにしているのですが、
JLabel img = new JLabel(new ImageIcon("ファイル名"));
の一文を加えるだけで立ち上がらなくなってしまいます。
なぜでしょうか?
画像は同じフォルダに置いてます。
748デフォルトの名無しさん:2006/01/12(木) 21:00:50
どう考えてもその行で例外出てんだろ。
スタックトレースくらいよく見ろ。
749デフォルトの名無しさん:2006/01/13(金) 02:00:16
ワロタ
750デフォルトの名無しさん:2006/01/13(金) 16:50:17
jar ファイルダブルクリックすると起動する Swing アプリケーションがあるんだけど、
SHIFT キー押しながらダブルクリックされたらデバッグモードで起動、みたいなことをしたい
んだが、JFrame も何も出ていない main() の一番最初で、キーボードが押され
てるかなんて判定できないよな?
751デフォルトの名無しさん:2006/01/13(金) 21:33:47
JTableのセルって統合できる?
752デフォルトの名無しさん:2006/01/13(金) 21:43:30
というか、セルの中になんでもいれれる

複雑具合によっては1カラムのテーブルにしておいて
中身はでっかいJPanelという手がある

Accessのサブフォーム感覚で作れる
753デフォルトの名無しさん:2006/01/13(金) 21:52:05
>>747
AppletクラスのgetImageメソッド使ってこうすればいいかも。

new JLabel(new ImageIcon(getImage(getCodeBase(), "ファイル名")))
754デフォルトの名無しさん:2006/01/13(金) 22:08:33
>>751
HTMLテーブルでいうところの、rowspan=2 とか colspan=3 とかがやりたいわけ?
755デフォルトの名無しさん:2006/01/13(金) 22:13:00
>>752
特定条件のセルの内容だけ2カラムまたがせたいんだけど無理かな?

>>754
そうです。
756デフォルトの名無しさん:2006/01/13(金) 22:30:11
>>755
カスタムのUI クラスを作れば可能かも。
javax.swing.plaf.basic.BasicTableUI のソースコードを参考に作ってみるとか。

カスタムのUI クラスを作らなくても、JTable の
public Rectangle getCellRect(int row, int column, boolean includeSpacing) あたりを
オーバーライドすればうまくいくかもしれない。

いずれにせよ、javax.swing.plaf.basic.BasicTableUI のソースコードを
参考にしないと作れないと思われる。
757デフォルトの名無しさん:2006/01/13(金) 23:03:41
セルのマージについては『Java GUI プログラミング -さらにパワーアップしたSwing』に
詳しく書かれていますね。
758デフォルトの名無しさん:2006/01/13(金) 23:33:47
BasicTableUIを継承するのが普通なんだろうけど、
セルエディタやら細かいこといじろうとした場合1つのセルに
複数のコンポーネントを入れれるようにしておくほうが融通がきくと思われ。
759デフォルトの名無しさん:2006/01/13(金) 23:40:23
入れる
入れられる
760デフォルトの名無しさん:2006/01/14(土) 00:27:52
うほっ
761デフォルトの名無しさん:2006/01/14(土) 03:19:36

762デフォルトの名無しさん:2006/01/21(土) 16:04:29
どなたか詳しい方にお願いします。
ファイルを選択するにはJFileChooserを使用すると思いますが、
フォルダーを選択するにはどうしたらよいでしょうか?
763デフォルトの名無しさん:2006/01/21(土) 16:29:07
JFileChooserのマニュアル読んだ?
764デフォルトの名無しさん:2006/01/21(土) 16:50:59
setFileSelectionMode

public void setFileSelectionMode(int mode)JFileChooser を設定して、ユーザが、ファイルのみ、ディレクトリのみ、
またはファイルとディレクトリの両方を選択できるようにします。デフォルトは JFilesChooser.FILES_ONLY です。

パラメータ:
   mode - 表示されるダイアログの種類
   JFileChooser.FILES_ONLY
   JFileChooser.DIRECTORIES_ONLY
   JFileChooser.FILES_AND_DIRECTORI ES
765デフォルトの名無しさん:2006/01/21(土) 17:49:57
>>764
大変ありがとうございました。助かりました。
勉強不足な自分にこんなにも丁寧な解説をしていただき感激しております。

これからも頑張って自分も勉強していきたいと思います。
766デフォルトの名無しさん:2006/01/21(土) 19:19:31
JavaDocをコピペするだけでそんなに感謝されるなんて、なんてお得なんだ。
767デフォルトの名無しさん:2006/01/21(土) 21:04:07
卒論の季節だからねぇー
768デフォルトの名無しさん:2006/01/21(土) 23:11:24
プログラムに興味のないやつがプログラムを勉強できるはずないね。
769デフォルトの名無しさん:2006/01/22(日) 07:38:22
APIを読む読まないはプログラムに興味があるかどうかとは無関係
770デフォルトの名無しさん:2006/01/22(日) 08:02:59
能力があるかどうかだね。
771デフォルトの名無しさん:2006/01/22(日) 13:02:53
ゲーム買ってもマニュアル読まない派
772デフォルトの名無しさん:2006/01/22(日) 15:12:27
>>769
おまえのレベルがよくわかるよ。
APIごときを読まんやつはプログラムに興味が無いやつだ。
今の自分を超えようと思ったら、APIを読みまくらなければならん。
多くのソースコードも読みまくらなければならん。
本で紹介されている程度のしょぼいプログラムだけで満足できるなら別だが。
773デフォルトの名無しさん:2006/01/22(日) 15:28:57
>>769カワイソス
マニュアルは読まないけど、プログラムを好きでしてるやつとかたっくさんいるぞ・・・

ようはちゃんと機能で欲しいものをマニュアルでさがせてないやつらばかりなんだが
好き嫌いに関係なくその人個人の特性だと思うぞ

仕事でもある方法が分からないときにマニュアルやネットで積極的に探して
解決しようとするやつと、わかりませんと上に言うやつと大きく分かれる
774デフォルトの名無しさん:2006/01/22(日) 16:24:33
>>773
>仕事でもある方法が分からないときにマニュアルやネットで積極的に探して
>解決しようとするやつと、わかりませんと上に言うやつと大きく分かれる

探し方下手な人って多いよね。

あんまり探さないで自分の知ってる範囲で無理やり解決する人も多い。
それなりに力があるからできるんだけど、それ以上成長がない。
775デフォルトの名無しさん:2006/01/22(日) 16:32:43
>>774
補足さんきゅ
そういう人は業務でずっとプログラマやってきてる人でも多いね
主にオープン系やってきてなくてオフコンやメインフレームのチームにずっといた人に多い

言語を知っていればそれでおわり、ハード面やソフト面の環境設定やチューニングは
別チームが担当とかが普通だから仕方ないけどね

「パソコンでの開発ってどんどん新しいのが出て調べる時間ばかり
かかって大変ではないですか?」

といわれたことがあるが、まさにその通りではあると思う
元々趣味でパソコン触ってきた人なら比較的調べる癖がついているので
俺は採用するときの目安のひとつにしてる>パソコン所有や何に使ってるか

プログラマ歴が10年以上あってもパソコンもってないとか結構普通なんだよね
仕事は仕事と割り切れる人が多いというか
776デフォルトの名無しさん:2006/01/22(日) 21:27:31
>>775
新しいものを苦と思わずに楽しめる人は強いね。

調べる時間はかかるけど、そこで得たもので仕事の効率は上がっていくと。
777デフォルトの名無しさん:2006/01/22(日) 23:47:49
プログラマなんて、”楽する為の苦労は厭わない”ってタイプじゃないとつらいだろ(笑
778デフォルトの名無しさん:2006/01/22(日) 23:51:52
マ板的な話で盛り上がってるのはどういうことだ?
779デフォルトの名無しさん:2006/01/23(月) 01:03:18
淡々と教えるなり無視するなりすれば良いものを、
何故か見知らぬ他人に説教したがる人がスレッドに
いついてしまった模様。
780デフォルトの名無しさん:2006/01/23(月) 02:04:02
>淡々と教えるなり無視するなりすれば良いものを、

それは味も素っ気も無い2ちゃんねるですね。

>何故か見知らぬ他人に説教したがる人がスレッドに
>いついてしまった模様。

はっきり言って根拠無いでしょw
781デフォルトの名無しさん:2006/01/23(月) 03:56:46
雑談始める馬鹿がウザイ件について
782デフォルトの名無しさん:2006/01/23(月) 04:05:47
ここが雑談できない場所だと思ってる馬鹿がいますね。
783デフォルトの名無しさん:2006/01/23(月) 04:49:57
スレ違い
マ板逝け
784デフォルトの名無しさん:2006/01/23(月) 17:47:08
統一したUIを持った画面開発やることになったんだが
カスタムなUIでplafを用意する形ではなく、
専用のComponent用意したから、
それ使ってねって方向だった。
しかも色とかは各自がsetする。

現実逃避にsynthいじってたら納期が迫ってきた。
785デフォルトの名無しさん:2006/01/23(月) 18:01:01
特定用途ならUI定義するより
専用Component作るのは道理にかなってる
786デフォルトの名無しさん:2006/01/23(月) 20:19:32
俺様Componentが業務共通の素敵仕事を
透過的にこなしてくれるなら文句ない。
787デフォルトの名無しさん:2006/01/23(月) 22:25:46
>>779
>>772のことだね?

それにしても>>773>>769を否定しているのやら肯定しているのやら…。
日本語が難しいな。。。
788デフォルトの名無しさん:2006/01/24(火) 08:14:31
今から思えばJComponentはinterfaceにすべきだったな。
789デフォルトの名無しさん:2006/01/24(火) 12:19:46
> interfaceにすべき
確かに。

あとテーブル周りはもう少しスッキリ出来そうな気がする。
790デフォルトの名無しさん:2006/01/24(火) 13:55:41
もう8年位前の技術だしねぇ
JComponentはComponentを継承している以上
ベースはすでに10年以上前からあったと
791デフォルトの名無しさん:2006/01/24(火) 15:03:43
>>788
その場合、JComponentで実装してるメソッドとかはどうすんの?
792デフォルトの名無しさん:2006/01/24(火) 15:30:52
AWT あっての Swing なんだが。インターフェースにするメリットが全く分からん。
Swing on SWT とか本末転倒なことやりたいのか?
793デフォルトの名無しさん:2006/01/24(火) 15:39:02
インターフェースだけにすると実装する手間があほみたいに増えて
結局DeafultComponentとかいう実装クラスがあってそれを継承する



というだけになりそうだな
794デフォルトの名無しさん:2006/01/24(火) 18:19:27
JEditorPane、JTextPaneよりも本格的なエディタ用入力ペインクラスってある?
JBuilderのエディタみたいな。
795デフォルトの名無しさん:2006/01/24(火) 18:55:25
>>794
アンドゥあるしワードみたいなWYSIWYG(もどき?)な編集もできるし
Swingでも十分本格的だと思う。
796デフォルトの名無しさん:2006/01/24(火) 18:58:40
行番号表示とかできる?
797デフォルトの名無しさん:2006/01/24(火) 19:12:18
>>796
自作で行番号表示するコンポーネントを作って
JScrollPaneのsetRowHeaderView

単純に質問に答えるとこうなりそうだけど、>>794の求めてるエディタは自作するしかないんだろうな
798デフォルトの名無しさん:2006/01/25(水) 02:27:06
JTextPane内にアイコンやコンポーネントを表示させることができる訳だが、
このような書類をどのように保存すべきか。これは大問題だと思う。
ちなみに自分が調べたところでは、ObjectOutputStreamを使って、シリアライズ
できることは分かったのだが、この方法だと、将来JTextPaneやそれが含むコンポーネント
等がバージョンアップして、内部構造がわずかにでも変化したら、もう読み込みができなく
なってしまうのではないだろうか。という不安が有る。
799デフォルトの名無しさん:2006/01/25(水) 02:35:06
TableModel(DefaultTableModelなど)はJTableにデータを表示するときに
利用しますが、複数のJTableに同じデータ(Entity)の異なる属性を
同時に表示したいとき、アプリケーション内ではどのようにデータを保持しますか?

前提条件
・データ数や属性に変更があったら両方のJTableとも同期が取れていること
・非GUIクラスでこれらのデータの集合を扱いたい

1.アプリケーション内でデータをList等で管理し、それぞれのJTable用の
   TableModelを作成し、setValueAt()を利用して、データのコピー(String等)を
   TableModelに設定して表示する
   -> ListとTableModelとデータ間の共有がないので同期を取るには面倒
2. アプリケーション内でデータをList等で管理し、それぞれのJTable用の
   TableModelを作成し、データを設定して表示する
   -> データはJTable間で共有するが、ListとTableModelは共有されない
      ので追加、削除が面倒
3. アプリケーション内で1つのTableModelでデータ管理し、それぞれのJTableに
   同じTableModelを設定(TableModelを共有する)して表示する
   -> データもTableModelも共有するので同期は楽

実装上は3が最も適しているように思えるけど、TableModelはjavax.swing.table
パッケージなので、ロジック制御クラスのような非GUIのクラスで扱うにはどうか
と思うのですが、あんまりこだわらないほうがいいかな?
800デフォルトの名無しさん:2006/01/25(水) 04:44:04
>>799
自分も同じようなことで悩んだことが有ります。プリケーション内で1つの
TableModelでデータ管理するということは、そのアプリケーションで利用する
データがテーブルに表示するデータだけ、ということを意味すると思いますが、
私の場合、表示するデータ以外にも、隠れたデータを各行に持つ必要があったため、
あなたの3番目の方法は真っ先に消えました。JTableの各行に対応する、rowData
というようなオブジェクトを作り、そこにテーブル表示用の1行分のデータや、その行と
関わるそれ以外のデータも入れました。そしてrowDataたちを要素として持つ
Vectorをフィールドとして持つクラスをアプリケーションのデータとしました。
そして、行を削除するときは対応するrowDataをVectorから削除してから、
すべての行を一たん削除して、DefaultTableModelのaddRow()で設定し直して
います(本当は必要な行だけで言い訳ですが)。一見非効率的な方法にも見えますが、
行の削除も追加も、行の入れ替えもこのrowDataを中心に考えると非常に楽になりました。
801デフォルトの名無しさん:2006/01/25(水) 08:24:12
>>799
作成というのが、インスタンスの作成なのか、クラスの作成なのかよくわからない。
データ構造がどうなっていようと、JTableが求める形でデータを応答すればいいわけだから、
・データは好きな形で保持(Listとか)
・好きにデータを返すカスタムTableModelを作成
・そのTableModelのインスタンスを2つ用意して、それぞれの状態によって返すデータを変える

table1→MyTableModelインスタンス1→
                         MyData
table2→MyTableModelインスタンス2→
って感じかな
802デフォルトの名無しさん:2006/01/25(水) 09:08:41
>>799
>>801の方法に賛成。
>>800のようにDefaultTableModelを使う方法は、データがObject[][]型に固定されるので不便です。
ある意味javax.swing.tableパッケージに依存します。
そうではなく、任意のクラスを扱えるTableModelを、AbstractTableModelを継承して作るのがお薦め。
任意のクラスをMyData型とすると、MyDataを持つArrayListをアプリケーション全体で1つ持ち、
これを複数のTableModelで共有すればいいんじゃないでしょうか。(801と一緒か)

TableModel間の値の変更の通知は、イベントモデルを使うと解決できるでしょう。
AbstractTableModelを使うと既存のイベントモデルの枠組みが使えるので簡単ですが、
この場合swing依存になります(それでも問題なければよいですが)。
私がやったときは、グローバルなアプリケーションオブジェクトを用意して、
これにArrayListインスタンスの管理と、インスタンス変更の通知を任せました。

変更があったときの流れはこうです。

TableModel 1で変更があった

アプリケーションオブジェクトに変更を通知

TableModel 2に変更を通知

TableModelとアプリケーションオブジェクト間に関連ができますが、
ここはインタフェースを経由することで依存しないようにしています。
803デフォルトの名無しさん:2006/01/25(水) 20:40:26
いいけど、今更Vector使うなよ、という気はする。
804デフォルトの名無しさん:2006/01/25(水) 21:53:51
もう8年以上前のものだし・・・
おかげで同期化しなくても動いてるというのは多いだろうね
VectorだからSwingが重いって場面はもうほとんどないだろうしね
805デフォルトの名無しさん:2006/01/26(木) 02:24:59
そういうこったからいつまでたってもVectorがなくならない・・・
806デフォルトの名無しさん:2006/01/26(木) 02:42:59
やっぱりsynchronizedとか使って、ArrayListに置き換えた方がええんかのう。
807デフォルトの名無しさん:2006/01/26(木) 03:02:53
実害無いなら、なくすためにバグが出るより Vector のままのほうが良い。
808デフォルトの名無しさん:2006/01/26(木) 07:18:24
>>806
つうかSynchronizedListつかえよ。
809デフォルトの名無しさん:2006/01/26(木) 11:17:21
一点ご教授いただけないでしょうか。
今、JEditPaneやJTextArea辺りを使ってエディタを作成しています。
要件としては「カーソル位置の行に下線を表示する」というものです。
文字列の一部に下線を引くのではなく、
カーソルが存在する行全体に引きたいのですが、
何かよい方法が用意されていますでしょうか?
810デフォルトの名無しさん:2006/01/26(木) 12:04:14
>>806

うほっ、そんなクラス知らんぞ、と思ったら、メソッドだったのか。
勉強になるなこのスレは
811デフォルトの名無しさん:2006/01/26(木) 12:22:14
>>810
メソッドじゃないよ
812デフォルトの名無しさん:2006/01/26(木) 12:48:01
しまった。アンカーミス
>>806じゃなくて
>>808だった。orz

え、メソッドしか見つからんけど。
あとで暇になったらまた調べるわ。
813デフォルトの名無しさん:2006/01/26(木) 19:15:44
>>809
改行多いといわれたので
ttp://terai.xrea.jp/swing/linecursor/sample.jnlp
class LineCursorTextArea extends JTextArea {
public LineCursorTextArea() {super();
Caret caret = new DefaultCaret() {
protected synchronized void damage(Rectangle r) {
if(r!=null) {JTextComponent c = getComponent();
x = 0;y = r.y;width = c.getSize().width;
height = r.height;repaint();}}};
caret.setBlinkRate(getCaret().getBlinkRate());setCaret(caret);
}protected void paintComponent(Graphics g) {
super.paintComponent(g);Graphics2D g2 = (Graphics2D)g;
Insets i = getInsets();
int y = getRowHeight()*getLineAtCaret(this)+i.top;
g2.setPaint(SystemColor.activeCaption);
g2.drawLine(i.left, y-1, getSize().width-i.left-i.right, y-1);
}public static int getLineAtCaret(JTextComponent component) {
int caretPosition = component.getCaretPosition();
Element root = component.getDocument().getDefaultRootElement();
return root.getElementIndex(caretPosition)+1;
}}
814デフォルトの名無しさん:2006/01/26(木) 19:57:12

ブラクラ
815デフォルトの名無しさん:2006/01/27(金) 01:28:46
ラベルの編集できるノードと出来ないノードが混ざった JTree があるんだけど、
setEditable(true) すると全部編集できてしまう。編集不可なノードの時は
キャンセルするようにしたいんだけどどうすれば良い?
816デフォルトの名無しさん:2006/01/27(金) 01:35:13
ん? DataTreeCellEditor の actionPerformed() をオーバーライドしてやれば良いのかな?
817デフォルトの名無しさん:2006/01/27(金) 02:07:11
isCellEditable() をオーバーライドした DefaultTreeCellEditor を仕掛けたらうまく動いた。
このやり方であってるのかな?

public boolean isCellEditable(EventObject event) {
  TreePath path = tree.getSelectionPath();
  if(path != null){
    Object node = path.getLastPathComponent();
    if(ラベル編集不可){
      return false;
    }
  }
  return super.isCellEditable(event);
}
818809:2006/01/27(金) 10:26:43
>>813
ありがとうございます、文句の付けようのない完璧な仕上がりになりました。
一点蛇足とは思いますが、最終的にJEditPaneを使用することにしたため、
getRowHeight()メソッドが存在しなかったのですが、
g2.getFontMetrics().getHeight()を用いて動作させてみました。
重ね重ね本当にありがとうございました。
819デフォルトの名無しさん:2006/01/27(金) 12:00:34
Swingを使ってゲームを作成している者ですが
ちょっとお聞きしたいことが・・・
マウスの画像を、自分で作った画像に変更したいのですが、どうすればできますか?
分かる方教えてください><
820デフォルトの名無しさん:2006/01/27(金) 12:11:12
>>819
Toolkitクラスを見てごらん
821デフォルトの名無しさん:2006/01/28(土) 02:36:39
JInternalFrame のタイトルバーや境界を消したいんだけど出来る?
822デフォルトの名無しさん:2006/01/28(土) 17:44:56
>>821
できる
JInternalFrame frame = new JInternalFrame();
((BasicInternalFrameUI)frame.getUI()).setNorthPane(null);
frame.setBorder(BorderFactory.createEmptyBorder());
frame.setSize(200,200);
frame.setVisible(true);
frame.setLocation(10,10);
frame.add(new JLabel("メモ"));
desktop.add(frame);
823デフォルトの名無しさん:2006/01/28(土) 22:05:57
JTree のノードに JTable って入れられますか?
JTable を返す TreeCelRenderer を作ってみたら一応表示はされるみたいだけど
行とか触れないな。
824デフォルトの名無しさん:2006/01/28(土) 23:00:25
触りたい場合はエディタでは
825デフォルトの名無しさん:2006/01/28(土) 23:33:07
了解
826デフォルトの名無しさん:2006/01/29(日) 01:35:33
ひょっとしたら>>823はこれを読んだら幸せになれるかもしれない。
ttp://java.sun.com/products/jfc/tsc/articles/treetable1/
827デフォルトの名無しさん:2006/01/29(日) 20:52:19
>>826
幸せになってみようかと組み込んでみましたがちょっと挙動不審でした。
828806:2006/01/30(月) 02:36:22
VectorをすべてArrayListに置き換えますた。
ああすっきりした。これでVector使うやつが一人減ったよ。
829デフォルトの名無しさん:2006/01/30(月) 02:52:07
Swing使う部分はどうしようもないけどな
830デフォルトの名無しさん:2006/01/31(火) 00:12:58
JTable の選択行が変わったときのイベントを拾うにはどこに何のリスナしかければ良いの?
JTable にも TableModel にもそれっぽいメソッドが無いんだけど。
831デフォルトの名無しさん:2006/01/31(火) 00:15:59
ごめん、JTable から ListSelectionModel 取ってそれに仕掛けるのか。
832806:2006/01/31(火) 00:37:44
JTable#valueChanged()じゃダメなのかな。
833デフォルトの名無しさん:2006/01/31(火) 00:51:48
>>832
止めたほうがよさげ。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/JTable.html#valueChanged(javax.swing.event.ListSelectionEvent)
> アプリケーションコードはこれらのメソッドを明示的には使用しません。
> これらのメソッドは JTable が内部的に使用します。
834832:2006/01/31(火) 01:09:35
ふ〜ん。大村さんの本では普通にオーバーライドして、利用してるけどね。
ちゃんと先頭の行でsuper.valueChanged()呼んでやれば大丈夫だと思われ。
自分もこのメソッドよく利用してるけど、今のところ何の支障もないよ。
835デフォルトの名無しさん:2006/01/31(火) 01:26:45
そのsuperとか使ってる時点で動き方を意識しなければならないのが問題
継承して使いたい場合はそれでいいとおもうけどね

単純にテーブルを配置、その選択イベント取得したいという目的ならしないほうがいい
836デフォルトの名無しさん:2006/01/31(火) 01:54:39
モデルやリスナ、レンダラなんかはしょっちゅうサブクラス化するけど
テーブルそのもののサブクラス化はあまりやんないなぁ。
837デフォルトの名無しさん:2006/01/31(火) 01:59:10
基本的にbeans部品だから配置した後でプロパティセットって感じだよね
モデルもテーブルに限らずDefaultなんちゃらモデルで大概事足りるしねぇ
838デフォルトの名無しさん:2006/01/31(火) 10:56:07
>>835
仕様書がダメだといってるんだからダメだろ。
Javaの将来のバージョンとかで動かなくなる危険性がある。
839832:2006/01/31(火) 14:56:05
おまいら、そんなに俺にvalueChanged()をやめさせたいのかよ。
この前VectorをArrayListに置き換えたばっかりなのによw

>>838
仕様書ってJava Docのことですか?だとしたらダメだとは書いてないと思うけど。日本語のサイトの

> アプリケーションコードはこれらのメソッドを明示的には使用しません。
> これらのメソッドは JTable が内部的に使用します。

というとんちんかんな和訳じゃニュアンスが伝わってこないけど、もとは

>Application code will not use these methods explicitly, they are used internally by JTable.
となっているのだ。"should not"でも"cannot"でも"must not"でもなく、"will not"なので、
「使うことは無いだろう。」と訳すべきだと思うよ。それに将来的に使えなく
なるなら非推奨になっているはずでしょ。まあ俺は気にせず使うよ。何か問題が発生したら、
そのとき対処するわ。10年経っても問題なく使えてたら、おまいらに胸を張って報告するよ。
普段ギャンブルをしない俺だが、たまにはやってみるわ。
840デフォルトの名無しさん:2006/01/31(火) 15:21:49
SwingでArryListの置き換えは無駄だろ

JTableが自分でインプリメントしてるイベントは
自分で使うからその動作を妨げてはならない
だからsuper使ってる

というだけの話だろ?

JTableを拡張して作りたいのならJTableの動作について詳しいわけだし問題なし
アプリでJTableを使いたいだけならJTableに実装されているイベントを使わないほうがエレガント

だろ?
841デフォルトの名無しさん:2006/01/31(火) 15:45:28
やっぱ interface 多用した作りに直して欲しいな。。
842デフォルトの名無しさん:2006/01/31(火) 15:48:06
JTable#valueChanged() 使いたければ使えばいいと思うけどねぇ
俺は>>838と同じで仕様原理主義者なので使わない方を推奨するけど

どっちかっつーと、>>839はAPI Specの原文読んでも好ましくない事が一目瞭然なのに固執してる事
それも技術的な理由でなく自己満足のために、って部分のがヤバいよーな気がするね
843デフォルトの名無しさん:2006/01/31(火) 16:00:43
使われたくなければ valueChanged() をパッケージプライベートに
するなりせいよと思うが、先の Vector じゃないけど過去のしがらみで
いまさらできないんだろうね。
844デフォルトの名無しさん:2006/01/31(火) 16:28:23
>>843
インターフェース実装してるやつなのでそれはJava言語として無理だろ

でもそんなSwingもSWTのソースおったりAPI見てると
非常に綺麗に見える不思議

Swingは今後フラグ以外の定数はEnum化するようにしてほしいね
ListやMapインターフェースの追加と
845デフォルトの名無しさん:2006/02/01(水) 01:10:32
JTableで行(セル)の値が修正されていたらその行の背景色を変えて
ほしいってよくユーザに言われるけど、どう解決すべきでしょうか?
元 |abc|1|あ|
後 |xyz|1|あ|
にしたとき背景色を変えるが、元に戻したとき(xyz -> abc)は
修正されていないので背景色も元に戻さなければいけない。

TableModelに元の値と修正後の値とフラグを設けて、
stopCellEditing()時にチェックしてTableCellRendererでフラグ
を見て背景色表示って感じかな。
846デフォルトの名無しさん:2006/02/01(水) 01:40:08
値の監視タイミングはセルエディットのstopではなくてモデルのイベントを使え
847!omikuji:2006/02/01(水) 03:22:27
test
848デフォルトの名無しさん:2006/02/01(水) 12:11:24
OO的にはいけてない方法だが、変更されたらセル1個or1レコードに対するデータに変更フラグを立てておいて
モデルではそのままそのオブジェクトを返して、レンダラでそのフラグを見て色を変える。
変更の有無がそのセル1個or1レコードのクラスに閉じこめられるので楽といえば楽、きれいといえばきれい。

OO的にいけてないと俺が思う理由はビュー側の要件に対してモデル側で対処しようとしてるから。
849デフォルトの名無しさん:2006/02/01(水) 12:20:33
これは状態を表すからモデルでいいと思う

よくDB使ったアプリとかでも変更があったときに閉じようとしたとき
変更が保存されていません、とかダイアログを出すとかそういうのとおなじ


850デフォルトの名無しさん:2006/02/01(水) 12:20:34
>>848
>OO的にいけてないと俺が思う理由はビュー側の要件に対してモデル側で対処
それはモデル側で正しいんじゃないかな。
ビュー側の要件は、変更されていたら色を変えるところまでで、
値が変わったかどうかを判断or保持するのは、モデルだと思う。
モデルが色を保持したら、間違っていると思うが、上記は別に「いけてない」とは思わないけど。
851デフォルトの名無しさん:2006/02/01(水) 19:10:09
JTextFieldにおいて、 IMEの未確定な状態の文字列を、
ロジックで、確定するには、どのようにしたらよいでしょうか?

とあるイベントが発生したときに、未確定な文字列を強制的に確定したいのです。
852デフォルトの名無しさん:2006/02/01(水) 20:43:11
>>851
メソッド一個だけあげろってんなら InputContext#endComposition() なんだけど、
これだと削除される場合もあるらしいね。

InputMethodListener 仕掛けておいて、常に未確定文字列保持しておき、
endComposition() で確定したらよし、削除されちゃったら
JTextField に未確定文字列を こっそり挿入するとかすれば。
853デフォルトの名無しさん:2006/02/01(水) 21:14:42
>>852
endCompositionだと、確かに取り消される場合があります。。。
後半の方法を、参考に、未確定文字列の保持ではなく、
全文字列を保持して、後からsetTextするという方法はできました。

でも、できれば単純に確定する方法があると一番よいのですが。
854デフォルトの名無しさん:2006/02/02(木) 02:24:28
jniでWindowsならIMMなんとかかんとかとか呼ぶ。
Robotとか使って無理矢理エンター押させたらどうなるん?

といいながらちょとテキストフィールド出して入力してみたんだけど、フォーカスアウトすると勝手に確定しちゃうのね
@1.5.0_06+ATOK

ちゅか標準的な方法としてはendCompositionしかないんだからそれ以上のことは「Javaの仕様です」でFAでいい希ガス。
仕事でしょ?なら尚更、標準以上の対処をするとサポートしきれない。
眠いので散文スマン。
855デフォルトの名無しさん:2006/02/02(木) 10:46:55
InputMethodListenerで、確定時に発生するイベントを参考にして、
自分でInputMethodの生成、dispatchEventとしたら、確定させることができました。

>>854
わざわざ、試していただいてありがとうございます。
「Javaの仕様です」では、とても納得させられないです。
ユーザは、Javaの標準を押し付けられても、困ると思うので、
そんなことは、仕事だからこそ言えないです。
856デフォルトの名無しさん:2006/02/02(木) 11:00:24
>>855
じゃあ、他の世界の標準では、そういうことができると明記されてるの?
だれもが「できる」という共通認識でもあるの?

857デフォルトの名無しさん:2006/02/02(木) 11:16:57
> InputMethodListenerで、確定時に発生するイベントを参考にして、
> 自分でInputMethodの生成、dispatchEventとしたら、確定させることができました。
このやり方は推奨しない。

自分で Event 生成して dispatch しても InputMethod の状態を
ちゃんと制御できてないとその Event を受け取ったコンポーネントと、
そんな事知らない InputMethod の間で齟齬が起きる危険性があるし。
確定時に どのイベントがどんな順番で発生するかは仕様で全く規定されてないしね。
858デフォルトの名無しさん:2006/02/02(木) 13:28:00
>>857
>このやり方は推奨しない。

そうですか。。。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27717&forum=12
こんな情報を見つけたので、やっぱりやめときます。

>>854の方法も含めて、あとから挿入するという方法も検討してみます。
859デフォルトの名無しさん:2006/02/02(木) 15:38:00
あとまあこの辺は見てるんだろうけど参考になりそうなもの
http://javadesktop.org/articles/InputMethod/index_ja.html
http://java.sun.com/j2se/1.5.0/docs/guide/imf/index.html

たとえばWindowsネイティブの開発だったらどうだろう。
普通に考えるならMS-IMEでバージョンも限定という前提があればWINAPIのImm〜を使ってやってもいい。
#うまくできるとは限らない。
だが、クライアント環境をきびしく限定できないなら仕様と考える方が無難。

Guideのほうにはちゃんと書いてあるようだ。
入力操作の終了

通常、インプットメソッドは、入力操作を終了させるユーザの行為を認識します。たとえ
ば、未確定のすべてのテキストを確定する操作などです。ただし、入力操作の終了が必要
な操作を開始するユーザの行為の中には、インプットメソッドが認識できないものもあり
ます。テキストを含むドキュメントの保存は、インプットメソッドが認識できない行為の
例です。そのような場合、コンポーネントは、入力コンテキストの endComposition メソ
ッドを明示的に呼び出す必要があります。
860デフォルトの名無しさん:2006/02/04(土) 01:25:30
NetBeans IDE 5.0
http://pcweb.mycom.co.jp/news/2006/02/03/342.html
出たね。
Matisse GUIビルダって、既存のレイアウトマネジャーは使ってないんだっけ?
861デフォルトの名無しさん:2006/02/04(土) 04:07:03
GroupLayout。Dolphinから採用されるらしい。
862デフォルトの名無しさん:2006/02/04(土) 10:53:08
*BSDだとどれ落とせばいいの?
UNIX同士は互換無かったと思うし、Linux版をエミュレート?
863デフォルトの名無しさん:2006/02/04(土) 11:10:16
スレ違いだが回答。FreeBSDならportsにある。
http://www.freebsd.org/java/
他のBSDは知らん。
864デフォルトの名無しさん:2006/02/04(土) 17:40:40
>>861
Dolphinって、大分先じゃん・・・。Visual Editorで使えるようになるのは何時になるんだろ。
865デフォルトの名無しさん:2006/02/04(土) 18:10:22
単体ライブラリとしては、今でも使えるしね。
866デフォルトの名無しさん:2006/02/05(日) 12:28:08
>>865
じゃあ、Dolphinまで待たずとも、Visual Editorが対応してくれる可能性もあるってわけだね。
NetBeansのGUIビルダは魅力だけど、それだけで乗り換えるのもつらいしなぁ・・・。
867デフォルトの名無しさん:2006/02/05(日) 12:46:24
VEって対応したところでいまのままではきついような
868デフォルトの名無しさん:2006/02/05(日) 12:56:20
>>866 VEが対応する可能性はかぎりなくゼロに近いと思う。
現状でもVEのSwingサポートレベルは1.3だし、公開されている今後の計画でも
1.4以降のサポートは予定しないと明文化されている。というかSwing系の
機能増強自体ほとんど予定がない。
大体、eclipse.orgのVE projectって基本的にGUI開発環境を作るための
フレームワークを提供するプロジェクト。GUI開発環境を提供する
プロジェクトじゃないのよ。だから下回りのフレームワークのAPIの
開発は進んでもその上のリファレンス実装までは手がまわらないんじゃないかな。
SWT系はIBMがWorkplace構想打ち出してるからいいとしても。
869868:2006/02/05(日) 12:58:59
>手がまわらない→手をまわさない
のほうが正確かも。
870デフォルトの名無しさん:2006/02/05(日) 15:27:36
>>868
それは(´・ω・`)ショボーンだなぁ。
確かに、SpringLayoutとかにもまだ対応してないし。
普段はEclipse&GUIだけNetBeans5.0 という使い分けができれば良いんだけど・・・。
871デフォルトの名無しさん:2006/02/05(日) 15:35:09
NetBeans5.0って4.1と大分操作感覚が違うから戸惑うな
4.2としなかったのは正しい
872デフォルトの名無しさん:2006/02/05(日) 19:40:58
サーバーサイドはEclipse、GUIアプリを作るときはNetbeansとしても、
それほど混乱しないと思うけど。
873デフォルトの名無しさん:2006/02/05(日) 19:53:53
サーバーサイドもNetBeansつかえば、混乱ないよ。
874デフォルトの名無しさん:2006/02/05(日) 19:57:41
問題はこのスレとサーバーサイドが関係ないことだ
875デフォルトの名無しさん:2006/02/05(日) 20:57:09
-serverオプションってSwingに効果ある?
876デフォルトの名無しさん:2006/02/05(日) 21:36:34
起動を遅く実行を速くだからね。効果あるかもしれない。
877デフォルトの名無しさん:2006/02/05(日) 22:00:23
早くはなるけど、レスポンスは悪化するのでおすすめできない
878デフォルトの名無しさん:2006/02/05(日) 23:11:32
このスレで何か作ってる人はやはりNetBeansが多いんですか?
879デフォルトの名無しさん:2006/02/05(日) 23:38:42
コンポーネントの数が多いとさすがにコードのみで貼り付けは無謀だし
位置の調整も絶望的になってくるしな

次点としてJBuilderやOracleJDev(JBuilderベース)かな
880デフォルトの名無しさん:2006/02/06(月) 00:35:35
俺はがんばってEclipse+VEでやってるよ。
慣れれば何とかなるが、もどかしい思いをすることもしばしば。
881デフォルトの名無しさん:2006/02/06(月) 14:07:31
Eclipse + VE でやってる。
NetBeans は試してみたことないんだけど
そんなに素敵なら使ってみたいなぁとは思う。

思うんだが、VE でも特に困らないので
評価の時間を作るほどには至らず。
882デフォルトの名無しさん:2006/02/06(月) 14:27:46
どうでも良い作り捨てや他の人に引き継ぐ GUI は VE で。
本気モードの日曜プログラムは GridBagLayout で。
883デフォルトの名無しさん:2006/02/06(月) 14:43:59
GridBagLayoutならNetBeansだな。
884デフォルトの名無しさん:2006/02/06(月) 18:21:43
>>881
5.0を試してみることをお勧めする
違いを実感できるよ
885デフォルトの名無しさん:2006/02/06(月) 20:45:03
NetBeansでGridBagやったけどわけわからんかった
SplitPaneが神
886デフォルトの名無しさん:2006/02/06(月) 21:10:26
GridBagLayoutは仕組みがわかってないとWYSIWYGなエディタがあってもわけわからんと思われ。
887デフォルトの名無しさん:2006/02/06(月) 21:16:45
もしかして、GridBagLayoutの編集画面(?)までいってないとか…
888デフォルトの名無しさん:2006/02/06(月) 21:17:21
くだらない書き込みでageてしまったorz
889デフォルトの名無しさん:2006/02/06(月) 21:34:31
VEはサイズ指定するのがクソ
890デフォルトの名無しさん:2006/02/06(月) 21:49:51
Eclipse+VEは辛いな
891デフォルトの名無しさん:2006/02/06(月) 23:18:46
というか、まちすがリリースされたこの時期にGridBagLayoutとか言ってないで
Netbeans 5をダウンロードしてためしなよ。
892デフォルトの名無しさん:2006/02/06(月) 23:40:29
用語としてはフリーデザインという表示してるからそっちで統一したほうがいいと思うけど
レイアウトとしてはグループレイアウト

これはこれで慣れが必要だけどね
コンポーネントが細かく配置してある場所にある程度の大きさのあるJPanelを
追加とか結構難しいな

相対座標を変に記憶していて調整が難しいという場面も多く見られる
893デフォルトの名無しさん:2006/02/07(火) 01:26:59
>>886-887
仕組みを理解して編集画面があることに気が付いたら、GridBagLayoutは使えると思った。

でもグループレイアウトはもっといい。簡単だし、文字のベースラインが揃うのがとてもいい。
894デフォルトの名無しさん:2006/02/07(火) 01:30:20
>>893
GroupLayoutでコード手書きは悪夢。
895デフォルトの名無しさん:2006/02/07(火) 11:53:57
h(c1, c2, ...) と書いたら c1, c2... を横に並べた Panel を作るメソッド作っとけ。
896デフォルトの名無しさん:2006/02/07(火) 12:55:42
>>881
レイアウト自体は GridBagLayout で別に問題ないというか。

速度面以外の有利さってどの辺りです?
あとは Subversion / Maven / etc との連携とか。
画面だけ作って終わりってわけにいかないし。
897デフォルトの名無しさん:2006/02/07(火) 13:45:20
>>896
オレ画面だけ作ってeclipseにコピーしてるwwwwwwwwww
898デフォルトの名無しさん:2006/02/07(火) 13:47:41
それだと修正はいるときついな
899デフォルトの名無しさん:2006/02/07(火) 15:47:18
あほな質問でごめん。
昨日から5.0をおとしていろいろいじってますが、
jLabel1のBackgroundのプロパティで色を設定しても変わらないのですが、
そういうものなのでしょうか?jTexfieldとかは設定すると変わるんですが。
900デフォルトの名無しさん:2006/02/07(火) 15:50:29
>>899
opaque
901デフォルトの名無しさん:2006/02/07(火) 15:53:36
その質問つい最近もあったな
透過指定いれてるからというのに納得してなかったな
902デフォルトの名無しさん:2006/02/07(火) 15:55:52
>>900
おお、できました。ありがとうございます。
プロパティいっぱいあって複雑でちと、ナーバス状態です(TT
903デフォルトの名無しさん:2006/02/08(水) 12:45:52
>>897
org.jdesktop.layout.GroupLayout毎Eclipseに持っていくの?
904デフォルトの名無しさん:2006/02/08(水) 18:33:02
swing-layout.jarがクラスパスにあればいいだけとみた
905デフォルトの名無しさん:2006/02/08(水) 21:57:19
GridBagLayoutかGroupLayoutかって構図になってるな。
1.4で追加されたSpringLayoutはどうよ?
906デフォルトの名無しさん:2006/02/08(水) 22:17:47
>>904
できました。
ただソースをフォーマットするととんでもなく見づらくなる。。。
907デフォルトの名無しさん:2006/02/08(水) 22:25:09
>>905
そこで TableLayout ですよ。とか言ってみる。
https://tablelayout.dev.java.net/

こっちも面白そう。
http://cappuccino.jp/keisuken/java/tablelayout/docs/specification.html

っつか、他人の作ったものが使い難かったら自作しちゃえば
908デフォルトの名無しさん:2006/02/08(水) 22:28:09
レイアウトは組み合わせて使うもの
単体でそれなりに使えるのはGroupLayoutくらい
nullやAbsoluteLayoutでもいいけど

あとは組み合わせだけ
組み合わせに慣れてくるとBOXとFlow、Borderの3つだけ使うようになってくる。

NetBeansは階層構造もったコンポーネントのコピーもいいかげんできるようになってくれぇ
909デフォルトの名無しさん:2006/02/08(水) 22:30:49
>>907
自作するのはいいけど、GUIエディタがないと頭痛くなるから
結局プラグインも自作しなければならなくなるというオチがまってる

テーブルレイアウトはシンプルでいいけど、後から修正が入ると非常に厳しいレイアウトだよね
910デフォルトの名無しさん:2006/02/10(金) 16:32:15
こーゆーふーに済ましたらあかんの?

for ( int i = 0; i < 部品リスト.length; ++i ) {
  部品 部品 = 部品リスト.get(i);
  if ( i > 0 ) {
    部品 部品2 = new 部品()
    部品2.setX( 部品1.getX() );
    部品2.setY( 部品1.getY() + 部品1.getHeight() + マージン );
  }
  コンテナ.add( 部品 );
}
911デフォルトの名無しさん:2006/02/10(金) 16:48:47
>>910
クラス名とインスタンスがごっちゃになる書き方はわけわからん
そもそもコードベースで配置する時代はとっくに終わってる
912デフォルトの名無しさん:2006/02/10(金) 18:27:01
でもレイアウトマネジャーに任せるとメチャメチャな
配置にしかならんような気がするけど。
913デフォルトの名無しさん:2006/02/10(金) 18:37:29
それはレイアウトマネージャをしらないやつだけ

むしろ絶対座標で配置後に修正とか楽になるだろ
914デフォルトの名無しさん:2006/02/10(金) 22:35:45
つ適材適所
915デフォルトの名無しさん:2006/02/11(土) 00:55:37
俺も最初、JavaのGUIでレイアウトマネージャ使ったときは、
なんてめんどくせーんだ。
と、思っていたが、コアJAVAのレイアウトマネージャの項目を読んで、
説教くらって、改心しますた。

絶対座標使ったら、後からボタン名を微妙に変える必要が出てきたときとか大変じゃないか。
916デフォルトの名無しさん:2006/02/11(土) 05:02:30
もとから大きめなボタンにしとけば解決じゃね?
917デフォルトの名無しさん:2006/02/11(土) 06:09:33
>>916
ださいよ、それ
918デフォルトの名無しさん:2006/02/11(土) 12:25:09
+5文字分くらいの余裕なら大したことないよ
919デフォルトの名無しさん:2006/02/11(土) 12:45:05
ボタンのサイズは合わせることはあるから別に不思議ではないが
1画面にコンポーネントが数百載るってのはふしぎなことではないから
レイアウトマネージャ使わないと不便
920デフォルトの名無しさん:2006/02/11(土) 12:48:23
>>919
数百って。。。をぃをぃ
921デフォルトの名無しさん:2006/02/11(土) 12:55:17
パネル切り替えて使うとして、描画されるのは精々数十では?w
922デフォルトの名無しさん:2006/02/11(土) 13:02:02
業務系は数百なんては割りと普通では?
923デフォルトの名無しさん:2006/02/11(土) 13:02:46
>>922
どういう業務系だよw
924デフォルトの名無しさん:2006/02/11(土) 13:05:29
おれはやったことないが、なんか昔のオンラインシステムをそのまま移行した
ような予約システムとかだとすごい量のコンポーネントが画面に並ぶらしい。
925デフォルトの名無しさん:2006/02/11(土) 13:08:20
>>924
すごい量って、、、画面いっぱいってことかw
926デフォルトの名無しさん:2006/02/11(土) 13:15:50
全画面表示前提で1000を超えるコンポーネント貼り付けられたソースなら見たことあるな
927デフォルトの名無しさん:2006/02/11(土) 13:25:27
>>926
見たことあるってのと実際に動いてるのはちゃう。
928デフォルトの名無しさん:2006/02/11(土) 13:41:52
1000コンポーネントって、縦30 x 横30ぐらい コンポーネントが貼り付けてあるのか。
画面サイズが 1280 x 1024 だとして、一コンポーネントあたり 42 x 34 ぐらいしか取れないけど。
929デフォルトの名無しさん:2006/02/11(土) 13:53:38
昔のオンラインシステムからそのまま移行したタイプのシステムは、全画面表示が
標準で、全画面にボタンとフィールドがびっしり並んでいるのも割と普通。
横30行くかどうかはわからんが(フィールドが幅を取るので)、たて30くらいは行く。
930デフォルトの名無しさん:2006/02/11(土) 15:17:26
あと昔のシステムは次へと前への画面切り替えだったのが、
GUIだとタブ使うようになってる
1つのウインドウで2,300ならめずらしくもないべ

販売管理方面のシステムならよくある
931デフォルトの名無しさん:2006/02/11(土) 16:09:46
画面切り替えで200〜300っていうのは、レイアウトの問題とかんけいないんじゃねぇの?
932デフォルトの名無しさん:2006/02/11(土) 16:22:18
タブ1つの中に100個ははいるんじゃないの?
ウインドウで見たら数百はいくかと
933デフォルトの名無しさん:2006/02/11(土) 16:31:06
分かりやすく Excel に例えてやろう。
1024x768 画面で Excel 新規ドキュメント (初期状態) をフルスクリーンで開くと
画面に収まるのは 13列×32行 = 416セル

Excel でスクロール無しの 1 シートなんてたいしたことないだろ?
つまり 100 や 200 程度のコンポーネントなんて余裕で 1 画面に並ぶし、
入力する人間のキャパシティオーバーをまねくほどでもない。
それが業務画面。
934デフォルトの名無しさん:2006/02/11(土) 16:46:36
JRの窓口とかでおねぇさんが操作してるやたら入力項目の並んだ画面を想像すればいいかと。
935デフォルトの名無しさん:2006/02/11(土) 17:02:00
そしてそういう業務系の入力系をWEBアプリに移行して
死んだ会社を知っている

Swing+NetBeansでさくっと作り直して喜んでもらってるが
936デフォルトの名無しさん:2006/02/11(土) 17:31:31
画面を別々に分ければいいのに、
ユーザが紙一枚に書いて窓口に渡すのを、そのまま窓口が紙と同じように入力する画面を求めたり、
一つの項目に合わせて他の項目がTextBox/Check/Radioとかひょいひょい切り替わるのを使って何枚もの紙を一つの画面に納めようとしたり。
項目数とか考えずに 入力/表示/結果 でそれぞれ画面一つで要求したり。
あ、スクロール出てくると画面一つっていえないのかな。
937デフォルトの名無しさん:2006/02/11(土) 17:38:51
そんなのは単なる提案にすぎん。
決めるのはユーザ。
938デフォルトの名無しさん:2006/02/11(土) 20:53:38
>>935
一時期によくあった話らしい。
おれの友人の消費者金融の窓口で働いてた女の子がいうには、
もとの(DOSみたいな)オンラインシステムだったら、一画面に必要項目を
入力してやれば一瞬で結果が返ってきたらしい。もちろんフィールドは
タブで順番に移動。
新しいWebシステムではいちいちマウスを使わない上に何画面も入力させ
られてうざいと言ってた。
まあ設計ミスもあるんだろうけど...
939デフォルトの名無しさん:2006/02/11(土) 22:16:50
つTABINDEX属性
940デフォルトの名無しさん:2006/02/11(土) 22:32:12
>>938
>新しいWebシステムではいちいちマウスを使わない上に何画面も入力させ
>られてうざいと言ってた。

いまいち、よくわからんのだが、
新しいWebシステムではいちいちマウスを使わないといけない上に
ではないのか?
どっちがどうなのか混乱してきたw
941デフォルトの名無しさん:2006/02/11(土) 23:37:21
>>940
業務の現場では、1画面で全部済んじゃうUIが好まれるってことだろ
942デフォルトの名無しさん:2006/02/11(土) 23:41:55
その辺のコントロール含めてWEBアプリでは作りにくい
イコールコストアップや納期、品質にかかわってくる

とにかくリターンキー押したら次のコンポーネントへ移動ってのが重要だといつも言われてたよ
マウス使うシステムはスピード低下するのでおかしいと

入力チェックとかもjavascriptで実装しなければならず、これがまたデバッグが
最悪な環境になる

俺が直してやったシステムは時間がなかったのもあるけどクライアント数とかみて
普通にクライアントサーバ方式で作った

ローカルの資源を必要としてたが、WebStartの毎回出るダイアログがウザイらしいので
URLClassLoaderで最新のjarをダイナミックにロードするようにしといた
JREはPrivateJREにしてSystemLAF、NetBeansプロファイラでGCとかヒープの
チューニングもできたから、WebStartではなくアプリケーションで作ってよかったかな

ここ2年ほどはWEBアプリからの作り直しの案件もらうことも割と多い
不特定多数がユーザでないかぎり入力系でWEBアプリ提案するSI氏ねや
943デフォルトの名無しさん:2006/02/12(日) 00:12:06
いままで入力系でWebアプリの仕事(しかも改造)ばっかりだよ……
JavaとEJBとXMLとHTMLとCSSとJavascriptとXSLTが渾然一体となってて死ねる……

愚痴でごめん。
944デフォルトの名無しさん:2006/02/12(日) 01:00:56
ぶっちゃけ入力系で採用するとコストは3倍くらいになるよな>WEBアプリ
945デフォルトの名無しさん:2006/02/12(日) 01:24:06
Swingの話題として、Webアプリの成否はどうなんだろう。

ひとつのWindowにコンポーネントをどれくらい含むかって話から派生したわけだから、
まぁ仕方ないかの。
946デフォルトの名無しさん:2006/02/12(日) 04:55:20
いや、いまの話の流れとしては
Webアプリってどうよ?Swing+WebStartでいいんじゃねぇの?
って感じだから、むしろSwingの話題としていいのではないかと。
947デフォルトの名無しさん:2006/02/12(日) 08:04:38
Swingで独自形式のウィンドウ作りたいんですが、
やり方がさっぱり・・。
資料などあれば教えていただきたいです。
付箋みたいなタイトルとかがないウィンドウを表示させたいのです。
948デフォルトの名無しさん:2006/02/12(日) 09:56:11
949デフォルトの名無しさん:2006/02/12(日) 11:35:45
ありがとおお
950デフォルトの名無しさん:2006/02/12(日) 12:13:48
結論:クライアントはC#で。
951デフォルトの名無しさん:2006/02/12(日) 15:37:02
>>940
すまん。
いちいちマウスを使わない上に -> いちいちマウスを使わないといけない上に

だった....orz
952デフォルトの名無しさん:2006/02/12(日) 18:04:18
なあ、JLabel とかに設定するテキストで静的じゃないものってちゃんと HTML でエスケープしてる?
953デフォルトの名無しさん:2006/02/12(日) 18:32:59
JLabelに動的のものおいたことないからなぁ
通常そういうのはテキスト系に配置して変更不可能とかにしておくんじゃない?
954デフォルトの名無しさん:2006/02/12(日) 18:38:15
いや JLabel だけじゃなくてさ。DefaultTableCellRender 使ってる JTable もそうだし。
955デフォルトの名無しさん:2006/02/12(日) 22:37:44
イカス MetalTheme ってどっかに転がってない?
956デフォルトの名無しさん:2006/02/13(月) 03:45:18
>>826 の JTreeTable 使ってみてるが Look & Feel や MetalTheme 変更すると悲惨な
ことになるな。UIManager で propertyChange 拾って TreeCellRenderer 再設定したり
内部のツリーに SwingUtilities#updateComponentTreeUI() かけたりしてるが改善せず。
んーちょっとハマったかも。

http://www.jt200x.com/uploder/src/up6870.gif
957デフォルトの名無しさん:2006/02/15(水) 23:53:51
Winamp触ってて思ったけど、もういっそのことスキンを全部統合して欲しいな
実際は無理があるんだろうが質の良いスキン見るとそんなわがままを言いたくなる
958デフォルトの名無しさん:2006/02/16(木) 13:13:08
>>957
tDiaryとWinampとFirefoxの統合とかあったら素敵過ぎて笑えるかも。

Javaに限ればSkinLFの利用を強制するとかかな…
959デフォルトの名無しさん:2006/02/16(木) 15:46:24
JavaのL&Fはどれもこれも中途半端で、良いのないね。
960デフォルトの名無しさん:2006/02/16(木) 20:53:26
SubstanceLAFはよくできてる
961デフォルトの名無しさん:2006/02/17(金) 00:07:30
962デフォルトの名無しさん:2006/02/18(土) 00:22:28
Synth専用のスレが欲しいね
でもJava用スキンに理解のある人の集まる板ってどこにある?
963デフォルトの名無しさん:2006/02/18(土) 00:23:36
ここ
964デフォルトの名無しさん:2006/02/18(土) 00:53:19
でもセンスが・・・いやなんでもない
965デフォルトの名無しさん:2006/02/19(日) 02:00:41
おっしゃー自作するぜー

でもセンスが・・・いやなんでもない
966デフォルトの名無しさん:2006/02/20(月) 12:07:19
巷に溢れるスキンがそれほど素敵センスなわけでもないし。
そんなに気にすることないんじゃないの?
967デフォルトの名無しさん:2006/02/20(月) 14:04:57
ガキの頃隠れて読んでたエロ雑誌でスキンスキン出てたの思い出すので
あまりこの言葉は好きではない。
968デフォルトの名無しさん:2006/02/20(月) 14:11:44
だからこそ俺は好きんだ。
969デフォルトの名無しさん:2006/02/20(月) 14:15:38
それセクハラ
970デフォルトの名無しさん:2006/02/20(月) 20:10:05
LaF LaF言ってると裸婦を思い出すので
あまりこの言葉は好きではない。
971デフォルトの名無しさん:2006/02/20(月) 23:03:47
流れをぶった切ってすみません。

チェックボックスやラジオボタンの表示文字列を二段にすることはできますか?
972デフォルトの名無しさん:2006/02/20(月) 23:56:46
文字列をhtmlで書けば大抵のことはできるよ
973デフォルトの名無しさん:2006/02/21(火) 00:07:21
おお、そうなんですか。
ラベルの文字列は一行にしかできないもんだと、ちょっと諦めてました。

文字列をhtm化というのをやったことないのですが、早速調べてみます。
ありがとうございましいた。
974デフォルトの名無しさん:2006/02/21(火) 00:10:58
>>972
できました!!超ありがとう
975デフォルトの名無しさん:2006/02/21(火) 11:14:21
Swingでボタンを配置した後にそのボタンを押すと画面が終了する書きかたってどうすればいいのでしょうか?
976デフォルトの名無しさん:2006/02/21(火) 12:05:22
disposeってことかな。
「画面が終了」ってのがプロセスを終わらせる事をだとしたら、
DefaultCloseOperationをEXIT_ON_CLOSEにして、disposeとか。
もしくは単にSystem.exit()
977デフォルトの名無しさん:2006/02/21(火) 14:11:03
>>976
どうもありがとうございました。
disposeはよくわからないのでSystem.exit(1)で通りました。
978977です。:2006/02/21(火) 14:14:57
すいません詳しくjavax.swingについて説明されているサイトとかありましたら教えてください
979デフォルトの名無しさん:2006/02/21(火) 14:42:41
980デフォルトの名無しさん:2006/02/21(火) 16:26:59
disposeも理解できなくて大丈夫か?

親画面→子ダイアログと開いた状態で、
子ダイアログを終了させるつもりで、System.exitしたら、
全部の画面が終了してしまうからな。
981デフォルトの名無しさん:2006/02/21(火) 18:20:58
>>980
えっと・・・親画面しか使わないので今のところは大丈夫です。

ちなみにdisposeってどう使うんですか?
982デフォルトの名無しさん:2006/02/21(火) 18:30:23
ウインドウを使わなくなったときに呼ぶ
後始末に必須なのだ
983デフォルトの名無しさん:2006/02/21(火) 19:06:27
>>982
親から子を呼んだときに親を表示しなくするってコトですか?

984デフォルトの名無しさん:2006/02/21(火) 19:47:25
ナニモカモガチガウ!!
985デフォルトの名無しさん:2006/02/21(火) 19:55:21
つ はじめてのJava
986デフォルトの名無しさん:2006/02/21(火) 20:42:06
>>981
親画面から子ダイアログを出したとする。
子ダイアログで、「閉じる」ボタンを押したら、子のダイアログは終了して、親画面に戻るワケだ。
このとき、子ダイアログの「閉じる」ボタンの処理でやるのが、子ダイアログのdispose()。
ここでSystem.exitしてしまうと、プロセスが終了して親画面もろとも終了する

hide()というのもあるが、これは見えなくするだけで、
画面が終了して、ウィンドウが開放されているのではない。

#ちなみにsetVisible(false)ってやると、どっちになるんだろう。。。
987986:2006/02/21(火) 20:47:32
>>986
>#ちなみにsetVisible(false)ってやると、どっちになるんだろう。。。

JDK1.5のjavadoc見てなかった。
show()とhide()は、deprecatedになったのか。ということは、setVisible(false)はhide()だったのだな。
988デフォルトの名無しさん:2006/02/21(火) 20:52:34
そういうこと
終了して破棄するなら

setVisible(false)

したあとに

dispose()

を呼ぶ

あくまでも破棄するのはシステムリソースであってクラスは破棄してないのに注意な
再構築すれば以前の状態に戻る
989デフォルトの名無しさん:2006/02/21(火) 20:56:59
みんな優しいね。
990デフォルトの名無しさん:2006/02/21(火) 21:23:15
>>988
クラスを破壊するのはどうすればいいんですか?deleteって無いし。
991デフォルトの名無しさん:2006/02/21(火) 21:58:37
echo > foobar.class
992デフォルトの名無しさん:2006/02/21(火) 22:40:04
>>990
スコープ出ればいいんだけど、明示的にやるなら
anInstance = null;
で、後はGCまかせ。
993デフォルトの名無しさん:2006/02/21(火) 22:57:59
>>992
なるほど。
994デフォルトの名無しさん:2006/02/21(火) 23:07:18
スコープ抜け直前でnull代入しまくる予感。
995デフォルトの名無しさん:2006/02/21(火) 23:11:34
誰か >>991 に突っ込んでやれよ
996デフォルトの名無しさん:2006/02/21(火) 23:14:34
nullの代入は意味があるところ以外ではやるなよ
あとから追えなくなる

それが必要なときは大抵スコープの設定が悪いだけ
997デフォルトの名無しさん:2006/02/21(火) 23:47:56
998デフォルトの名無しさん:2006/02/22(水) 00:03:30
999デフォルトの名無しさん:2006/02/22(水) 00:36:38
まだ低速か
1000デフォルトの名無しさん:2006/02/22(水) 00:46:53
1000なら掘る
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。