トップページ⇒tech
1001コメント321KB

Java低速GUI Swing 2

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
そんな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
00022NGNG
クライアントサイド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/
0003デフォルトの名無しさんNGNG
[ja]
WisdomSoft - JAVA入門
http://wisdom.sakura.ne.jp/system/java/javax.html
developerWorks - マルチスレッド化Javaアプリケーションの作成
http://www-6.ibm.com/jp/developerworks/java/010427/j_j-thread.html
[en]
Creating a GUI with JFC/Swing
http://java.sun.com/docs/books/tutorial/uiswing/
Threads and Swing
http://www.math.cuhk.edu.hk/TechInfo/JavaTutorial-2/ui/swing/threads.html
The Last Word in Swing Threads
http://java.sun.com/products/jfc/tsc/articles/threads/threads3.html
Painting in AWT and Swing
http://java.sun.com/products/jfc/tsc/articles/painting/
0004デフォルトの名無しさんNGNG
書籍
赤坂玲音著「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/
0005デフォルトの名無しさんNGNG
スレ立ててみたかっただけの>>1は糞ですね
0006前スレであがったリンクNGNG
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/
0007デフォルトの名無しさんNGNG
いらね。SwingはJavaスレで。SWTはSWTスレで。
0008デフォルトの名無しさんNGNG
私、人の話を聞かない>>1みたいな人って嫌いです。
0009デフォルトの名無しさんNGNG
Ruby <<<<<<<<>>>>>>>>>>>>>>>>>>>Swing
0010デフォルトの名無しさんNGNG
Ruby <<<<<<<< AWT >>>>>>>>>>>>>>>>>>> Swing
0011デフォルトの名無しさんNGNG
Ruby <<<<<<<< (^^) >>>>>>>>>>>>>>>>>>> Swing
0012デフォルトの名無しさんNGNG
>>7
SWTもJavaスレで。
0013デフォルトの名無しさんNGNG
StrutsもTomcatもSpringも、Javaスレで。
C#も起源はJavaなんだから、Javaスレで。
.NETもJavaのパクリなんだから、Javaスレで。
デザインパターンもJavaで広まったんだから、Javaスレで。
プロ野球の合併問題も、Javaなら解決してたんだからJavaスレで。
0014デフォルトの名無しさんNGNG
つーかjavaスレ多すぎ
おまえらム板のjavaスレ数えたことあるか?
0015デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1093787515/【Java/C/PHP/他】統合開発環境Eclipse M14
http://pc5.2ch.net/test/read.cgi/tech/1089527630/Java の宿題ここで答えます。
http://pc5.2ch.net/test/read.cgi/tech/1092308415/Javaを莫迦にする香具師は死んだほうがいい
http://pc5.2ch.net/test/read.cgi/tech/1062271447/Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1090653286/Java⇔RDBのMapping-Frameworkを語るThre Vol.3
http://pc5.2ch.net/test/read.cgi/tech/1094860940/【初心者】Java質問・相談スレッド53【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1095398949/Java低速GUI Swing 2
http://pc5.2ch.net/test/read.cgi/tech/1091286071/iモード携帯電話用Java(iアプリ) Part 6
http://pc5.2ch.net/test/read.cgi/tech/1091798483/CLDC+MIDP+携帯電話用Javaスレッド part 3
http://pc5.2ch.net/test/read.cgi/tech/1068377418/「C# vs Java」
http://pc5.2ch.net/test/read.cgi/tech/1054149131/[Java] JBuilder 3.x/4/5/6/7/8/9/10/11/12/.../n
http://pc5.2ch.net/test/read.cgi/tech/1049900193/JavaはC,C++の後継言語となりうるのか
http://pc5.2ch.net/test/read.cgi/tech/1077465099/Java Spring Frameworkを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1078838061/【世代交代】どうしてJavaは死滅してしまったのか?
0016デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1094954163/【Java】Apache Jakarta Commons
http://pc5.2ch.net/test/read.cgi/tech/1088234805/Java 継承 お勧め本
http://pc5.2ch.net/test/read.cgi/tech/1068349883/Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1075035410/初学者が習うといい言語は何?(除PerlとJava)
http://pc5.2ch.net/test/read.cgi/tech/1094891986/【JavaFive】C#からJ2SE5.xへ進化【TigerShot】
http://pc5.2ch.net/test/read.cgi/tech/1094958940/Apache Jakara Project-2.0 【Java】  
http://pc5.2ch.net/test/read.cgi/tech/1032085443/Java言語を勉強していて壁にぶちあたっています
http://pc5.2ch.net/test/read.cgi/tech/1081136781/【A級】Java厨懺悔スレ【戦犯】
http://pc5.2ch.net/test/read.cgi/tech/1091647502/いやマジで、JavaCC すごすぎるって。語れ
http://pc5.2ch.net/test/read.cgi/tech/1081147731/Javaマカ、MSを恐れすぎ(藁 2人目
http://pc5.2ch.net/test/read.cgi/tech/1081698555/【Java】次世代Java・J2SE1.6の動向【Mustang】
http://pc5.2ch.net/test/read.cgi/tech/1080052050/Java系スクリプト言語Groovy
http://pc5.2ch.net/test/read.cgi/tech/1079154487/●●Javaって死滅しちゃうの???? PART8●●
http://pc5.2ch.net/test/read.cgi/tech/1048025463/JDI(Java Debug Interface)について語るスレ
0017デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1068829475/D言語 vs Java
http://pc5.2ch.net/test/read.cgi/tech/1059208396/JSF(JavaServer Faces)【.NET死亡?!!!】
http://pc5.2ch.net/test/read.cgi/tech/1089158103/[無料でラクラクJava帳票作成] JasperReports使い集合
http://pc5.2ch.net/test/read.cgi/tech/1033795664/★お前らJavaはJNIで組もうぜ★
http://pc5.2ch.net/test/read.cgi/tech/995044723/[Java]JBuilder5[Java]
http://pc5.2ch.net/test/read.cgi/tech/1017214967/【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc5.2ch.net/test/read.cgi/tech/1081242461/【議論】Javaに関する野次馬的話題【中傷】
http://pc5.2ch.net/test/read.cgi/tech/1082346861/JavaとC♯.netどちらがコード量が多くなるか】
http://pc5.2ch.net/test/read.cgi/tech/1038118138/【統合】Java開発環境スレ
http://pc5.2ch.net/test/read.cgi/tech/1088259393/未来型Javaへの布石
http://pc5.2ch.net/test/read.cgi/tech/1088835058/土日でできるプログラミングシリーズ4(Java編)
http://pc5.2ch.net/test/read.cgi/tech/1056191116/***Javaのオススメ入門書***
http://pc5.2ch.net/test/read.cgi/tech/1068370977/JavaでVCバリのゲーム開発可能?
http://pc5.2ch.net/test/read.cgi/tech/1081051446/Java=Win32APIオープソ化計画の結論
http://pc5.2ch.net/test/read.cgi/tech/1086238859/Java ネットワークプログラミング 【教えて!】
http://pc5.2ch.net/test/read.cgi/tech/1033703640/【徹底討論】Java3Dの可能性について考える
http://pc5.2ch.net/test/read.cgi/tech/1083480216/Jikes使ってる人いる?【高速Javaコンパイラー】
http://pc5.2ch.net/test/read.cgi/tech/1081086751/ | Java 座談会 |
http://pc5.2ch.net/test/read.cgi/tech/1029407008/【Java】NetBeans vs Eclipse【IDE】
http://pc5.2ch.net/test/read.cgi/tech/1026974531/【C++】2ちゃんねらーはOO嫌い?【Java】
http://pc5.2ch.net/test/read.cgi/tech/1080961057/【ようこそ】 Java1.6=J♯? 【MSワールドへ】
0018で?NGNG
で?
0019デフォルトの名無しさんNGNG
結論
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>..Jab d
0020デフォルトの名無しさんNGNG
乙。
同じように.NET系についてもまとめよろ。
0021デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1083995297/ VisualStudio.NET(MSDN Deluxe) Part13
http://pc5.2ch.net/test/read.cgi/tech/1095325802/ 激安で買えるVisual Stdio.NET theSpoke Disc.8
http://pc5.2ch.net/test/read.cgi/tech/1088812165/ VB.NET質問スレ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1080916113/ 【Whidbey】Visual Studio 2005スレ【.NET 2.0】
http://pc5.2ch.net/test/read.cgi/tech/1080006204/ 【Cマガ】そろそろ.NET Frameworkを始めておこう2
http://pc5.2ch.net/test/read.cgi/tech/1069805286/ 【.NET】荒らし対策自治スレ【WinFX】
http://pc5.2ch.net/test/read.cgi/tech/1023727377/ フリーの.NET統合開発環境「SharpDevelop」
http://pc5.2ch.net/test/read.cgi/tech/1053157149/ VB.NET房をプログラマのレベルまで育てるスレ
http://pc5.2ch.net/test/read.cgi/tech/1040651917/ C、VB、VC++以外の.NETを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1033489735/ ミ,,゚Д゚彡フサギコのフサフサ.NET談話室
http://pc5.2ch.net/test/read.cgi/tech/1080844925/ 【Cマガ】そろそろ.NET Frameworkを始めておこう3
http://pc5.2ch.net/test/read.cgi/tech/1045307942/ VC♯.NET統合スレッド
http://pc5.2ch.net/test/read.cgi/tech/1027559190/ .NET で作られた有名ソフトって何がある?
http://pc5.2ch.net/test/read.cgi/tech/1034785925/ .NET大ブーム9 来年60%? 非クロスバレバレ
http://pc5.2ch.net/test/read.cgi/tech/1056736788/ Visual Studio.NET Academic利用例をあげて下さい
http://pc5.2ch.net/test/read.cgi/tech/1058786955/ 【.NET】C♯Builder Personal update 2【フリー】
http://pc5.2ch.net/test/read.cgi/tech/1055869013/ (・∀・) Visual J .NET 2003 (・∀・)
http://pc5.2ch.net/test/read.cgi/tech/1031758069/ .NET大ブーム5
http://pc5.2ch.net/test/read.cgi/tech/1082255564/ VB.NETばかりではC中心の.NETは普及しなくなる
http://pc5.2ch.net/test/read.cgi/tech/1031580690/ Visual J .NETどうよ?
http://pc5.2ch.net/test/read.cgi/tech/1051594350/ 【企業】.NETが普及すると共産主義となる【人民】
0022だからなに?NGNG
だからなに?
0023デフォルトの名無しさんNGNG
どうせなら名メ本にしろよハゲ
0024留byは最奥言語p!NGNG
lynx -source "http://pc5.2ch.net/tech/subject.txt" | grep -i hoge | wc -l

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



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

誰かついでに、 Java クライアントサイドスレッドもきぼんぬ。
立ててくれるんなら、関連サイトあつめてくるよー。
0026デフォルトの名無しさんNGNG
JMFなんて死んだシロモノ、使ってる香具師が居るのか?
0027デフォルトの名無しさんNGNG
ぅるるるるるるぅううぅうううううびぃいいぃぃぃぃぃぃぃぃぃぃ
0028デフォルトの名無しさんNGNG
JMFってWMVってよめる?
0029デフォルトの名無しさんNGNG
男はだまってQuickTime for Java。
0030デフォルトの名無しさんNGNG
JMFってCODECは固定なのだろうか…?
固定なんだろうなぁ…。
0031デフォルトの名無しさんNGNG
>>30 機構的には固定じゃない。
alphaworksあたりからMPEG4周りで出てた気もするが
それ以外codecを供給しているとこを見たことがない。
0032デフォルトの名無しさんNGNG
コーデックはライセンスで縛られるから難しいよなぁ
mp2までは標準であるがmp3がないとか・・

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

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

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

NetBeans Platform に PropertyPanel というそのものズバリの
部品があるようです。情報ありがとうございまいした。
0043デフォルトの名無しさんNGNG
>>42 公開しているけどライセンス気をつけてね。結構きついよ。
0044デフォルトの名無しさんNGNG
ほらよ。

JIDE Grids is a 100% Swing-based GUI component library focusing on JTable.
http://www.jidesoft.com/products/grids.htm
0045デフォルトの名無しさんNGNG
>>43
どんな感じなの?
0046デフォルトの名無しさんNGNG
http://www.jidesoft.com/purchase/index.htm
高いな。でもすごく便利そうだ。
Jakarta GUI きぼんぬ。
0047デフォルトの名無しさんNGNG
むしろ言い出しっぺの法則で・・
0048デフォルトの名無しさんNGNG
そんな有害無意味な法則持ち出されても。
0049デフォルトの名無しさんNGNG
>>46 ドッキングウィンドウならフリーでもあるよ。

http://www.infonode.net/index.html?idw
0050デフォルトの名無しさんNGNG
>>49
Demoみるとなにげにプロパティ画面もついてるみたいだな
0051デフォルトの名無しさんNGNG
TreeTableが欲しいぞな
0052デフォルトの名無しさんNGNG
GUIエディタ作りたい。すげーやつ。
0053デフォルトの名無しさんNGNG
>>52
jEditみたいなやつ作ってくれ
0054デフォルトの名無しさんNGNG
>>53
jEditってGUIエディタだっけ?
0055デフォルトの名無しさんNGNG
違うねえ。
0056デフォルトの名無しさんNGNG
お前ら、ホントにSwing好きだな
0057デフォルトの名無しさんNGNG
>>56
好きじゃあ ないですヨ
ただ Write once, run anywhere が好きなだけで・・
0058デフォルトの名無しさんNGNG
SWTって低レベル過ぎるし。
0059デフォルトの名無しさんNGNG
Write once, run anywhere って
0060デフォルトの名無しさんNGNG
>>58 そこで、JFace ですよ。
0061デフォルトの名無しさんNGNG
いつもの展開になってまいりました。
0062デフォルトの名無しさんNGNG
遅いTableをラッパーで包んでも速くは為らない罠。
0063デフォルトの名無しさんNGNG
結局SWTがSwingを置き換えるレベルの水準までいってないからな
0064デフォルトの名無しさんNGNG
漏れは Swing 好きだ。
API も LF も好きだ。
遅いのが、ちょっとだけ嫌いだけど、最近は許容範囲だと思っている。

>>54
GUIのテキストエディタですな。
0065デフォルトの名無しさんNGNG
なにより、ツールがないからな。
GUIを手書きで書くのはばからし。
0066デフォルトの名無しさんNGNG
ところで、J2SE5RCでNativeLAF使えるの?
0067Bill JoyNGNG
今のプログラマはパフォーマンスにゃうるせーからナ
「遅いんですよ このプログラム」 きまってこのセリフだ
遅いのはてめーのコードがタコいからなんだよ

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

いえ・・失望したのは自分自身にですヨ・・・・
これほどのクラスライブラリを与えられて
それをプロとしてキチンと使いこなせなかった自分自身に
0069デフォルトの名無しさんNGNG
おもしろくねーですよ。
0070デフォルトの名無しさんNGNG
そういやム板に湾岸スレってなかったな。
0071デフォルトの名無しさんNGNG
これはまだここでは紹介されてないよね?

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

Swingのすばらしさ90%くらい捨てるけどな
0078デフォルトの名無しさんNGNG
J2SE5で実行するべきだ。
0079デフォルトの名無しさんNGNG
5?
0080デフォルトの名無しさんNGNG
>>79
そう。
0081デフォルトの名無しさんNGNG
ニヤニヤ
0082デフォルトの名無しさんNGNG
javaでguiなんかやるんじゃねーよこのバカチンが
0083デフォルトの名無しさんNGNG
J2SE5って、Swing速くなってるの?
VMの起動は速くなってるみたいだけど。
0084デフォルトの名無しさんNGNG
わたしゃ常にJComponentとJava2Dで書いてますが何か?
ボタンだろうがリストだろうがテーブルだろうがお手の物ですが何か?
0085デフォルトの名無しさんNGNG
おれはV2Cは速いと思うが....
Linuxで動かしたら結構サクサクだったのに、Winマシンで動かしたら遅かった、
とかいう話があったようだな。
0086デフォルトの名無しさんNGNG
そうやって、マイクソOSがJavaと名の付くアプリに高負荷を掛けてると
言いたいんですねあなたは
0087デフォルトの名無しさんNGNG
>>86
それをいいたいのはあんただろ。
おれは >>71 のとこにそんなことが書いてあったので書いた
だけだ。

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

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

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

0088デフォルトの名無しさんNGNG
>>87
遅いというやつは1.3以前で動かしてるというオチ
0089デフォルトの名無しさんNGNG
1.4以上じゃなかったっけ?
0090デフォルトの名無しさんNGNG
こういうのは主観だからな。
うちではPenIII750MHz・Java1.4.2でストレスなく使っているが、
これで遅すぎると言う者もいるだろう。
0091デフォルトの名無しさんNGNG
遅いといいたい人にとっては遅い。
残念ながら事実だ。
遅いといいたい人に遅くないと言わせるほどは速くない。
0092デフォルトの名無しさんNGNG
>>87
作者乙
0093デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>
0094デフォルトの名無しさんNGNG
あっちのスレに出張した荒しがいるな
0095デフォルトの名無しさんNGNG
つーかランタイム別途用意する必要のある時点でこりゃつかえねーな、
と思うわけですよあなた
0096デフォルトの名無しさんNGNG
>>95
ランタイム同梱すればいいじゃない?

あとHPやDELLとか大手って意外と標準で1.4入ってる
ブラウザでアプレットが動くようにだろうね
0097デフォルトの名無しさんNGNG
>>95
Javaって、ネイティブアプリとは住み分けができてるものだと思ってた。
0098デフォルトの名無しさんNGNG
アプレットでSwing使ってる人いますか?
0099デフォルトの名無しさんNGNG
そりゃいっぱいいるがな。
0100デフォルトの名無しさんNGNG
CPUよりメモリがネックなんだよなぁ
Javaアプリってかなりメモリ食うから、
128MBで2k動かしてると、どうしてもスワッピングが激しくなる
それで遅くなっちゃうんだよね
一般のアプリがスワッピングしても、たいしてメモリ食わないからそんなに遅くはならんのだけども
0101デフォルトの名無しさんNGNG
2kなら512以上載せとけよ
常識だろ
0102デフォルトの名無しさんNGNG
>>101
最大256MBなんだ・・・どうせ年明けに買い換えるし、しばらくの辛抱だ
0103デフォルトの名無しさんNGNG
今のマシンはXPとはいえローエンドでも256M標準だから
OSで192M喰ったとしてもそれなりに楽だな

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

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

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

JFaceて何?
SWTのラッパってことですか?
0113デフォルトの名無しさんNGNG
Rubyyyyyyyyyyyyyyyyyy >>>>>>>>>>>>>>>>>>> JFあcえ>>>>>>SWRT
0114デフォルトの名無しさんNGNG
>>112
そのリンク先を見ても「JFaceて何? 」とか言っているようでは…絶望的だな。
0115106NGNG
>>109-110
なるほど。サンクスです。
これでawt.dndの方で実装する決心がつきました。
0116デフォルトの名無しさんNGNG
ところでSwing 3年以上使ってるヤツいるか?
いくらなんでも2年使って見切りをつけれないやつは死んだほうがいいと思っているのだが、、

0117デフォルトの名無しさんNGNG
Swig(というかJava)でGUI作ったこと無いんだけど、
どんなのができるの?
Swig製のスナップショットあるサイト知りませんか?
0118デフォルトの名無しさんNGNG
>>116
どういうところが?
っていうか、必死だね。
0119デフォルトの名無しさんNGNG
>>117
例えば
ttp://www.zefhemel.com/archives/2003/12/23/java-studio-creator-screenshot
ttp://v2c.s50.xrea.com/screenshot_win_write.png
0120デフォルトの名無しさんNGNG
Swingの成りすましUIは在日的発想。プゲラ
0121デフォルトの名無しさんNGNG
>>120
プゲラも注目する新Swing、ってことだね。
0122デフォルトの名無しさんNGNG
>>117
とりあえず本家のSwingSightings
ttp://java.sun.com/products/jfc/tsc/sightings/S19.html
0123デフォルトの名無しさんNGNG
V2C使ってみたけど、全く違和感がないね。
重いと思うこともないし。
0124デフォルトの名無しさんNGNG
looking glassが速くリリースされるといいね
0125デフォルトの名無しさんNGNG
>>122
こんなにあるんだ……
0126デフォルトの名無しさんNGNG
>>121
それマルチポストだから
0127デフォルトの名無しさんNGNG
正直、Swingが低速だったのは過去になっちゃったなぁ。
1.4でもだいぶ許せたけど、1.5は全然OK。かくいう俺もV2Cからの書き込みなんだが。
0128デフォルトの名無しさんNGNG
>>119
Swigはこっち。ttp://swig.shibu.jp/
0129デフォルトの名無しさんNGNG
>>127
でも、スレの描画がおかしくなることない?
いままで使ってないからJ2SE5の影響か普通にバグかはしらないけど
0130デフォルトの名無しさんNGNG
んーとたぶん実装のせいだと思うけど、範囲選択はおかしいね。これはn|a氏の修正をマッタリまってまつ。
リフレッシュのタイミングもちょっと変かな?メール欄を中身表示と非表示切り替えたときのリフレッシュがなかったり、
PCがレジュームから帰ったときに再描画がなかったり(これはSwing側の問題かな?)
まぁ、動作は完璧じゃないね。速度が速いから納得してるけど。漏れは。
0131デフォルトの名無しさんNGNG
結論:J2SE5のSwingはバギーで使い物にならない。
0132デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>> Java
Javaなんてうんこ。
0133デフォルトの名無しさんNGNG
Rubyは貧弱杉だろ…HSPと張り合ってるのがお似合い。
0134デフォルトの名無しさんNGNG
>>131
まじそうなのかも。だっておれもV2C使ってるけど、1.4.2(Mac OS X)では
>>130の言っていることが一つも再現しない。
0135デフォルトの名無しさんNGNG
V2C良いんだけど、マック上のJavaでは重いんだよなあ、残念ながら。

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

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

「アプリケーションは、あなたのローカルマシンおよびネットワークに対して無制限のアクセスを要求しています。」
ってきつくない?ブラクラだったら即死?
0139デフォルトの名無しさんNGNG
しかし全権限を要求しないJava WebStartアプリケーションというのを
あんまり見ないのも事実。
0140デフォルトの名無しさんNGNG
そうだったのか。スマソ。じゃいいよ。
0141JavaなんてうんこNGNG
ばーーーーーーーーーーーーか
0142デフォルトの名無しさんNGNG
>>141
なんだと
0143デフォルトの名無しさんNGNG
>>138
ダウンロード版があるんだから、あまり気にしてもしかたないよ。
0144デフォルトの名無しさんNGNG
ネイティブアプリなら承諾さえ求めないんだしね。
特定のフォルダだけアクセスできるモードがあれば便利かも。
0145デフォルトの名無しさんNGNG
秀和システムからVisualEditorの本が出ていたから早速試しているのだが
これはかなりいいね。今までサーバサイドJavaの仕事ばかりやってたので
Swingは敬遠していたのだが、これだけ簡単に作れるのなら面白そうだなと思った
0146デフォルトの名無しさんNGNG
VEで感動しているということはNetbeansではもっと感動するかもね
癖はあるけどまだまだこっちがいろんなところで強い
0147デフォルトの名無しさんNGNG
NetBeansの挙動は頭悪いけどな。
でも、NetBeans4.0でWebサービスが気軽に使えるようになるし、プロファイラも出るし、おもしろい状況になるかも。
0148デフォルトの名無しさんNGNG
おれはNetbeans 4.0beta2使ってパフォーマンスが格段に上がってて感動した。
これかなりいいよ。
0149デフォルトの名無しさんNGNG
このスレの名前どおりSwingを重視だとまだまだNetbeansだな
J2se1.4.2までしか安定版はないのが欠点だが

4.0はあまりに3.6と違いすぎるのも問題が多そうだ
0150デフォルトの名無しさんNGNG
みんなEclipseばっかり使っててNetBeansなんか使ってないからモウマンタイ
0151デフォルトの名無しさんNGNG
もう少し太字の文字をきれいに表示してくれると良いのだけど。
アンチェリはぼやけるだけで余計見にくかったりする罠。
0152デフォルトの名無しさんNGNG
>>151
J2SE5使え。
0153デフォルトの名無しさんNGNG
>>151
捩れる位に同意。


何とかしてくれ、Swing manども!
0154デフォルトの名無しさんNGNG
>>153
J2SE5使え。
0155デフォルトの名無しさんNGNG
>>152
>154
J2SE5ってTrueTypeレンダラ改善されたの?
全然気づかなかったんだけど。
0156デフォルトの名無しさんNGNG
少なくとも、NetBeansの太字はかなり改善される。
アンチエイリアスもきれいになる。
0157デフォルトの名無しさんNGNG
J2SE5って遅くなってない?>Swing
0158デフォルトの名無しさんNGNG
むしろ、NetBeansが軽く動くようになった気がするのだけど。
0159デフォルトの名無しさんNGNG
確かに、5.0 付属の SwingSet2 デモの太字はかなりきれいになっていた
0160デフォルトの名無しさんNGNG
>>157
さわってみたら?
0161デフォルトの名無しさんNGNG
Swingでネイティヴハンドルを取得するのってANIを使わんとできない?
0162デフォルトの名無しさんNGNG
Swingはハンドル持ってるのはFrameだけだからな
あとは自前ですべて処理

もし本当にいじりたいのならAWTのJNIサポートをみてみるといいよ
レンダリングをJNIで処理とかできる
0163デフォルトの名無しさんNGNG
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/awt/1.3/AWT_Native_Interface.html
これのことかな?
0164デフォルトの名無しさんNGNG
ずっといじってきたけどVMのコア自体は1.4から5.0で速度的に大きく変わった点はないかな
1.4.1ではもちろんShift_JIS方面の変更が大きいし、一部ハードウェアアクセラレーションを使った
機能が追加されて体感速度はあがったけどね。

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

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

BufferedImageのキャッシュはやり方知っていれば1.4.2でも適切に処理ができた
それでも敷居が下がったのはいいだろうね
0170デフォルトの名無しさんNGNG
またコピペ厨か
0171デフォルトの名無しさんNGNG
マルチポストじゃないか?
0172デフォルトの名無しさんNGNG
ArithmetricExceptionたんハァハァ(*´Д`)
0173デフォルトの名無しさんNGNG
Swing アプレットで paint をオーバーライドすると
配置したボタンなどが消えてしまいますが、なぜでしょうか?
同じ事を awt ですると消えないです。
0174デフォルトの名無しさんNGNG
>>173
paintComponent(Graphics)をオーバーロードしたまい
0175デフォルトの名無しさんNGNG
Swingはフレームが自前で子ウィンドウの描画をしてるから。
0176デフォルトの名無しさんNGNG
ん?時代はSWTだってのに、まだSwingとか使ってる香具師がいるの?
0177デフォルトの名無しさんNGNG
ん?時代はRCPだってのに、まだ時代はSWTとか使ってる香具師がいるの?
0178デフォルトの名無しさんNGNG
SWTはEclipse専用
Swingとくらべて大幅に早いってわけでもないしな
そもそもカスタマイズしたGUIを作るのが大変
0179デフォルトの名無しさんNGNG
そこでAWTですよ。
0180デフォルトの名無しさんNGNG
Java に wxWidgets を組み込むとか、
そういう計画ってないの?
0181デフォルトの名無しさんNGNG
>>180
http://www.wx4j.org/
0182デフォルトの名無しさんNGNG
>>181
ありがとう。はじめて知ったよ。
これがまともに使えるようになったら Swing も SWT もいらない
ってなことになったりするのかなぁ。
0183デフォルトの名無しさんNGNG
>>182
ならないだろうね。
0184デフォルトの名無しさんNGNG
>>183 どうしてそう思う?
0185デフォルトの名無しさんNGNG
>>184
特に理由は無いよ。
続きはスレ違いだから他所でやってくれ。
0186デフォルトの名無しさんNGNG
>>185
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0187デフォルトの名無しさんNGNG
そういえばwxのスレ加速してるな
0188173NGNG
>>174
ありがとうございます。できました。
原因を聞いておきながら、実は解決策を望んでいたわけです。

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

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

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

俺ならJava2Dで描画部分はまとめるけどね
0194デフォルトの名無しさんNGNG
>>191
> あとの詳しい説明は GUI には関係ないので

そこにある詳しくない説明もGUIには関係ないと思うのだが・・・
ま、オレも普通に1枚のパネルに描画するけどね。
0195デフォルトの名無しさんNGNG
>>191
動きのあるヤツなら、LayeredPaneなどSwingに重なり計算を任せずに
自前で重なり管理してやったほうがよくないか?
# スプライトクラスって誰か作ってないのかねぇ?
0196デフォルトの名無しさんNGNG
>>195
一番作っていて楽しい部分だからみんな自分用にガリガリ書いていると思われ
つーか、Java2D機能豊富で透過指定も余裕だからなぁ
そこまでほしいクラスでもないと思われ
0197デフォルトの名無しさんNGNG
ハードウェアのスプライト機能が使えるなら、必要だね。
0198デフォルトの名無しさんNGNG
Java2Dってハードウェアアクセラレーションつかってるの知らないやついたのか
0199デフォルトの名無しさんNGNG
JOptionPaneのように、
ダイアログを開いて、ボタンを押したときに呼んだ箇所へ値を返す仕組みは、
どのように作ればよいのでしょうか?
0200デフォルトの名無しさんNGNG
>199
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JDialog.html
0201デフォルトの名無しさんNGNG
>>199
難しく考えないで。
いろんなやり方がありますから。。。
0202デフォルトの名無しさんNGNG
Java初心者の質問スレにもポストしましたがスルーされてしまったのでこちらで質問させてください。

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

ttp://taka-2.com/jclass/JProgressBar.html
0206202NGNG
>>203
>>205
をよんでみましたが私がやろうとしている処理ではプログレスバーを動かすことができませんでした。
処理中に画面が固まる。。。
というわけで
Runnableなクラスの中でぐるぐる回しつつ
jProgressBar1.paintImmediately(rectangle);
とかで強引にコーディングして逃げることができますた。お騒がせしますた。
0207デフォルトの名無しさんNGNG
それでいいだろもしかしてイベント中にすべての処理やろうとしてたとか?
0208デフォルトの名無しさんNGNG
SwingのGUI絡みの設定を変える時はinvokeLater()経由しないと駄目だったんじゃ
なかったっけ。
すみませんうろ覚えです。
0209デフォルトの名無しさんNGNG
ワーカスレッドから UIスレッドのUI部品を更新するときには invokeLater は必要
http://java.sun.com/developer/onlineTraining/GUI/Swing1/shortcourse.html#JFCProgress
0210デフォルトの名無しさんNGNG
202はまずスレッドから勉強するべし。
0211デフォルトの名無しさんNGNG
GUIをこれからやるならどの本がオススメでしょう
0212デフォルトの名無しさんNGNG
技術評論社のGUI徹底攻略とか?
0213デフォルトの名無しさんNGNG
>>21
あの変な表紙の本は?
0214デフォルトの名無しさんNGNG
>>211
Java GUIコンポーネント完全制覇
とか
0215デフォルトの名無しさんNGNG
>>213
萌え絵が表紙のやつ?おれは買ったよw
0216デフォルトの名無しさんNGNG
あの萌え絵の本は評判が良いらしく、売り切れてるな。

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

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

値段は高いし、量も多いから読むの大変だけど
図書館に置いてあったから借りて読んでる
まぁ、俺は複数の本を少しづつ読みながら先に進んでるからお薦めという本はない
0226デフォルトの名無しさんNGNG
萌え絵の本って網羅してるのかな
0227デフォルトの名無しさんNGNG
萌え絵の本は網羅まではしてないらしいよ。
ただGUIプログラミング初心者のスタートラインとしては最適らしいぞ。
アマゾンの感想読んだだけだけど....
0228デフォルトの名無しさんNGNG
どれ読んだら良いんだよヽ(`Д´)ノウワァァン
0229デフォルトの名無しさんNGNG
>>228
どれでもいいよ。表紙で選べ
0230デフォルトの名無しさんNGNG
表紙で選ぶと「萌え以外」になるなあ。
0231デフォルトの名無しさんNGNG
お持ち帰りまでが大変だ
0232デフォルトの名無しさんNGNG
0233デフォルトの名無しさんNGNG
萌え絵が表紙の本なんて日常的に買ってるだろ
0234デフォルトの名無しさんNGNG
Java関連萌え書籍スレはここですか?
0235デフォルトの名無しさんNGNG
萌え絵の本って何?
0236デフォルトの名無しさんNGNG
これ?
「Javaアプリケーション作成講座〜Swingプログラミング徹底攻略〜」
http://book.mycom.co.jp/book/4-8399-1386-2/4-8399-1386-2.shtml
0237デフォルトの名無しさんNGNG
それだと >221 にも書いてある...
0238デフォルトの名無しさんNGNG
得ろげー勝ってるってことじゃないの
0239デフォルトの名無しさんNGNG
萌える法律読本は糞だった
0240デフォルトの名無しさんNGNG
みんな、けっこう萌えが好きみたいですねw
0241デフォルトの名無しさんNGNG
2次元好きばっかでしょ
0242デフォルトの名無しさんNGNG
最近は専ら一次元だな。
ただし挿絵は考慮しない。
0243デフォルトの名無しさんNGNG
>>236
その本さぁ…表紙やイラストが萌え絵なのは、まぁどうでもいいが、
WEBブラウザのサンプル動かすと、エロゲメーカーのページに飛ぶのは
止めて欲しいんだが…。
0244デフォルトの名無しさんNGNG
うげ……
0245デフォルトの名無しさんNGNG
1. 今度の仕事はSwingだ。Swing全然知らねーが、でもがんばるぜ!
2. >>236の本を購入。絵がアレだが判りやすいと評判だしな。
3. まずはサンプルをビルド、よし、実行だ。
4. 月猫揚頁猥褻画像
5. 「仕事中に何見取るんじゃゴルァ」
6. 解雇
 ∧||∧
(  ⌒ ヽ  
 ∪  ノ
  ∪∪
0246デフォルトの名無しさんNGNG
禿和良
0247デフォルトの名無しさんNGNG
ひでー本
0248デフォルトの名無しさんNGNG
あれじゃない?
いい本を書いて、萌え系の表紙・萌え系のサンプルにして、萌え系の人じゃないと受け入れられないようにして、萌え系の人だけがSwingわかるようにするという。
そして、萌え系の人がそうじゃない人に対して能力をつけ、世の中を萌え系の人中心で動かす、という巨大なプロジェクト。
将来的には秋葉原に政治の中心を移そうという壮大な計画。
0249デフォルトの名無しさんNGNG
Java萌えヲタ晒しage
0250デフォルトの名無しさんNGNG
毎日コミュニケーションもさー、萌え絵のイラストレーターを一人に絞ってさ、
装丁も統一感だせばいいのにな。
で、本屋の一角に並べる訳よ。そりゃもうオライリーのごとく萌え絵がずらりと。
0251デフォルトの名無しさんNGNG
最悪な発想だな。萌え系とか言ってる奴等はみんな死ねよ。
本屋とかで買ってる奴を見かけると、マジで頭おかしいんじゃないかと思う。
0252デフォルトの名無しさんNGNG
すまない、普通に笑った。

ttp://v.isp.2ch.net/up/bd75889d26d7.jpg
何の本だよ。
0253デフォルトの名無しさんNGNG
レインタソを名乗ってコンピュータ本を出すとは大胆不敵だな。
0254デフォルトの名無しさんNGNG
>>250のアイディアは普通にいいと思った
今の萌え技術書は微妙に萌えきれないイラスト
ばっかりで、なんか買うのが恥ずかしい。
0255デフォルトの名無しさんNGNG
エロ漫画コーナーと間違えられる罠
0256デフォルトの名無しさんNGNG
>>254 >>254 >>254
0257デフォルトの名無しさんNGNG
結局のところ出入りする人間は変わらない罠
0258デフォルトの名無しさんNGNG
日本の技術書は表紙がいまいちなのが多いなあ。
0259デフォルトの名無しさんNGNG
>>236
って内容は良いの?
いいなら普通に読むぞ
0260デフォルトの名無しさんNGNG
本屋のコンピュータコーナーでは、店が独自に萌え本を一カ所にまとめているので
既にコーナー化してるな。
0261デフォルトの名無しさんNGNG
>>259
初心者向けの本としてはかなり良い。
0262デフォルトの名無しさんNGNG
>>261
ありがと、買ってくる
0263デフォルトの名無しさんNGNG
>>262
しつこいようだが、誤変換多発には注意
0264デフォルトの名無しさんNGNG
>>263
横線引いて書き直しますわ
読み終わってもBOOKOFFに売るわけでもないし
0265デフォルトの名無しさんNGNG
>>262
会社で君望ページなど接続してクビにならんようにな。
最近はログ取ってるし。
0266デフォルトの名無しさんNGNG
>>265
なんでAgeのページ飛ぶんだ・・・・
ひょっとして提供とか?
0267デフォルトの名無しさんNGNG
作者の趣味だろ
0268デフォルトの名無しさんNGNG
Swingって、本や解説ページが多いのに使ってる人が少ないな
あとサンプルとか公開したりしてるけど、サンプルしかなかったり…
0269デフォルトの名無しさんNGNG
そりゃもう、低速だからの一言に尽きる。
プログラムを組む側からすれば、すごく便利なんだけど。

0270デフォルトの名無しさんNGNG
浦島太郎キタ━━━━(゚∀゚)━━━━ッ!!
0271デフォルトの名無しさんNGNG
おれはいまや速度の問題はかなり小さくなったと思う。
むしろインターフェースが、ベースOSのものと異なっていたことのほうが大きいと思う。
J2SE 5.0でインターフェースがかなりネイティブ寄りになって良い感じ。
0272デフォルトの名無しさんNGNG
UIマネージャ変えろよw
0273デフォルトの名無しさんNGNG
↑インターフェイス=見た目 だと思ってるバカ
0274デフォルトの名無しさんNGNG
そういっていただけるとありがたいです。
今後の励みになります。
0275デフォルトの名無しさんNGNG
SwingとSWTはどっち勉強した方が役に立つ?
0276デフォルトの名無しさんNGNG
>>275
Swing。
SWTがEclipse以外の用途で生き残るとは思えない。
てゆーか、Eclipseが生き残ったとしても、いずれSWTは
捨てられると思う。
0277デフォルトの名無しさんNGNG
>>275
仕事で使う、または初心者ならSwing。
SWTを仕事で使ってるところは見たことが無いし(将来どうなるか知らんが)、
SWTは造りが非常にC的なんで、初心者には触らせたくない。

趣味でできる限り高速なアプリを作りたい、または既にオブジェクト指向を理解しているか
最初からC厨で影響受けることが無いならSWTでもいいと思う。
0278デフォルトの名無しさんNGNG
じゃあ、今、Java製クライアントを作成するのに使うならどっち。
0279デフォルトの名無しさんNGNG
間違いなくswing
0280デフォルトの名無しさんNGNG
プログラミングの使い勝手的に、SWTはあきらかにSwingに劣るからなあ。
0281デフォルトの名無しさんNGNG
あんなのJavaじゃねえ
0282デフォルトの名無しさんNGNG
AWTが最強
0283デフォルトの名無しさんNGNG
だってそんなこと言ったって、客がSWTがいいって言うんだから。
0284デフォルトの名無しさんNGNG
Swing on SWT
0285デフォルトの名無しさんNGNG
Swingはおくが深すぎる
慣れてくるとどんどん複雑なUIも作れるが・・・
速度調整のほうが大事やね
0286デフォルトの名無しさんNGNG
>>278
仕事なら、RAD環境のあるSwing。
手書きでGUI書くのは、むなしい。
0287デフォルトの名無しさんNGNG
つうかSWT語るならJFaceを忘れるなw
0288デフォルトの名無しさんNGNG
swing使うときにどんなGUIエディタ使っています?
手討ち??
0289デフォルトの名無しさんNGNG
>>273
> インターフェイス=見た目 だと思ってるバカ

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

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

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

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

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


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

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

地味にDB管理ツールがらくだったり
0300デフォルトの名無しさんNGNG
SWTはSWTで問題も多いからなぁ
SWTスレのぞいてみなされとしか
0301デフォルトの名無しさんNGNG
SWT はノキアやモトローラが味方について組み込み向け JFace とか
作るみたいだし、貧弱な実行環境向けでは残るんじゃないかな。
SwingもJ2ME向けにProfile作ればいいのにな。最近のPDAならそろそろ
いい気がする。
0302デフォルトの名無しさんNGNG
テキストエディタでSwingを使うのはおかしいのか…
0303デフォルトの名無しさんNGNG
V2Cの作者はemacsで作ってるとのこと
0304デフォルトの名無しさんNGNG
テキストエディタでGridbag書くのは精神衛生上よろしくない
0305デフォルトの名無しさんNGNG
>>302
おかしいとはいわないけど、量産にはむかない。
0306デフォルトの名無しさんNGNG
>>303
ツールの場合はRADのうまみがあまりないので、問題ないと思う。
業務システムで年端もいかないプログラマにコーディングさせると問題。
0307デフォルトの名無しさんNGNG
画面数少なければ、そりゃ問題ないよな・・・。
0308デフォルトの名無しさんNGNG
>>307
それと、ツールの場合、画面の動的な制御が多いから、RADであらかじめ画面を作れてもおいしくない。
0309デフォルトの名無しさんNGNG
そこでSwiXmlですよ
http://www.swixml.org/samples/index.html

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

…いや、ThinletとかSwingMLでもいいかもしれないんだけどね
0310デフォルトの名無しさんNGNG
NetBeansのフォーム定義XMLからフォームが生成できるエンジンがあってもいいね。
0311デフォルトの名無しさんNGNG
>>309
すごいネーミングのセンスだな。
Xwingじゃだめだったのか?
0312デフォルトの名無しさんNGNG
>>311
Xwingは商標的な面倒に巻きこまれそうだ。
0313デフォルトの名無しさんNGNG
ある意味、宗教的
0314デフォルトの名無しさんNGNG
むしろ宗教そのもの
0315デフォルトの名無しさんNGNG
ちゃんとした現世利益があれば宗教だってかまわんだろ
0316デフォルトの名無しさんNGNG
>>310
それだ!

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

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

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

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

てな感じで。あとはframeつかって好きにしろや、ってことでよろしく。
0321デフォルトの名無しさんNGNG
XMLで別定義とかしたいところだが、特に要望の強いであろう業務系では
イベントとかの嵐だしプロパティをガンガンいじるからなぁ
0322デフォルトの名無しさんNGNG
NetBeansの.formファイルを、
XSLTでSwiXmlに変換して使えるとしたら、
実装はわりと簡単になるよな。
0323デフォルトの名無しさんNGNG
XMLもいいがGroovy(Groovy Markup)はどうかね。
0324デフォルトの名無しさんNGNG
>>323
どんな書き方になるの?
0325デフォルトの名無しさんNGNG
Groovy Markup。Swing以外にも使える。

ttp://groovy.codehaus.org/GroovyMarkup
0326デフォルトの名無しさんNGNG
>>318
現実的な話をすると、OGNLとか式言語を使えるようにして、リスナーを追加できるようにするのがいいのかと。
0327デフォルトの名無しさんNGNG
winlaf 0.5 が出ている。 https://winlaf.dev.java.net/
0328デフォルトの名無しさんNGNG
オススメのビルダー教えてください。
できれば無料ので
0329デフォルトの名無しさんNGNG
もっと勉強してからにしなさい
0330!= 328NGNG
>>329
何を勉強すればいいんですか?
0331デフォルトの名無しさんNGNG
329のように電波ゆんゆんになるための勉強(というか修行)
0332名無しNGNG
そういうことはhttp://shkell.net/でお願いします。
0333デフォルトの名無しさんNGNG
せっかくWindowsのシステムクリップボードにファイルをコピーできるようになったと思ったら
Linuxでは駄目なのね
悪いのは俺なのかJavaなのかLinuxなのか…
0334デフォルトの名無しさんNGNG
>>333
なんの話?
0335333NGNG
>>334
クリップボードはAWTだからスレ違いか
0336デフォルトの名無しさんNGNG
>>333
どっちかというと、「Linux」の名のもとにクリップボードの仕組みを統一できてないLinuxが悪いね。
0337デフォルトの名無しさんNGNG
現状LINUX上でCUIで動いているプログラムにできるだけ簡単に!、
GUIを実装したいのですが何を使ったらよいでしょうか?

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

とりあえずNetBeansいれてぺたぺた貼り付けてみて問題があったらまた質問するがよろし
0343デフォルトの名無しさんNGNG
とりあえず、そのCUIのプログラムって、どんなアプリなんだよ?
0344デフォルトの名無しさんNGNG
Netbeans 4.0正式版が出たぜ!
0345デフォルトの名無しさんNGNG
Netbeans 4.0をいじってて気がついたが、実行コマンドbin/netbeansにMac OS X用に
unameが「Darwin」だったら、てなところがあるんだよな。

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

これNetbeans 3.6のころはちゃんと動かなかったんだよ。しかしDarwinだったら特殊な
プロパティを設定するような起動ロジックを入れるんなら、はじめからこのプロパティも
設定しときゃいいのに....
0346345NGNG
ごめん、投げるところを間違えてるよな...
Netbeansスレに逝ってくる...orz
0347デフォルトの名無しさんNGNG
tableで現在表示されている、可視領域の行のtopのINDEXを取得
する方法ってありますか?
0348デフォルトの名無しさんNGNG
>>347
スクロールバーの値を取得して
JTableのrowAtPointを使えばいいんじゃない?
0349デフォルトの名無しさんNGNG
JTableで、スクロールバーのイベントを捕まえる
にはどうすればよいですか?
0350デフォルトの名無しさんNGNG
>>349
JTable自身はスクロールバーを持たない。
持つのは、JTableをviewに設定したJViewport。
あとはJViewportの持つJScrollBarを拾ってきてあれこれする。
0351デフォルトの名無しさんNGNG
>>347
atmarkit にも ほとんど同じ質問が出てるな。

そーいや Eclipse スレだったか SWT スレだったかで
JTable 使えねーとかわめいてる奴もいたな。
0352デフォルトの名無しさんNGNG
>>351の2行目までと、3行目以降が繋がらないんだが、分裂病もとい統合失調症か何かですか?
0353デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1100324475/550-
0354デフォルトの名無しさんNGNG
質問ですが起動時に最大化するにはどうしたらよいでしょうか?
それと起動時からルックフィールをWindowモードにするのも教えてください。
0355デフォルトの名無しさんNGNG
・起動時に最大化(JDK1.4以降限定)
frame.setExtendedState(Frame.MAXIMIZED);
setStateというメソッドもあるが、アイコン化と通常状態への戻ししかできない。

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

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

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

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

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

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

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

教えてくんですんませんが、よろしくです。
0362361NGNG
自己解決♪

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

でも、これってswingの
障害に見えるのですけど
どーなんですかねぇ???(*´д`*)
0363デフォルトの名無しさんNGNG
>>361
Windows2000SP4 & j2sdk-1.4.2_06 の環境では発生しないんだけど、
そちらの環境はどんな?
0364デフォルトの名無しさんNGNG
環境と例外のスタックトレース晒してくんない?
あと、IME に何をつかってるかにもよるのかも?
WindowsXP + MS-IME
java version "1.5.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)
だと例外は出ない。
0365デフォルトの名無しさんNGNG
結論:MFC使え。
0366デフォルトの名無しさんNGNG
MFCって、広く使われてるクラスライブラリの中では最悪の部類に属するよね。
0367デフォルトの名無しさんNGNG
うん。MFC以下の商用ライブラリを知らない。
0368デフォルトの名無しさんNGNG
そこでAWTですよ。
0369デフォルトの名無しさんNGNG
ここはSwingスレだしAWTやMFCは・・・
0370361NGNG
当方では、1.3.1_01と1.4.1_03で現象が発生することを確認してますね。
1.3.1_01は、以下のVMです。
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01a)
Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)
1.4.1_03は失念です。。。…(;´Д`)

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

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

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

どっちにしろ移行フェーズにはいってるVMだからなんとも
0377デフォルトの名無しさんNGNG
1.3でSwing使うな、っていう考え方だな。
0378デフォルトの名無しさんNGNG
>>377
1.3 で Swing 使うならその程度の不具合があっても我慢しろ、でなくて?
0379デフォルトの名無しさんNGNG
1.3のSwingには重いという最大の不具合が。
0380デフォルトの名無しさんNGNG
>>379
Swing が重いのは 1.3 に限った事ではない。
スレタイにも低速って書いてあるしな。
0381デフォルトの名無しさんNGNG
1.4.1以降でSwingさわってないやつまだいたのか
0382361NGNG
>>372-381

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

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

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

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

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

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

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

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

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

としたけどダメでした。

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

NetBeans>JBuilder>JDev>EclipseVE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





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

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

これは分かる。

>わかると便利だね

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

あくまでも独自LAFを作るためのものだよ
0607デフォルトの名無しさん05/02/17 21:50:56
>>606
マジで?スマン。XMLの例見て勘違いしてた。
XMLからGUIを生成するわけではないのね。。。
>>605は無視してください。
0608デフォルトの名無しさん05/02/17 22:38:18
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/plaf/synth/package-summary.html
あくまでもLAFの自作だね
0609デフォルトの名無しさん05/02/17 22:44:58
レイアウトマネージャの話になぜSynthが出てくるのか分かっていない私。
0610デフォルトの名無しさん05/02/18 00:10:38
すべては>>599が振った話
レイアウトマネージャとLAFは直接的には関係ないかな
0611デフォルトの名無しさん05/02/18 00:18:02
WinXP上でのUIManagerのデフォルトってクラシックスタイル?
なんか俺の目が悪いせいか、そう見えるんだが…。

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

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

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

XP ス タ イ ル な ん だ ?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 JEditorPane ep;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

valueChangedにも同じ内容。

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

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

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

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

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

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

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

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

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

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

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

0817デフォルトの名無しさん2005/04/30(土) 12:25:36
J2SE 5.0 Update 3
http://java.sun.com/j2se/1.5.0/ja/
0818デフォルトの名無しさん2005/05/01(日) 12:13:54
Java質問スレで質問したのですが、回答が無いままdat落ちしてしまったのでここで質問させてください。
この場合はマルチでは無いですよね?

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

http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html
0821デフォルトの名無しさん2005/05/01(日) 15:43:53
>>818

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SwiXml/SwiXAT最高。

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

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

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

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

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

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

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

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

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

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

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

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

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

例えば複数のイメージを開いて編集できるアプリケーションの場合、
「終了」コマンドはアプリケーションで、
「保存」コマンドはアクティブなドキュメントで、
「コピー」コマンドはアクティブなイメージのビューで
ハンドリングしたいのですが、普通はどうやって処理するのか知りたくて、
この辺を解説してるところを探しているのですが、なかなか見つかりません。
0982デフォルトの名無しさん2005/07/16(土) 13:49:53
全部アプリケーションで受けてその後呼び出し。
0983デフォルトの名無しさん2005/07/17(日) 19:22:17
>>972
すげーのは分かったけど、FlashPlayerで解説すんなとも思った。
0984デフォルトの名無しさん2005/07/17(日) 20:31:53
なぜ?
0985デフォルトの名無しさん2005/07/17(日) 20:45:10
JavaのツールなのにAppletじゃないって悲しいことって他にあるかい?
0986デフォルトの名無しさん2005/07/17(日) 21:21:26
アプレットだとVMは言ってないと見てもらえないし広く知ってもらいたいためでは?
それにアプレットではなんでもできるけど、ナビゲーションツールとして
便利というわけではないし、あくまでも3層式アプリ用とわりきってるのだろう
0987デフォルトの名無しさん2005/07/17(日) 21:34:45
こういうプレゼンテーションはFlashの方がよさそうな気もするJava技術者
0988デフォルトの名無しさん2005/07/17(日) 21:45:55
AppletはもうやめてFlexと仲良くやっていこう
0989デフォルトの名無しさん2005/07/17(日) 22:06:53
Flexは細かいGUIとか作るとちと厄介だしなぁ
金もかかるし
0990デフォルトの名無しさん2005/07/17(日) 23:49:43
>>983
適材適所だろ。
0991デフォルトの名無しさん2005/07/18(月) 10:21:13
金槌をもった人間には、あらゆる物が釘に見える。
0992デフォルトの名無しさん2005/07/18(月) 14:28:49
RTFをHTMLファイルで出力することは可能でしょうか?
AbstructDocumentというのが鍵のようで、出来そうな感じなのですが。
0993デフォルトの名無しさん2005/07/19(火) 00:45:39
次スレたてたがや
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
補足よろしく
0994デフォルトの名無しさん2005/07/19(火) 01:45:01
>>993
乙
スレたったときに比べて、Swing復権したな。
0995デフォルトの名無しさん2005/07/19(火) 01:59:28
二木ゴルフをスポンサーに迎えるべき。
0996デフォルトの名無しさん2005/07/19(火) 10:41:58
埋
0997デフォルトの名無しさん2005/07/19(火) 10:42:21
埋
0998デフォルトの名無しさん2005/07/19(火) 10:42:44
埋
0999デフォルトの名無しさん2005/07/19(火) 10:43:08
埋
1000デフォルトの名無しさん2005/07/19(火) 10:43:36
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/l50
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。