Java標準低速GUI 6 AWT/Swingat TECH
Java標準低速GUI 6 AWT/Swing - 暇つぶし2ch112:デフォルトの名無しさん
07/10/16 01:09:07
マルチイメージのフレーム取得なんて標準で出来るじゃん。

113:デフォルトの名無しさん
07/10/16 01:40:30
>>112


114:デフォルトの名無しさん
07/10/16 03:08:55
image I/Oだっけか
確かpngはできないけどgifできたような気がする

115:デフォルトの名無しさん
07/10/16 03:15:32
アニメーションGIF表示するだけなら、ToolkitでloadImageしてdrawImageの最後の引数に表示先コンポーネント指定してやれば勝手にアニメーションする

116:デフォルトの名無しさん
07/10/16 03:15:34
気がする!!!!!!

117:デフォルトの名無しさん
07/10/16 03:55:17
MIDPはするけど、SEやCDCはしなかった気が・・・

>>114
pngのアニメーション仕様なんて画像ビューアーにすら忘れ去られてる存在だから気にしないw
対応してるのは次期Fxくらい。

118:デフォルトの名無しさん
07/10/16 04:03:18
Mozillaの出したAPNGは対応入るのかな?

119:デフォルトの名無しさん
07/10/16 19:04:35
mozillaは標準規格の普及に力入れてるな・・・。
jpeg2000は使われることなく次世代策定中かorz
実際、jpeg2000の拡張仕様まで実装したらPNGどころじゃない超万能規格なんだが。

ウェーブレットいいよ、ウェーブレット!

120:デフォルトの名無しさん
07/10/16 22:07:55
jpeg2000はjpegよりブロックノイズとかの面で優れてるけど
良い面を全部帳消しにするぐらい現在のCPUでも結構重いってのがな……

121:デフォルトの名無しさん
07/10/16 22:17:58
確かにデコード重いな。PNGより重いからな。

122:デフォルトの名無しさん
07/10/16 23:24:27
そろそろJAIのメモリリークは直った?

123:デフォルトの名無しさん
07/10/16 23:33:46
標準APIであるDesktopが動かないバグが放置なのに
JAIがまともになるはずないだろ・・・

124:デフォルトの名無しさん
07/10/17 02:22:17
1.3あたりから無視されてるバグもあるしなぁ

125:デフォルトの名無しさん
07/10/17 14:13:04
それは、Bug Paradeには乗ってるの?

126:デフォルトの名無しさん
07/10/18 08:49:07
さて流れを読まず俺がしょぼい質問する…
JFileChooserのcancelボタンに表示する文字を変えるにはどうすればいい?
ApproveButtonは変えれるのに、キャンセルはなぜ変えれない?

127:デフォルトの名無しさん
07/10/18 11:12:57
自分でダイアログを作って、その中に JFileChooser を放り込んで、JFileChooser のボタンは非表示にして自分でボタンを置くってのでどうだ

128:デフォルトの名無しさん
07/10/18 16:42:55
GUIの部品に日本語使いたくなるの俺だけ?(w

JTextFields 名前 = new JTextField();
JRadioButton 女 = new JRadioButton("女");
JRadioButton 男 = new JRadioButton("男");
JButtonGroup buttonGroup.add(女);
JButtonGroup buttonGroup.add(男);

Javaの変数名はダブルバイト可だし、自然言語風に書くのがスタイルなんだし。

129:デフォルトの名無しさん
07/10/18 16:45:33
下2行まちがえた。
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(女);
buttonGroup.add(男);

130:デフォルトの名無しさん
07/10/18 16:52:32
>>128
ファイルシステムに依存しやすいクラス名と違ってフィールド名やローカル変数は問題は出ないよ

DBでも日本語名のカラムを使うかどうかという話と同じく宗教だから気にすんな
クラス名でつかうのはさすがにとめる

131:デフォルトの名無しさん
07/10/18 17:23:17
文字コードの問題は、機種やOSに依存するからな。
マルチプラットホームのJavaではまさに致命的だし、うかつに手を出せん。

132:デフォルトの名無しさん
07/10/18 17:41:37
変数名で機種依存の問題になるのか?

133:デフォルトの名無しさん
07/10/18 18:21:43
理論上unicodeで表せれば問題ないがフォント側しだいだな。

134:デフォルトの名無しさん
07/10/18 18:24:02
>>132
まあ、無駄に怖がってるのかも試練がな。
だが、linuxなんかで文字コードに苦しんだ俺としては、
少しでもリスクを減らしたい。

135:デフォルトの名無しさん
07/10/18 18:33:24
つーか

変数名に日本語使えるのか!しらんかった!

136:デフォルトの名無しさん
07/10/18 20:23:17
具体的には、
Character.isJavaIdentifierStart(char)
Character.isJavaIdentifierPart(char)
で調べられる。
識別子の頭に使えるかと頭以外で使えるかがチェックできるよ。

137:デフォルトの名無しさん
07/10/19 00:17:38
漢字の変数名はコンパイル通ればOKじゃね?
クラス名はクラスファイルで問題出る可能性があるけど

String 半角カナ = StringConverter.get半角カナ( 全角ひらがな );
氏名フィールド.setText("ほげほげ");
JMenu ファイルメニュー = new JMenu("ファイル(F)");
JMenuItem 開くアイテム = new JMenuItem("開く");
ファイルメニュー.add(開くアイテム);

みたいな使い方もできるから、大胆に使ってみたいんだが、
やっぱりなんか気がひける。w
Java言語のスタイルとしては、ある意味、正しいように思うけど。

138:デフォルトの名無しさん
07/10/19 00:19:14
>>137
入力がうざそうだなぁw

俺カナタイパーだから、IMEオンのままコード打つの難しいし

139:デフォルトの名無しさん
07/10/19 00:20:47
うへぇいちいち入力切替なんてやってられんわ

140:デフォルトの名無しさん
07/10/19 00:33:55
俺もカナタイパーなんだけど、鍛えたんで打つのは苦にならんのよ。w
DOS/VキーでATOKの話だけど、タッチタイプで親指で[変換]キーを叩いて、
全角/半角の切替をマスターしたらけっこう楽に入力できるよ。

チームの中で一人だけ漢字でメソッド名つけたりする人いるのはまずそうだが。w

141:デフォルトの名無しさん
07/10/19 00:39:53
JMenuItemのやJTextFieldの数が増えてきたとき、日本語で書いておくと
けっこういい感じなんだけどね。わかりやすい。
本番で採用したことはないけど。
英語圏の人には災難。

142:デフォルトの名無しさん
07/10/19 00:41:07
>>139
ローマ打ちの人に「面倒じゃない?」ってよく言われる

ローマ打ちの方が遅いから、「平気、っーかよくわかんない」

143:デフォルトの名無しさん
07/10/19 00:41:14
>>137
スマン!気が引ける事もなく最近じゃ普通に使ってる。
プロジェクトとして利用を推進してる。
ホント分かりやすいよ。
>>138-140
補完されるから日本語を全部打つ事はあまりない
>>140 ではないが、Macの流儀に合わせて変換キーで全角モードに入るようにしている

144:デフォルトの名無しさん
07/10/19 00:42:46
>>143
まーじーかー

どうせリファクタリングでゴリっと直せるんだし、挑戦してみようかな

145:デフォルトの名無しさん
07/10/19 00:51:14
>>143
おーっ、勇気あるなーww

Javaはもともとダブルバイトを変数名やメソッド名に許しているんだからして、
そういう作法もありだとSunも暗黙に認めてるってことじゃないかと。
将来には見たこともないフォントで書かれたソースコードが
出てくるような気がするんだよね。

146:デフォルトの名無しさん
07/10/19 00:57:15
>>137のようなコードをあんまり見たこと無いからだろう。
個人的に使う分にはまったく問題ないし。

147:デフォルトの名無しさん
07/10/19 00:58:28
もしIDEでちゃんんと補完が効くのなら入力もそれほど苦じゃないかもね

148:デフォルトの名無しさん
07/10/19 01:20:31
>>145
ちょっと気になったので・・・・フォントと文字自体は、別のものですよ。
見た目と意味、くらいの違いがあります・・・・
老婆心ながら、ちょっと調べておいた方がよいかと・・・

149:デフォルトの名無しさん
07/10/19 01:21:39
メソッド名にはあまり日本語を使いたくないな、気分的にw
Javaを全て日本語で書くとかいう研究がどっかであったけど、
ソースがあまりにもカッコ悪くて、プログラミング言語のほとんどが英語で良かったと思っている

150:デフォルトの名無しさん
07/10/19 01:31:10
アニメーションGIFをImageIconとして読み込んで、JLabelにアイコンとして設定したらちゃんとアニメーションしてくれたのね
で、JLabelを継承して、paint(Graphics g)をオーバーライドしたら、拡大縮小回転を楽しめたんですよ。

ここで質問です。
paint(Graphics g)が呼ばれたときに、
アニメーションGIFの何フレーム目を表示しようとしてるか検出できますかね?

拡大縮小回転のさせたBufferedImageを保存して再利用したいんだけど、
今何フレーム目とかわからないと、再利用できない気がするんだぜ

151:デフォルトの名無しさん
07/10/19 01:50:12
>>149
気分とかカッコいいとかそういった主観に基づい行うもんじゃないだろ。
便利なのか必要なのかどうかで違ってくる。
それも言語仕様でサポートされてるから安心して使えるし。

152:デフォルトの名無しさん
07/10/19 03:48:14
日本語ってなかなかにグルー言語よね

153:デフォルトの名無しさん
07/10/19 07:37:14
>>151
同意!

154:デフォルトの名無しさん
07/10/19 07:46:07
>>148
文意を理解してよw
ギリシア語やタイ語の文字のグリフで変数名が書かれているかもしれないってこと。

155:デフォルトの名無しさん
07/10/19 08:45:12
日本語とハングルを同時表示するには両方に対応しているフォントが必要じゃね?

156:デフォルトの名無しさん
07/10/19 09:44:44
SDCだったかでハングルでコメント入ったソースコードは見たことある。
日本語環境のIDE上で表示できるかどうかはしらんけど。

157:デフォルトの名無しさん
07/10/19 12:18:44
>>140
エキサイト翻訳ででてきた意味不明な英語がはいるよりは漢字のほうがましだと思う
そのアプリは日本国外での開発で、海外で売る気があるのかい?と

数年後メンテをやらなくてはならない場合に
ドキュメントが残ってない場合把握しやすいというメリットもある

DBで日本語の項目名いれてNetBeansなりでJPAを生成でもすれば
日本語名のプロパティが見事に生成されるわけだが、わりとみやすいし
いざとなればリファクタリング一発だから問題はねぇな

158:デフォルトの名無しさん
07/10/19 12:19:33
>>150
とりあえず軽量コンポーネントでpaintそのものをオーバーライドするのやめれ

159:デフォルトの名無しさん
07/10/19 14:17:33
>>157
NetBeansだとGUIまわりのリファクタリングはひっかかるケースが多いけど。

160:デフォルトの名無しさん
07/10/19 14:44:40
Javaのバイトコードって変数名なんかも保存してるんじゃなかったっけ?
変数名に日本語使えばバイトコードにも残るの?

161:デフォルトの名無しさん
07/10/19 15:14:30
UFT8に変換されて残るからソースのエンコーディングがなんであれ問題なし。

162:デフォルトの名無しさん
07/10/19 16:18:19
ローカル変数も残るんだっけか?

163:デフォルトの名無しさん
07/10/19 16:24:36
テストケースのメソッドは日本語がたいへんよろしい。

164:デフォルトの名無しさん
07/10/19 16:26:36
デバッグ情報として残すことも残さないこともできる

165:デフォルトの名無しさん
07/10/19 21:02:52
ローカル変数やGenericsの型指定は残らないと思った。
C#だとGenerics型は残るらしいね。
Javaのはキャストしてるだけってのが理由だろうけど。

166:デフォルトの名無しさん
07/10/19 21:22:05
ローカル変数はフレームごとに領域(とlongとかあるので型のサイズ)だけ
確保されてたはず。


167:デフォルトの名無しさん
07/10/19 21:42:43
どっちにせよ日本語変数は問題なさそうだな

168:デフォルトの名無しさん
07/10/19 22:25:36
>>159
NetBeansのGUIコンポーネントの話はしてないよ
リファクタリングはJPAのほう
GUIのコンポーネントのリファクタリング問題は4.1あたりで直すとか言ってたのだが
絶賛放置中

>>167
なさそうではなくて問題ない
問題が出るとしたらマッピングがおかしい場合だけ

169:デフォルトの名無しさん
07/10/20 00:50:24
>>159
Netbeansは、リファクタリング無しでも日本語が使えないGUIエディタまわりがあるな。
Javaで作って、何でそうなるのか問い詰めてやりたい。

170:デフォルトの名無しさん
07/10/20 04:02:05
そりゃ日本語使ってないやつが作ってんだからそうなるだろ。
使わないものがどうなっていようとそれは仕様です。

171:デフォルトの名無しさん
07/10/20 04:45:28
aho

172:デフォルトの名無しさん
07/10/20 06:30:17
>>170
確かに国際化は意識して対応しないとまともに動かないけど
それってsunは他言語のことなんて知りません、手抜きですって告白してるようなものなんだが

173:デフォルトの名無しさん
07/10/20 06:52:51
Sunは、NetBeansを支援しているだけ。建前上は。

174:デフォルトの名無しさん
07/10/20 21:09:54
国際化で一番ひっかかるとこってどこだろうね。
やっぱフォントまわりかな。
文字列はダブルバイトでも1文字でカウントしてくれるし、
ファイルにはUnicodeで書き出するようにすればてっとり早い。

でもアプリの性質にもよるか。
エディタのように文字を扱うのは問題おきやすいかもね。

175:デフォルトの名無しさん
07/10/20 23:01:36
最近は見なくなってきたけど昔は Reader,Writer を使わずに
InputStream, OutputStreamで処理してる糞アプリや糞ライブラリ
をよく見かけたな…

176:デフォルトの名無しさん
07/10/21 00:04:32
NetBeansの日本語問題は直すつもりがないらしーぜ

177:デフォルトの名無しさん
07/10/21 00:59:58
使ってないから別にいいよ

178:デフォルトの名無しさん
07/10/21 03:01:53
どういうところが糞な

179:デフォルトの名無しさん
07/10/21 03:46:16
URLリンク(videointroplayer.web.fc2.com)

180:デフォルトの名無しさん
07/10/21 06:58:55
>>175
よく見かけるほどJavaアプリがあったのか

181:デフォルトの名無しさん
07/10/21 08:31:45
確に、GUI関係は何とかした方がよい。
Appletもいらない。


182:デフォルトの名無しさん
07/10/21 10:23:38
↑Appletはとても役に立っているから株やってみろ。まったく見識がないところは見逃してやるがなw

183:デフォルトの名無しさん
07/10/21 13:00:16
Appletはこれからだよ~。

184:デフォルトの名無しさん
07/10/21 13:07:28
AppletよりJava Web Startの方がいいように思うんだが、なんか使ってるとこないねぇ……。

185:デフォルトの名無しさん
07/10/21 13:21:20
比べるものじゃなくて、どっちも必要だと思うよ~。

186:デフォルトの名無しさん
07/10/21 14:02:14
Web Startってどういう場合に使うものなの?
アプリ配布じゃ駄目なのか?

187:デフォルトの名無しさん
07/10/21 14:08:52
>>186
バージョンが上がってもユーザーは自分の意志でダウンロードしなくていい。

望めばデスクトップのアイコンやスタートメニューのエントリも作ってくれる(後からでも)。
あたりまえだがアンインストールにも対応してる。


188:デフォルトの名無しさん
07/10/21 14:47:22
つまりバグを大量に仕込んだまま出荷しても、ほとんどのエンドユーザに気づかれずにアップデート可能ということか。

189:デフォルトの名無しさん
07/10/21 15:02:20
組み込み型DBつかってたりプラグインのあるアプリには使えないんじゃないの。

190:デフォルトの名無しさん
07/10/21 15:07:53
>>188
エロゲメーカーにもってこいの機能だな。

191:デフォルトの名無しさん
07/10/21 15:30:05
>>189
普通にローカルファイルだって使えるし、組み込みDBやプラグインだっていける。
Eclipse RCPをJava Web Startで配布することも可能だよ。
URLリンク(help.eclipse.org)

192:デフォルトの名無しさん
07/10/21 16:59:03
Java Web Startか
思い出せるのはV2CとTopCoderぐらい
他にももっと見てきたはずなんだが

193:デフォルトの名無しさん
07/10/21 16:59:35
Looking Glassもそうだったか?

194:デフォルトの名無しさん
07/10/21 17:49:40
>>184
WebStartは配布技術だからWebStartアプレットというのもある
まぁ、WebStartアプリケーションのほうがはるかに使いやすいけど

今のJavaだとWebStartはデスクトップなどへのショートカット、
アプリケーションの追加と削除でアンインストールが出来るなど大幅によくなってるが
スタンドアロンアプリでもショートカットやアンインストールやってほしいのにねぇ

リッチクライアントは不特定多数を相手にしたものではなくて特定のユーザー向けだから
業務アプリとかやってないとあまり見る機会はないかもしれない

195:デフォルトの名無しさん
07/10/21 18:02:05
WebStart普通に便利だしJavaアプリケーションの配布では結構使われてはいるんだけど
そもそもJavaアプリケーションで有名なものが少ないからWebStartの知名度も…

196:デフォルトの名無しさん
07/10/21 18:27:12
今まで俺が使ったJavaのアプリケーションっていったら、
JDiskReportとJudeぐらいかなあ。

197:デフォルトの名無しさん
07/10/21 18:43:27
NetBeansとかEclipseとかIDEAとかJDevはなしか

198:デフォルトの名無しさん
07/10/22 00:17:16
V2Cを忘れて何でここを見てるんだか。

Appletは、JavaQuickStarter使えば劇速になるので
これからまだ延びるかもしれないと思った。
JQSについては、
URLリンク(download.java.net)
URLリンク(jdk6.dev.java.net)
参照。
要は、prefetchです。

199:デフォルトの名無しさん
07/10/22 01:15:18
とりあえずJavaSE6は起動速度、動作速度に関して
進歩のほとんどなかった5.0から大幅によくなってるので
だいぶ未来は明るいと信じたい

200:デフォルトの名無しさん
07/10/27 18:27:01
以下、微妙にスレ違い&手前味噌だけど…晒してみる。

コード署名が必要なJavaWebStartアプリの開発をするときには、
maven2のwebstart-jnlp-pluginを使うと、幸せになれる。
URLリンク(sqs.cmr.sfc.keio.ac.jp)

コード署名証明書の値段が高すぎで買えない!という場合には、
URLリンク(sqs.cmr.sfc.keio.ac.jp)
こちらを。

以下、まだ作りかけ・証明書期限切れですが:

URLリンク(sqs.cmr.sfc.keio.ac.jp)
URLリンク(sqs.cmr.sfc.keio.ac.jp)

前者のほうは、クライアントローカルかつ環境非依存に、
フォント埋め込みPDFファイルを作れるようにするために、
JavaWebStartでIPAフォントを配布して利用している。

後者のほうは、LAN内のマシン複数台を使って分散並列処理が
できるように、JavaWebStartで起動した分散プロセス群が
Pure P2P的に通信して、グリッドを作れるようにしてある。


201:デフォルトの名無しさん
07/10/27 19:46:02
WebStartの場合、おもにB2Bや社内アプリのように相手が特定できる用途がほとんどで
あらかじめ信頼できるように登録しておくという手が普通に使われるんで
あんま問題になってない感じ

202:デフォルトの名無しさん
07/10/27 21:06:36
それは AWT/Swing ネタなのか?
っとか思ったけどム板のJava関連のスレで適切なのってないのな…

203:200
07/10/27 22:29:24
…それじゃ、「Swingでがんばりました」的ネタを投下します。

たとえば、Preferencesを設定するGUIを作るときには、
左画面にJTree、右画面にその選択範囲のエディタを配置する形で、
2ペイン構成のGUIとする場合が多いと思います。
URLリンク(www.sociomedia.co.jp)

でも、この手のGUIで作業をすると、左画面と右画面をマウスで
行ったり来たりするのが、ちょっとわずらわしい。
また、左画面と右画面の関係が直感的に分かりにくい。

そこで、左のJTree画面上で任意の範囲をドラッグして選択できるようにし、
その選択部分のフォーカスが右エディタ画面の該当個所に投影される
ような仕組みを作ってみました。

URLリンク(sqs-xml.sourceforge.jp)
こんな感じ。
高機能GUIコンポーネントとしての再利用性の追求は、
まだ全然やっていないけれど、需要あるでしょうか?
こういう部分を含む全体を、Apache Licenseで開発しています。


204:デフォルトの名無しさん
07/10/27 23:10:27
Preferencesを設定するGUIって普通作らない部類だからなぁ
多いとは思えない

アプリでいくらでも上書きできるから、ちょっとした保存くらいにしか使い道がないと思うんだけど
そういうアプリとなると通常Windowsがメイン環境になるし、設定箇所なんてWindowの位置保存程度だろう
ならばレジストリ直接開いたほうが速い

意味のある値ならばxmlなり別ファイルにするはず
ただし、選んだ部分を一気に出してほしいというインターフェースはわりとある
その場合、右側のペインにもちゃんとスクロールバーつけといてね
特に難しいことではないので高機能ってのがわからんのだが、ここが便利!という売り文句がないと難しいぞ

205:デフォルトの名無しさん
07/10/27 23:13:18
「需要あるでしょうか?」ってのが良く分からんのだけど、
そういうのって自分が必要だと思うから作るんじゃないの?

206:デフォルトの名無しさん
07/10/27 23:25:24
>>204
200じゃないけど
>アプリでいくらでも上書きできるから、ちょっとした保存くらいにしか使い道がない
ってどういう意味?
JavaアプリなのにわざわざWindows依存にしてレジストリが出てくるのも
よくわからないんだけどどういう状況を想定してるのかしら…?

207:200
07/10/28 00:22:19
> 意味のある値ならばxmlなり別ファイルにするはず

っていうか、XMLエディタを作っているのですよ。

> そういうのって自分が必要だと思うから作るんじゃないの?

説明が難しいのだけれど、

階層的な構造をまたいで、
離れた枝と枝を見比べながら編集をするときに、
ちまちまと必要のない枝を閉じて、必要な枝だけを開いて、
画面内に収まるようにしてから作業をするのは、かったるい。

また、階層的な構造をまたいで、
離れた枝から枝へドラッグするときに、
マウスドラッグで画面をオートスクロールさせて
画面の外にある別の枝を探しながら作業をするというのは、
スクロール量の制御がやりにくいし、
うっかり途中でドラッグを放してしまいそうで、危なっかしくてイヤ。

こんなふうに感じるのって、俺だけなのかな?と。


208:デフォルトの名無しさん
07/10/28 00:32:29
>>206
Preferencesの実装としてWindowsであればレジストリを使っている

>>207
>っていうか、XMLエディタを作っているのですよ。
XMLエディタです、とあなたは一言も言ってないのにそんなの他人がわかるかい

209:200
07/10/28 00:49:03
先に、

> たとえば、Preferencesを設定するGUIを作るときには、
> でも、この手のGUIで作業をすると、

と、断っているように、Preferencesを設定することが目的ではありません。
Preferencesについて言及したのは、「この手のGUI」について
問題提起するための、「たとえば」の話です。

また、

> URLリンク(sqs.cmr.sfc.keio.ac.jp)

として、ここで提案しているGUIの動作内容が、
JavaWebStartで実際に動くようなURLを示しており、
これを起動してみれば、Preferenceエディタではなく、
XMLエディタであることは、すぐに分かるのではないかと思います。

で、

> Preferencesの実装としてWindowsであればレジストリを使っている

っていうのは、regeditのこと? あれ、使いやすいですか?


210:デフォルトの名無しさん
07/10/28 01:10:19
D&Dが難しい場合(スクロールが必要とか)は、コピペを使うなぁ。
コピペできるように作っておいてくれないと無理だけど。

> URLリンク(sqs.cmr.sfc.keio.ac.jp)
今作ってるのはツリー表示のとこはD&Dもコピペもできないみたいね
その代わり、ポップアップメニューに便利そうなものがあるけど。

211:デフォルトの名無しさん
07/10/28 01:11:44
なんとかく理解した。
アプリケーションに組込む設定機能を作るコンポーネントの話をしているのに
Preferencesを設定するツールの話をしていると勘違いしているのだな?
それでWindows環境ならPrefenrecesの実装がレジストリだから
レジストリエディタで直接弄ればいいんじゃね?って話がでてきたと…

212:200
07/10/28 01:26:32
Preferencesといえば、Java Preferences APIの、
URLリンク(bugs.sun.com)
このバグに悩まされております…。

WindowsではPreferencesの保存先にレジストリを用いているので、
このバグは出ないのだけど。


213:デフォルトの名無しさん
07/10/28 01:35:21
>>203のスクリーンショット一枚でXMLエディタだとわかる人はそうそういまい。

んでみてると汎用XMLエディタにはみえんね。
だとしたら設定項目用ということならツリー構造を見せる必要もないと思うんだけど。

214:デフォルトの名無しさん
07/10/28 01:38:02
>>212
スレタイ嫁。
それにバグパレードに載ってるんだからバグだろうさ。
お前が悩んでいることをここに報告してどうするつもりなんだ?
それは困ったね、よしよし、と慰めてもらいたいのか?
スレタイに関係のない質問をしたいなら質問スレへ、
何かの課題をやってもらいたいなら宿題スレへいけ。

215:200
07/10/28 01:41:21
>>210

やっぱりコピペだよね。

ところで、階層構造のノードをペースト先とするときには、
「そのノード自身(置き換え)」
「兄ノードとして挿入」
「弟ノードとして挿入」
「子供ノードとして挿入」といったように、
何通りかがあるのだけれど、Ctrl-Vで張り付けるとしたら、
どれをデフォルトにするのが感覚的に正しいのだろう?

ちなみにFreeMindでは、
「ノードのアイコンの微妙に上のほうを指しているときは兄として挿入」
「ノードのアイコンの微妙に下のほうを指しているときは弟として挿入」
「ノードのアイコンの右端のほうを指しているときは子供として挿入」
的なGUIを実現しているけれど、

JTreeでは、getClosestPathForLocationとかだと、
指定したx,yがどのノードに一番近いか、ということしかわからないので、
むずかしい。


216:デフォルトの名無しさん
07/10/28 01:41:41
Preferencesって言葉を初めて知ったw

217:デフォルトの名無しさん
07/10/28 01:48:07
>>215
感覚的には弟として挿入かな
CTRL+SHIFT+Vだったら子供として挿入とかもありかもしらん

218:200
07/10/28 02:33:52
>>214
Preferences APIでの保存先の実装は、
Windowsではレジストリ、LinuxなどではXML形式のファイルとして保存される。
ここでの話題にもビミョーに関連すると思ったので、話のついでに書いてみた。
bug_idを示せば、ほかのひともvoteしてくれるかもしれないし。
でもまぁ、ここはGUIのスレなので、スレ違いですね。ごめん。


これから「汎用のもの」を目指して、
XMLエディタの開発を進めていこうと思っています。

個人的にはSwingというかJTreeというか特にTreeCellRendererの
あたりが好き:-)なので、階層構造を編集するためのGUIコンポーネントを、
ユーザ側・開発者側の両面から、もうちょっとだけ使いやすくする
工夫についても、取り組んでみるつもり。

コメントくれた人、ありがとう。名無しに戻ります。


219:デフォルトの名無しさん
07/10/28 13:08:22
>>215,217
一瞬、VIPスレだっけと思ってしまった俺は病んでいる。

リッチなSwing部品、という点で言うとSwinglabで作ってたりするけど
画面ごとの仕組みを含んだライブラリって決定版がないね。
>>203の仕組みも、そんなに便利かなぁと思う。
左で選んだのが右にタブでどんどん、というのでもいいし
左で選ぶの面倒だから、eclipseなんかみたいに項目フィルタあった方が便利だし。
設定パネルなら、一度に見せる必然性ってあんまないのよねぇ・・・

220:デフォルトの名無しさん
07/10/28 15:02:26
よくあるやりかたとしては、
ウィンドウをSplitPaneで分割したり、複数のウィンドウを開いたりして、
それぞれの画面で、同じ文書の、別の場所を表示できるようにする、
というものがある。

MVCできちんと作ってあって、
同じModelに対して複数のViewを表示できるのなら、わりと簡単に実現できる。

Eclipseとかでは、タブを画面内でドラッグすると、
左右ないし上下での好みのスタイルで画面分割できる。
また、タブを画面外までドラッグすると、
新しいウィンドウを開くことができる。
こうした機能は、操作性もわりといいと思う。




221:デフォルトの名無しさん
07/10/28 15:04:56
Swingでも、JTabbedPaneのタブへのドラッグ動作についての作り込みと、
JToolBarのfloatable機能を組み合わせれば、似たようなことができると
思うのだけど、面倒くさいよな


222:_
07/11/01 18:01:56
//ラベル作成
Border wborder = new LineBorder(Color.white, 1);
JLabel Ac1 = new JLabel("");
Ac1.setBorder(wborder);
Ac1.setHorizontalAlignment(JLabel.CENTER);
Ac1.setBounds(400,100,80,30);
add(Ac1);
// ボタン作成
btnEnter =new Button("追加");
btnEnter.addActionListener(this);
add(btnEnter);
btnEnter.setBounds(150,250,80,80);
//ボタンイベント
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
Border wborder = new LineBorder(Color.black, 1);
Ac1.setBorder(wborder);
Ac1.setText("Push");
}
}

ボタンを押したら指定の場所にラベルが表示されるようにしたいのですが
この方法ではなぜか出来ないのですがどうしてでしょうか
どなたか教えてください

223:デフォルトの名無しさん
07/11/01 18:28:27
>JLabel Ac1 = new JLabel("");

Ac1 がローカル変数だからじゃね
たぶん actionPerformed の中から見てる Ac1 と別物

224:_
07/11/01 18:39:11
どうすればよいのでしょうか?

public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
JLabel Ac1 = new JLabel();
Ac1.setBounds(400,100,80,30);
Ac1.setText("Push");
}

このように書いてみたんですがまったく表示されません.

225:デフォルトの名無しさん
07/11/01 18:55:26
>>224
add(Ac1);

226:デフォルトの名無しさん
07/11/01 22:16:24
>>225
addも書き加えましたが出来ませんでした。

本当に困ってます。
誰か助けてください。

227:デフォルトの名無しさん
07/11/01 22:17:03
全ソースうpれ

228:デフォルトの名無しさん
07/11/01 22:34:06
これなんですがまったく出来ません。
public class Practice extends JFrame implements ActionListener{
Button btnEnter;
public static void main(String[] args){
Practice frame = new Practice();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(50, 50, 900, 700);
frame.setTitle("研究のGUI");
frame.setVisible(true);
}
Practice(){
JPanel p = new JPanel();
btnEnter = new Button("追加");
btnEnter.addActionListener(this);
add(btnEnter);
btnEnter.setBounds(250,120,80,80);
getContentPane().add(p, BorderLayout.CENTER);
appRun();
}
public void appRun(){
}
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
JLabel Ac1 = new JLabel();
Ac1.setBounds(400,100,80,30);
Ac1.setText("Push");
add(Ac1);
}
}
}

229:デフォルトの名無しさん
07/11/01 23:28:35
なんつーかgetContentPaneつかっていたりつかわなかったりばらばらだな
コンストラクタで設定したり、mainの中だったりここも不統一だし

レイアウトマネージャもしらんっぽいね
そこから勉強したらどうかな

230:デフォルトの名無しさん
07/11/01 23:29:40
add(Ac1);
のあとに、画面の再描画させたらええんちゃうかな?

コマンドは忘れた

231:デフォルトの名無しさん
07/11/01 23:30:39
>>229
それや、add(Ac1);の前にgetContentPaneがいるんや

232:デフォルトの名無しさん
07/11/01 23:35:58
たぶん、BorderLayout.CENTER の JPanel に全面覆い隠されてるんじゃないか
JPanel なくしてみ

getContentPane は最近は要らない

233:デフォルトの名無しさん
07/11/01 23:47:16
JPanelをなくすとなぜか画面が全てボタンになってしまいます

add(Ac1);の前にgetContentPaneを書いても変わりませんでした。

どなたかお手数ですがやってみてもらえないでしょうか?




234:デフォルトの名無しさん
07/11/01 23:51:02
じゃあレイアウトマネージャをなくす。

setLayout(null);

235:デフォルトの名無しさん
07/11/01 23:51:29
>>233
だからレイアウトマネージャが基本なんだから勉強してよ
コンテントペインはボーダーレイアウトがデフォで、
パネルはフローレイアウトがデフォってことでしょ?

推奨サイズとかも覚えてください

236:デフォルトの名無しさん
07/11/01 23:53:20
>>234
何も考えずにそれをすると一番難しいんだけどね

JPanelに推奨サイズを指定してpack、
JPanelはnullレイアウトというのならまだわかるけど

setBoundsというのが真っ先に出てきたあたりで何を参考に作ったのかが気になる

237:デフォルトの名無しさん
07/11/01 23:54:50
ButtonをJButtonに変えろよ
こんな形でAWTとSwingを混在させるなw

238:デフォルトの名無しさん
07/11/01 23:56:57
偉そうなわりに、ズバリの回答書く奴いないのがなんとも

239:デフォルトの名無しさん
07/11/02 00:04:29
偉そうな>>238がズバリの回答を待つとしよう
重要なヒントや答えまででてるのにこれ以上何を言うのか楽しみだ

240:デフォルトの名無しさん
07/11/02 00:19:49
ボタンはJButtonにしたら普通の大きさになったんですが
肝心のラベルがボタンを押しても出てきません

ただそれがやりたいだけなのに何故なんでしょうか?
正直どなたか全文を書いていただけないでしょうか?


241:デフォルトの名無しさん
07/11/02 01:33:33
ヒント200%だしてるのにそれを無視して全部おしえるなんてこの板ではあんまりありえん

答えだけがほしければ宿題スレへどうぞ

242:デフォルトの名無しさん
07/11/02 01:52:16
>正直どなたか全文を書いていただけないでしょうか?

つ 練炭

243:デフォルトの名無しさん
07/11/02 01:59:48
>>240
勘違いすんな。ここはくだすれでもないし初心者スレでもない。

244:デフォルトの名無しさん
07/11/02 03:04:48
public class Practice extends JFrame {
 JPanel labelsPanel;
 public Practice (){
  JButton appendLabelButton = new JButton ("ラベルを追加");
  appendLabelButton.addActionListener (new ActionListener(){
   public void actionPerformed(ActionEvent event){appendLabel();}});
  JPanel buttonPanel = new JPanel();
  buttonPanel.setLayout(new FlowLayout());
  buttonPanel.add(appendLabelButton);
  labelsPanel = new JPanel();
  labelsPanel.setLayout(new FlowLayout());
  labelsPanel.setPreferredSize(new Dimension(400, 400));
  add(buttonPanel, BorderLayout.NORTH);
  add(labelsPanel, BorderLayout.CENTER);
 }
 void appendLabel(){
  JLabel helloLabel = new JLabel ("Hello");
  helloLabel.setBorder(BorderFactory.createLineBorder(Color.white, 1));
  helloLabel.setHorizontalAlignment(JLabel.CENTER);
  helloLabel.setPreferredSize(new Dimension(80,30));
  labelsPanel.add(helloLabel);
  labelsPanel.revalidate();
 }
 public static void main (String[]args){
  SwingUtilities.invokeLater(new Runnable(){
   public void run(){
    Practice frame = new Practice ();
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    frame.pack();frame.setVisible(true);
   }
  });
 }}

245:244
07/11/02 03:06:18
>>228
こんな感じでいいのか?
今度から宿題は宿題スレいってくれな?

246:デフォルトの名無しさん
07/11/02 04:17:09
>>24
超マジレスに笑ったw
でもこれがさらっと書けない職業プログラマが多いんだよな・・・

247:デフォルトの名無しさん
07/11/02 07:21:14
自演乙

248:デフォルトの名無しさん
07/11/02 07:37:07
口だけの奴が多い中 >>244 はまともだな

249:デフォルトの名無しさん
07/11/02 07:53:50
というか研究のGUIってなんだw
何を研究したらあんなソースになるのか知りたいw

250:デフォルトの名無しさん
07/11/02 10:19:13
>>228
実行して出てきたGUIにワロタ。センターに足す動けばいい的例。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame {
public Test() {
JButton button = new JButton("Add Label");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
add(new JLabel("Hello, world!"));
getContentPane().validate();
}
});
add(button, BorderLayout.SOUTH);
setSize(100, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test();
}
});
}
}


251:デフォルトの名無しさん
07/11/02 11:34:19
>>246
インナークラスとかAWTイベントディスパッチスレッドとかしらないで
GUI扱おうとしてぼろぼろになる例はよくみるね
特にスレッド周りがぼろぼろくさい

基本を勉強せずOJTという名の下に無理やり投入される場合そうなりやすい
デバッグ時には動いていてもたまに動かないとか厄介なバグいれこむのがうまい連中がね

252:デフォルトの名無しさん
07/11/03 12:38:14
>>200
証明書の有効期限切れてるよ

253:デフォルトの名無しさん
07/11/03 13:58:53
>>252
200で言及済

次回以降、安定版のリリースのときには署名タイムスタンプを使うことにするよ。


254:デフォルトの名無しさん
07/11/04 13:41:02
windowsのJFileChooserとかJOptionPaneでキャンセルが"取消し"って表記されるのがウザい…
windows標準みたいに"キャンセル"って書くにはどうすればいいだろ…

255:デフォルトの名無しさん
07/11/04 13:44:43
よくそんなん気づいたな

256:デフォルトの名無しさん
07/11/04 14:20:13
UIManager.put("FileChooser.cancelButtonText", "キャンセル");
UIManager.put("OptionPane.cancelButtonText", "キャンセル");

257:デフォルトの名無しさん
07/11/04 14:25:19
すごい・・・
いつも思うのですが、そのようなフィールドやプロパティの名前はどうやって調べているのでしょう。
ソースを見るしかないのでしょうか?

258:デフォルトの名無しさん
07/11/04 14:38:37
このへんとか
URLリンク(homepage1.nifty.com)

259:デフォルトの名無しさん
07/11/04 14:59:07
こういうの探してました!
ありがとうございます。

260:254
07/11/04 15:35:25
>>256
ありがとう。
これで見た目ほとんどwindowsっぽくなった。
FileChooserの複数選択をwindowsみたいにドラッグでびやーって範囲広げてその中全選択とかやってみたいけど、
さすがにこれはキツいな。


261:デフォルトの名無しさん
07/11/04 16:10:38
単純なファイル選択ダイアログならAWTのほうつかうといいよ
機能がほとんどないけど、それで足りるのならね

262:デフォルトの名無しさん
07/11/04 16:26:51
ファイルダイアログだけど、WindowsのAWTはなんか見た目がしょぼくない?
MacはAWTは普通だけど、Swingの方がしょぼ過ぎる。

Desktop Java Technology Today TS-3160
URLリンク(developers.sun.com)

ここを見ると、Future Platform FeaturesにNative FileChooserってあるから、そのうち改善されると思うけど。

263:デフォルトの名無しさん
07/11/04 22:26:28
1.
URL url = Hoge.class.getResource("../resources/book.gif");
2.
URL url = ClassLoader.getSystemClassLoader().getResource("../resources/book.gif");

このような2つのコードでリソースを取得しています。
1をHogeクラスで使用するとちゃんとURLが返ってきますが、Hogeのインスタンスであるインナークラスから呼び出すとnullが返ってきます。
しかし2のようにシステムクラスローダから呼び出すと、Hogeからの場合もHoge中のインナークラスからも呼び出すことができます。

そこで質問なのですが、
Q1.インナークラスからの相対パスは、そのインナークラスの属するクラスからの相対パスとは異なるのか(上でいうHogeのインスタンスのインナークラスとHogeクラスの関係)
Q2.上の実行を、eclipseで行うと結果が逆になる(2がうまくいかず、1がうまくいく)のですがその理由。

答えづらい質問ですみません。もしよろしければ教えてください。

264:デフォルトの名無しさん
07/11/04 23:44:44
相対やめたほうがいいでよ
どうせリソースは決まった場所におくでそ

265:デフォルトの名無しさん
07/11/04 23:51:10
確かにそうですよね。
なんだかそこらへん結構複雑そうですし・・
分りました。以後リソース読み込みは絶対指定にします。

ありがとうございました!!

266:デフォルトの名無しさん
07/11/08 01:13:35
今更だがV2Cすげー

267:デフォルトの名無しさん
07/11/09 12:10:05
JOptionPaneに、「次からこのメッセージを表示しない」とかチェックボックス付けたいんですけど、
何かいい方法ないですかねぇ

268:デフォルトの名無しさん
07/11/09 12:14:15
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JLabel("本文"));
panel.add(new JCheckBox("次からこのメッセージを表示しない"), BorderLayout.SOUTH);
JOptionPane.showMessageDialog(parent, panel);

269:デフォルトの名無しさん
07/11/09 12:35:18
>>268
おー、早いレスありがと~。

270:デフォルトの名無しさん
07/11/09 23:36:58

いまからSwingアプリケーションつくるからなんかお題くれ
条件はネット接続しないこと
 
開発環境はJDK6u3、NetBeans6.0
 

271:デフォルトの名無しさん
07/11/09 23:44:52
>>270
Jazzの自動作曲。高品質の楽譜の表示と印刷。

272:270
07/11/09 23:45:27
>>271
勘弁してくれ

273:デフォルトの名無しさん
07/11/09 23:50:42
swing jazzじゃなくてもいいんだが…

swingはあくまでもguiのフレームワークに過ぎないから、
swingでアプリケーションを作るって言っても範囲が広すぎるんじゃないかな?
guiでアプリ作るけど何か無いかなって言うようなものだから、もう少し幅を狭めないと。

274:デフォルトの名無しさん
07/11/09 23:51:07
>>270
ドロー系お絵書きソフト、SVGでの読み書き可能なものを、OSSで。


275:デフォルトの名無しさん
07/11/09 23:51:49
>>271
少しジャンルは違うがヤマハの「初音みく」とか言うの良さそうじゃないか?

276:デフォルトの名無しさん
07/11/09 23:51:56
じゃあ懐かしのブラウザ HotJava を今の技術で作って

277:270
07/11/09 23:54:59
SVGとか仕様しらねー
HotJavaとか初めて聞いたし

Java暦1年半ですがなにか?

278:デフォルトの名無しさん
07/11/10 00:00:39
クリップボードアプリケーションとか。
・・・Swing関係ないかw

279:デフォルトの名無しさん
07/11/10 00:01:59
>>276
JEditorPaneで原型はすぐに作れるね。

>>277
URLリンク(java.sun.com)

>>275
もちろん既にみくみくしてるぜ。
付属のVSTiプラグインをJavaから使おうとかもしているけど中々時間が取れない。

280:デフォルトの名無しさん
07/11/10 00:02:19
>>274
Javaじゃないが、それの本命はinkspaceだろうな。

281:デフォルトの名無しさん
07/11/10 00:04:38
swingの勉強がてらに作るならお絵描きアプリくらいが適当なのかも

282:デフォルトの名無しさん
07/11/10 00:09:38
ローカルファイル閲覧専用とかはアレだし、ブラウザはネット接続って点で270の要求を満たしてないかも。
何かオンリーワンな機能をつけたドローイングかペインティングアプリケーションとかいいんじゃないか?

283:デフォルトの名無しさん
07/11/10 00:16:53
linerみたいな画像ビューア

俺が作ってるのもそれだけどw

284:デフォルトの名無しさん
07/11/10 01:37:42
作りたいの作ればとしか・・・

285:デフォルトの名無しさん
07/11/10 01:38:47
PDFの背景を初音ミクにかえるアプリつくるわ

286:デフォルトの名無しさん
07/11/10 02:27:50
>>285
Swingと関係なくないか?

あとPDFオープンするのに環境依存コード書くはめになるのもちょっと嫌かな

287:デフォルトの名無しさん
07/11/10 02:31:13
まあ、きもちいいネタだ。

288:デフォルトの名無しさん
07/11/10 03:03:23
はやくu4こねーかなぁ
JFileChooserおそくてかなわんわ

289:デフォルトの名無しさん
07/11/10 03:56:17
>>288
だな。死ぬほど遅い。いくつかlazyになるように書き直した。

290:デフォルトの名無しさん
07/11/10 10:20:21
u4 で直ることになってるの?

291:デフォルトの名無しさん
07/11/10 12:52:45
まだin progressの状態。

292:デフォルトの名無しさん
07/11/10 13:47:36
今まで、エディタとプロンプトでしこしこがんばってきたんだけど
金もできたので聞きたいとおもう。GUIつくるだけなら、JBuilderっていい?
無料版はつかったことあるけど、有料版は良いの?

293:デフォルトの名無しさん
07/11/10 13:59:21
今のJBuilderは昔とぜんぜん違うぞ
SwingベースからEclipseベースになった

少なくとも昔のJBuilderはこつをつかまないと
しらないうちにボーランドのコンポーネント使って汚染されて
他の環境で手軽にコンパイルできなくなるのが欠点だった

あとJBuilderはGUI作成においてNetBeansぬいたことはないよ

GUI使う、使わない以前に開発効率考えるとIDE使わないのは論外だと思う

294:デフォルトの名無しさん
07/11/10 14:00:46
>>292
NetBeansでいいんじゃね?

295:デフォルトの名無しさん
07/11/10 14:12:00
>>293-294 thx
NetBeansの方が上なんだ。じゃあそうするよ。

IDE使わないと論外か。。じゃあ、買ってみるよ。

ありがとう。

296:デフォルトの名無しさん
07/11/10 14:37:01
NetBeansは無料のIDEだぞ

297:デフォルトの名無しさん
07/11/10 15:19:43
最近はOSしか買わなくなったなぁ。

298:デフォルトの名無しさん
07/11/10 17:06:09
>>297
まだUbuntu使ってないの?

299:デフォルトの名無しさん
07/11/10 17:27:59
まだUbuntu使ってるの?

300:デフォルトの名無しさん
07/11/10 17:35:40
もうエディタと make でシコシコするのは時代遅れですかそうですか
でも V2C はIDE使ってないらしいね

301:デフォルトの名無しさん
07/11/10 18:02:48
時代遅れも何もそんな時代はあった事がない

302:デフォルトの名無しさん
07/11/10 18:21:57
ツール=IDEでポトペタできて楽ちん
ソフトウェア=IDEがGUI部を隠蔽しててわずらわしい
規模によりけりじゃないかなぁ。

303:デフォルトの名無しさん
07/11/10 18:32:02
IDEはぽとぺたというよりコーディングが楽になるほうがおおきいかと
まぁ、groupLayoutは自前でコードかくきにはならないけど

304:デフォルトの名無しさん
07/11/10 19:39:51
いきなりですまないのだが、JLabelやJButtonを縦書きにする方法ってある?
横長じゃなくて縦長のボタンやラベルを使いたいのだけど。

305:デフォルトの名無しさん
07/11/10 20:43:28
new JLabel("<html>縦<br>書<br>き<br>ラ<br>ベ<br>ル");
new JButton("<html>縦<br>書<br>き<br>ボ<br>タ<br>ン");

306:デフォルトの名無しさん
07/11/10 20:51:00
>>303
そうだよね。補完とかリファクタリングとか使用状況検索とか便利だよね。
GroupLayoutは最初は便利だと思ったけど、弄ってるといきなり位置が
すっ飛んだりして、いまいち使いづらい。よく出来てるとは思うんだけど。
エディタをもっと分かりやすくすれば良さそうだけど、どうすればいいのやら。
最近は、従来のものを組み合わせた方が思ったようにできていいなと思ってる。

>>304
その発想はなかったw

307:デフォルトの名無しさん
07/11/10 20:52:04
>>305
その発想もなかったw

308:デフォルトの名無しさん
07/11/12 14:58:06
90度回転させて縦にできるといいんだけどな

309:デフォルトの名無しさん
07/11/12 17:34:14
SwingのL&Fでかっこいいのないかなぁ。
国外のL&Fを今日一つためしてみたんだが、ダブルバイトが全滅。
URLリンク(regis.risp.pl)
まあ、外観に変化つけるときってフォントいじるから当然かな。

L&Fを自分でこさえるのは手間かかりすぎてそこまで時間とれないし、
MetalのOceanで負けとくのが今のとこ勝ちなのか。orz

310:デフォルトの名無しさん
07/11/12 17:46:49
ニンバスニンニン

311:デフォルトの名無しさん
07/11/12 21:05:59
>>310
おおっ!
なんかすごそうだけど、まださっぱりわからん。
Java SE 6 Update N Early Access Programてのを落としてくればいいのかな。
これそのうちJDKに正式採用されるのかしら?

312:デフォルトの名無しさん
07/11/12 21:11:42
Synthって流行ってないのかね?

313:デフォルトの名無しさん
07/11/12 21:18:14
あれは結局全部自分で定義しなきゃいかんからLFそのものを作りたい人向けとちがうの?

314:デフォルトの名無しさん
07/11/12 21:23:09
そうだけど、ホームページの壁紙やボタン、仕切り線みたいな感じで素材化されてないのかなと。
Javaアプリケーションが普及してないってことか。

315:デフォルトの名無しさん
07/11/12 21:39:08
画像ファイルはりつけたボタンになってしまってもいいの?
アイコンはともかくボタン全体が画像で作られているのはどうも。
融通効かないし。

ボタンが数個しかないアプリとか、ゲームとかならそういうのも良いかと思うけど。

316:デフォルトの名無しさん
07/11/12 22:45:12
>>308
作ってみた

public class VerticalJButton extends JComponent{
private JButton button=new JButton(){
public void repaint(long tm,int x,int y,int width,int height){
VerticalJButton.this.repaint(tm,y,1-x,height,width);}};
public VerticalJButton(String text){
add(button);button.setText(text);
enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK);}
public Dimension getPreferredSize(){
Dimension d=button.getPreferredSize();
return new Dimension(d.height,d.width);}
public void doLayout(){
button.setBounds(0,1-getWidth(),getHeight(),getWidth());}
protected void paintChildren(Graphics g){
Graphics2D g2=(Graphics2D) g.create();
g2.rotate(Math.PI/2);g2.translate(button.getX(),button.getY());
button.paint(g2);g2.dispose();}
protected void processMouseEvent(MouseEvent e){
e=new MouseEvent(button,e.getID(),e.getWhen(),e.getModifiers(),e.getY()-button.getX(),-e.getX()-button.getY(),e.getClickCount(),e.isPopupTrigger(),e.getButton());
button.dispatchEvent(e);}
protected void processMouseMotionEvent(MouseEvent e){
e=new MouseEvent(button,e.getID(),e.getWhen(),e.getModifiers(),e.getY()-button.getX(),-e.getX()-button.getY(),e.getClickCount(),e.isPopupTrigger(),e.getButton());
button.dispatchEvent(e);}}

317:デフォルトの名無しさん
07/11/12 23:11:37

NetBeans5.5.1使ってるんですが、GUIビルダーで質問です

JFrameフォームでフレームをつくり、
別途JPanelフォームでパネルを複数つくります。

アプリケーション起動後に、パネルを好きなタイミングで、フレームにadd()したいのですが、
SwingLayoutの影響でうまくいきません。

なにか特別なやり方があるのでしょうか?
それともGUIビルダーでは不可能なのでしょうか。
 

318:デフォルトの名無しさん
07/11/12 23:46:28
>>316
g2.dispose();

なんだけど、これはpaintComponent()をオーバーライドしたときとか、
Graphicsオブジェクトを使ったあとはかならず実行したほうが良いの?
今までそうしてこなかったのだけど、APIリファレンスみると、
したほうが良いような感じなんだけど、いまいちわかりにくい日本語。

319:デフォルトの名無しさん
07/11/12 23:54:29
少なくともpaintComponentでは不要じゃないかい?
OverrideしなくてもpaintComponentは呼ばれるだろうし

320:デフォルトの名無しさん
07/11/12 23:56:01
>>318
Graphics#disposeでグラフィックコンテクストを開放しないといけないのは自分でそれを確保したとき。
他人が確保したものを許可無く勝手に開放するのは行儀が悪い行い。
paintComponent()をオーバーライドしたときに開放するとかはどこに書いてあったの?

321:デフォルトの名無しさん
07/11/13 00:08:10
>>320
dispose
public abstract void dispose()このグラフィックスコンテキストを破棄して、使用中のシステムリソースがあればそれを解放します。
Graphics オブジェクトを dispose の呼び出し後に使用することはできません。
Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
ガベージコレクタのファイナライズプロセスも同じシステムリソースを破棄しますが、関連するリソースを手動で解放することが推奨されます。
つまり、長期間に渡って完了まで実行されない可能性があるファイナライズプロセスに依存するよりも、
このメソッドを呼び出してリソースを手動で解放してください。

コンポーネントの paint メソッドと update メソッドに引数として提供される Graphics オブジェクトは、
こうしたメソッドが復帰したときにシステムによって自動的に解放されます。
効率性を確保するには、Graphics オブジェクトがコンポーネントまたはほかの Graphics オブジェクトから直接作成された場合だけ、
そのオブジェクトを使って終了したときに dispose を呼び出すようにプログラミングしなければなりません。
-----------------------------------

ということらしいんだが、dispose()不要のような必要なような、ケースバイケースのような
説明に読めたのよ。スマソ。

322:316
07/11/13 00:12:45
>>318
その g2 は g の単なるキャストじゃなくて、 g.create() で生成したものだから。
放っておいても害はないけど、解放するべきなんじゃない?

323:デフォルトの名無しさん
07/11/13 00:15:10
>コンポーネントの paint メソッドと update メソッドに引数として提供される Graphics オブジェクトは、
>こうしたメソッドが復帰したときにシステムによって自動的に解放されます。

Graphics g = createGraphics();
//--->呼び出し
paintComponent(g);
//<---復帰
g.dispose();

こういうことでしょ。きっちり書いてるじゃん。

324:デフォルトの名無しさん
07/11/13 00:17:35
>>322
いやだからさ、おかしいなんていってないよ。
g.dispose()と書かれたソースを今までみなかったのだけど、
開放しといたほうがいいのかななどと思ったの。

325:デフォルトの名無しさん
07/11/13 00:18:32
これってどういう意味?

> Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。

326:デフォルトの名無しさん
07/11/13 00:22:01
>>323
paintComponentについては暗黙の了解?
説明としては抜けてる。ソース嫁といわれりゃあっそう。

327:デフォルトの名無しさん
07/11/13 00:34:39
>>326
paintComponentについてはJComponentのドキュメントを読めば理解できるかと。

328:デフォルトの名無しさん
07/11/13 00:36:15
>>321
それ勘違いしてるぞ
ファイナライザとか関係ない

329:デフォルトの名無しさん
07/11/13 00:42:26
何でよ

330:デフォルトの名無しさん
07/11/13 00:43:16
なんでφならいざが?

331:デフォルトの名無しさん
07/11/13 01:08:35
>>310-311
Nimbusはイメージを使わずに、すべてJava2Dで書かれてるから、解像度に依存しないのがいいよね。

332:デフォルトの名無しさん
07/11/13 01:13:28
>>316
動作確認してみた。いいね!
やり方もエレガントだと思う。
アイコンもついてたら完璧かも。

333:デフォルトの名無しさん
07/11/13 01:25:17
>>331
うん。

作ってるアプリが終盤で、外観の体裁ととのえてるとこなんだけど、
今無理してL&Fいじくるより、Nimbusが標準になるまで待ったほうがトクだろうなぁ。
L&Fを自分で作ったりカスタマイズしてももすぐに時代遅れになるしね。
Metalも出てきた当時はけっこうクールに見えたし。
L&Fは服きせかえるみたいに使い捨てていきたい。

334:デフォルトの名無しさん
07/11/13 01:46:39
disposeは後始末
自前でgraphicsを生成した場合必須

ファイナライズの話はFileのIOをcloseしないというのと同じ話

そしてかってに呼び出し側でcloseしたらあかんだろというのと同じ

335:デフォルトの名無しさん
07/11/13 20:01:22
>>325
> Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。

いっぱい作成できると、なんとなく、うれしいジャン?
とりあえず、「多数の Graphics オブジェクトを作成する可能性があります」の誤訳に一票

336:デフォルトの名無しさん
07/11/13 20:14:10
久しぶりに覗いたぜ。

invokeLaterはinvokeLater間違えてAWTのSystem Queueに送ったことあるorz
MIDPのGraphicsにdisposeがなくてどうやってメモリ空けようか悩んだことがあるorz

Nimbusのマルチバイト化けは直ったらしいがあれ重くないか?スケーラブルなLaF目指してるんだろうけど・・・。
ただでさえ、未だにjavaは重いという迷信が信じられてるからなぁ。

337:デフォルトの名無しさん
07/11/13 20:18:53
迷信というかJFileChooserは今でもひどくない?
ファイル多いとファイルリストの取得とは別の何かで重くなってる印象が・・

338:デフォルトの名無しさん
07/11/13 22:27:10
>>337
JavaSE6u2からすごいことになった
どうすればあそこまで悪化できるのかと

339:デフォルトの名無しさん
07/11/13 22:52:07
>>338
今はソース見れるんだから自分で調べられるよ

340:デフォルトの名無しさん
07/11/13 23:51:12
今OpenJDKで公開されてるソースと今公式ビルドに使われてるJDKのソースは違うぞ。
jdk6がOpenJDKベースになるのはまだ先。

341:デフォルトの名無しさん
07/11/14 00:16:14
>>339
そういう意味じゃないだろ

342:デフォルトの名無しさん
07/11/14 03:38:43
>>337
今までひどすぎるとまでは感じなかったんだが、そんなにたくさんのファイルリストを
出すという局面に遭遇してないだけだったりする。
100個くらいリストが出ててもなんともないと思うんだが、いくつくらいだとひどいことになるの?

343:デフォルトの名無しさん
07/11/14 07:17:29
なんでファイル列挙系はバグが入りやすいんだろうな。
なんか共通したミスでもあるんだろうか?

344:デフォルトの名無しさん
07/11/14 07:27:12
ネットで調べると、でかい圧縮ファイルがあるとおかしくなるらしいね

345:デフォルトの名無しさん
07/11/14 09:30:48
>>336
7年後サクサク動くニンバスみて、軽いけどもう古いよなこのLaFとかいってるような気がすれ

346:デフォルトの名無しさん
07/11/14 09:32:31
ニンバスかっけぇんだけどさ、どうもスクロールバーが馴染めない…

347:デフォルトの名無しさん
07/11/14 09:47:09
文字はみんな□になってるけどSwingSet2のデモみるかぎり、遅いとは感じないな。Nimbus。
そんでこれいつからリリースされるのかな。

348:デフォルトの名無しさん
07/11/14 12:36:16
>>342
u2以降は1個の表示でもすごい遅い
u1まではさくさく

まぁ遅いといわれたり直ったりエンバグ繰り返してるのがJFileChooserだから・・・

349:デフォルトの名無しさん
07/11/14 16:43:44
JFileChooserはネイティブ頼りなんだっけ?エンバグの発生率は仕方ないと思う。

350:デフォルトの名無しさん
07/11/14 17:18:38
デスクトップのzipをどけると改善するみたい。開発で頻繁にテストする人はzipを
一時的にどけておくといいかも。

351:デフォルトの名無しさん
07/11/14 19:29:57
つーことは、JFileChooserはファイルの中身を調べるようなことまでやってるのかな。

352:デフォルトの名無しさん
07/11/14 19:34:34
Windowsのエクスプローラとか、Javaのクラスパス解決処理みたいな
どっかのAPIを流用したことによる副作用とかいうオチだったらちょっと笑える

353:デフォルトの名無しさん
07/11/14 19:45:28
DirectXでIMEの例があるから笑うに笑えない・・・。

354:デフォルトの名無しさん
07/11/15 16:57:27
>>351
実行形式の場合、そのファイルのリソースとしてアイコンが格納されているんだから、
API経由か直接かは知らんけど、当然ファイルの中身は見てるはず。
で、PEとかELFとか、実行形式のフォーマットを決め打ちできない分、
アイコン読み取りが複雑になってるんじゃなかろうか。

355:デフォルトの名無しさん
07/11/15 17:06:04
JFileChooserのアイコンってFileSystemView#getSystemIconでしょ
これが遅いってことか?

356:デフォルトの名無しさん
07/11/15 21:18:41
>>354
つまり世の中のGUIは全てファイル選択ダイアログは遅くて使い物にならない、と
それにu1まではそんなに遅くなかった
1.4.2はいくつかのバージョンが遅いけど

357:デフォルトの名無しさん
07/11/15 22:11:41

URLリンク(sourcepost.sytes.net)

質問です
イベントでコンポーネントを追加したいんですが、追加と同時に表示させるにはどうすればいいんでしょうか?
repaint()ではダメみたいです
 

358:デフォルトの名無しさん
07/11/15 22:19:39
>>357
jPanel1.revalidate()

359:デフォルトの名無しさん
07/11/16 00:00:48
ああ、Swingか・・・。

360:デフォルトの名無しさん
07/11/16 00:51:25
>>357
HelloボタンをaddしたあとでMyFrame#pack()を呼ぶ

361:デフォルトの名無しさん
07/11/16 01:08:45
追加はされてるけど、flowレイアウトで1つしか表示できないサイズだから消えてるようにみえるだけ
>>358で正しいよ

362:デフォルトの名無しさん
07/11/16 01:24:19
revalidateだけでは>>357のソースでは「追加と同時に表示させる」ことにはならないから>>360で正しいよ。

363:デフォルトの名無しさん
07/11/16 01:27:07
>>362
おまえはバカか
それはレイアウトマネージャの問題であってrevalidate()で十分尽くされているんだから358が正しいんだよ

364:357
07/11/16 01:31:12
レス感謝です

>>361
revalidate()って意味ありますか?
revalidate()せずに、pack()だけで思い通りに表示されました

365:デフォルトの名無しさん
07/11/16 01:39:53
>>364
いろいろ作っているうちに分かるよ。pack()でレイアウト変更後の再描画なんてよっぽど
異常なUIでもない限りやらないよ。pack()の方でフレームを広げてボタン押してみ。

366:357
07/11/16 02:01:39
たとえば、ウインドウを最大化してるにも関わらずpack()でウインドウが小さくなるのはおかしいということでしょうか?

367:デフォルトの名無しさん
07/11/16 02:33:01
それでいいならいいけどさ。

368:デフォルトの名無しさん
07/11/16 03:04:30
JFileChooser パフォーマンス問題
URLリンク(blogs.sun.com)

369:デフォルトの名無しさん
07/11/16 05:59:08
jdk6uN b07では直ってるらしいよJFileChooser問題
URLリンク(download.java.net)

370:デフォルトの名無しさん
07/11/16 06:06:06
>>369
Bug ID: 6578753
Votes 65
Synopsis JFileChooser in 6u2 slow on Windows
Category java:classes_swing
Reported Against
Release Fixed
State In progress, bug
Related Bugs 6491795 , 5050516
Submit Date 10-JUL-2007

371:デフォルトの名無しさん
07/11/16 09:37:29
アプリの二重起動についてなんだが、二重起動を確認したらそこでシャットダウン
するのはよくある方法だと思うんだけど、たとえばNetBeansはもっと賢いやり方
をしている。

NetBeansが動いている状態で、それが最小化した状態でタスクバーにあるとする。
その状態でNetBeansのアイコンをクリックするなりして二重に起動しようとすると、
二重起動にはならずに、タスクバーにあるものが画面に現れる。
これってどうやったらできるのかな・・・。

372:デフォルトの名無しさん
07/11/16 10:52:18
>>371
Javaにはミューテックスなかったっけ?

373:デフォルトの名無しさん
07/11/16 11:34:11
排他制御用のオブジェクトは同一VM上の同期に使うやつで
プロセス間は別の仕組み考えないとダメ。

374:デフォルトの名無しさん
07/11/16 11:36:21
>>371
起動用のアプリを別に分ける。
というか、そのためにexeを用意しているようなもん。

375:デフォルトの名無しさん
07/11/16 11:55:44
んじゃあ手動でミューテックス作っちゃうとか。
テキストファイルで現在起動中のプログラム・インスタンス数を数えておいて、
起動時に中身が1なら起動しない。
もし>>371のいうような挙動をしたいなら、プログラムでミューテックスファイルを監視しておいて、
ファイルの中身が2になった瞬間タスクバーからプログラムを出せばいい。

ここまで書いて思ったんだが、Swingでタスクバーから出すとかそういうそうさって出来たっけ?

376:デフォルトの名無しさん
07/11/16 12:02:05
自プロセスのウィンドウを最小化解除するだけなら Frame#setState でできる

でもそのファイルを監視ってのはどうするんだ
タイマで1秒ごとにタイムスタンプを確認するとかか

377:デフォルトの名無しさん
07/11/16 12:09:54
>>376
ファイルやフォルダで変更があったときにイベント起こすような機能なかった?

378:デフォルトの名無しさん
07/11/16 12:13:16
>>377
NIO2で追加予定。
標準APIでなくてもいいなら、JConfigとかには付いてたと思うし
>>376のやり方で自力で実装してる人も多いんじゃないかと。

379:371
07/11/16 19:25:50
一眠りして考えたんだが、
アプリが独自にポート開いて監視しておく。
別プロセスでアプリが起動したら、そのポートを叩く。
応答が返ってきたら、そのプロセスはシャットダウン。
応答した側のプロセスはFrame#setState
でいけそうな気がするんだが、けっこうめんどくさいね。
もっと簡単にできないもんだろか。

380:デフォルトの名無しさん
07/11/16 19:36:00
Windowsファイアウォールとかにブロックされそうだが

381:デフォルトの名無しさん
07/11/16 19:48:42
ファイルサーバとかでもたまに思うんだけど、
OSはロックサーバが標準で付いててほしいんだよな
CVSのロックサービスだってそのためについてるんでしょ。

AbstractFactoryパターンでインタフェース書いて、Winだけ実装作ろうかな

382:デフォルトの名無しさん
07/11/16 20:36:05
Preferencesを使うってのはどうかな。

383:デフォルトの名無しさん
07/11/16 20:42:19
URLリンク(sdc.sun.co.jp)

# 複数の VM による同時アクセスを、この API でより強力にサポートしないのはなぜですか。
同様に、複数の設定の更新を結合して単一トランザクションに組み込み、
すべて更新するかまったく更新しないセマンティクスを適用しないのはなぜですか。

この API は、持続性のある基本的なデータ記憶域として使用し、データベースの代わりとしては使用しません。
この API は、標準の設定/構成リポジトリ上に実装できるようにすることが重要です。
これらのリポジトリのほとんどでは、データベースのような機能は提供していません。
これらのリポジトリは、この API の設計目的を満たしています。

384:デフォルトの名無しさん
07/11/16 22:05:37
>>380
ファイアウォールの設定はユーザの責任じゃないかい。

385:デフォルトの名無しさん
07/11/16 22:08:21
なんにせよファイルにフラグを記録するやり方だと、アプリが異常終了して、
フラグの書き換えができなかった場合、次に起動しようとすると困ったことに
なりやすい。

386:デフォルトの名無しさん
07/11/16 22:10:30
プラットフォームネイティブのMutexやセマフォを使うか、
オンメモリデータベースを使うってのがいいのかも。

387:デフォルトの名無しさん
07/11/17 01:29:41

ファイルチューザ同等の機能を持つファイルチューザを独自に作る場合、
こうやらねーとすっげー遅くなるぜ?っていうTips教えてくれ
 

388:デフォルトの名無しさん
07/11/17 02:04:22
>>387
普通に作れば遅くならんだろ…
JFileChooserはネイティヴLaFに近づけるために
いろいろ細工してるのが裏目に出てるだけだと思うぞ

389:デフォルトの名無しさん
07/11/17 02:25:54

URLリンク(touch.moe.hm)
こんな上下2ペイン構成のGUIアプリケーションを作りたいと思ってます

上ペインのJButtonをクリックすれば、下ペインのJPanelが切り替わるように作ればいいと思うんですが
普通どのようにやりますか?

■作ったサンプルではこのようにしてます
 初期化で空のpanel1をつくり、その上にpanel2をadd()する
 別のボタンが押されたら、panel1に載っているpanel2をremove()、panel3をadd()、validate()


ちょっとわかりづらいかもしれませんが、もっといいやり方ありそうでしょうか

390:デフォルトの名無しさん
07/11/17 02:29:27
っ CardLayout

391:デフォルトの名無しさん
07/11/17 02:39:43
TabbedPaneで、タブにアイコン貼付ければいいような気がした。

392:デフォルトの名無しさん
07/11/17 04:22:23
>>390
使ったことないけどカードレイアウトに同意

393:デフォルトの名無しさん
07/11/17 05:09:46
>>388
Fileが遅くなってるから、普通に作ったら遅くなるよ。
しったか乙。

394:デフォルトの名無しさん
07/11/17 05:12:23
JFileChooserの速いバージョンを作りたければ、FastFileを使うといいよ

395:371
07/11/17 10:35:15
>>379のやり方実装してみたけど、うまくいくみたい。

396:デフォルトの名無しさん
07/11/17 10:40:08
>>395
やってみた事ないけど、
途中でトラぶってコネクションクローズの前に死んだ場合は二重起動しちゃうの?

397:デフォルトの名無しさん
07/11/17 10:44:33
>>396
ローカルホストの接続でとらぶるって、どんなときにとらぶるかな。
そこらへんの想定外のことがあるかどうかは気にはなってんだけど。

398:デフォルトの名無しさん
07/11/17 10:54:59
>>397
他のアプリがそのポートを使っていて重複する場合

ファイアーウォールが入っていてはじかれる場合

今どきめずらしいけどLANがついてないマシンだとどうなるっけ?

399:デフォルトの名無しさん
07/11/17 15:21:39
> 今どきめずらしいけどLANがついてないマシンだとどうなるっけ?

頭大丈夫か?

400:デフォルトの名無しさん
07/11/17 17:21:11
スタンドアロンのPCがあるからネットワークサービス止めて試してみようか?
たぶん、接続段階で例外投げられたはずだけど。
jarでクレw

クローズ処理をfinalyでやってるなら途中でシャットダウン入るとfinalyブロック中断されるからそれでもアウトだね。

401:デフォルトの名無しさん
07/11/17 17:46:33
イーサネットがあってもなくてもlocalhost(127.0.0.1)にアクセスできるだろ…
# TCP/IPを外してあればできないのか?

402:デフォルトの名無しさん
07/11/17 17:49:59
ネットワーク完全にとめるとループバックももちろん完全にだめ
Win95以前はまずループバックアダプタいれての開発がデフォだったな

403:デフォルトの名無しさん
07/11/17 17:56:04
そういうアダプタ用MACアドレスもあるのかな?別に無くても困らないけど。

404:デフォルトの名無しさん
07/11/17 18:15:28
>>402
そもそも Win95 ってデフォルトのインストール
だと TCP/IP が組込まれてないようなOSだろ…

405:デフォルトの名無しさん
07/11/17 18:27:56
独自のネットワークサポートするから良いんです。

ゲイツ「インターネットなんて一般人にはやんねーよw」

時代の産物だからな。時代の流れか。

406:デフォルトの名無しさん
07/11/17 20:13:33
JDK1.5がそもそもWin95だともう動かんのじゃね?
とくにGUIまわり。

407:デフォルトの名無しさん
07/11/17 20:40:37
URLリンク(java.sun.com)
Win95はサポート外だね

408:デフォルトの名無しさん
07/11/17 20:43:39
サポートの話なんて誰もしてないだろと

409:デフォルトの名無しさん
07/11/17 21:24:54
設定でTCP/IP無効にしたらダメなんじゃねぇの?

410:デフォルトの名無しさん
07/11/17 21:57:44
アプリの性質にもよるわな。
DBやネットに接続するようなアプリなら、イーサカードが使えない環境に
インストールされることなんて無いしさ。

411:デフォルトの名無しさん
07/11/17 22:11:04
「カードがない環境ではlocalhostもアクセスできない」
というのが当然みたいにいってるが、だれか試したことがあるのか?
その理屈だとNICがない環境ではローカルでのサービスは動かんのだが。

412:デフォルトの名無しさん
07/11/17 22:53:06
>>411
NICないと実際IPサービスはうごかんよ
ループバックいれてれば動くが

という常識的な流れだろ

413:デフォルトの名無しさん
07/11/17 22:57:37
>>407
あんまり関係ないけど・・・、SunはMacのJVMはやってないんだね。
Macはどこがやってるんだろ。Macユーザじゃないからうといんだわ。

Winが80%をしめてるといわれるわりに、周囲にはMac使いが多くて、
じゃあその人たちにも使えるようにとJavaで作り始めたんだが、
肝心のSunはサポートしてないんだね。

414:デフォルトの名無しさん
07/11/17 22:59:52
まあいいじゃん。今時カード入ってないマシン使ってる人なんて
ごくごく少数。クレームついても仕様ですで押し通せば。

415:デフォルトの名無しさん
07/11/17 23:02:33
>>413
Macはアップルがやってる
6がまだ出てこない…

416:デフォルトの名無しさん
07/11/17 23:11:12
>>415
そうなんだ。ありがーと。
6をはやくだしてほしいわ。5で動くようにと思ってたんだけど、
6を知るとついつい6の機能を使ってしまったような・・・

417:デフォルトの名無しさん
07/11/17 23:43:28
NetBeans6 + JavaSE6 + glassfish2の組み合わせの軽さは異常

418:デフォルトの名無しさん
07/11/18 00:40:44
>>416
ついこの前にそれではまった…
JFileChooser で FileNameExtensionFilter 使ってて
Mac OS X で動かねーって言われるまで気が付かなかった

# Apple は 6 を出す気があるんだろうか…?

419:デフォルトの名無しさん
07/11/18 00:44:26
Mac なんて捨てていいよ

420:デフォルトの名無しさん
07/11/18 01:03:20
Macの6はDPのままだにぃ。
Cocoa-Javaバインディングも放置になったし、やる気なさそう。


421:デフォルトの名無しさん
07/11/18 01:19:05
OpenSource版ががんばってくれるんじゃね?

422:デフォルトの名無しさん
07/11/18 01:42:24
多少のタイムラグはあってもMacでも6は出るだろうし、
7でも8でも出てくると思うけどね。
Javaはいつも明日の言語なんだよな。w
明日はごちそう、でも今日は無い。w

423:デフォルトの名無しさん
07/11/18 01:44:33
AppleはJavaに対してなかなか気合いが入ってると思うけどなぁ。
ただ、やろうとしていることに作業が追い付いてないだけで・・・。

424:デフォルトの名無しさん
07/11/18 02:05:50
前は気合い入ってたんだけど、新しめの機能のフレームワークに対応する
Javaバインディングを出すのはもうやめてる。

LeopardではBridgeSupportでなんとかできるのかもしれないけど。


425:デフォルトの名無しさん
07/11/18 02:09:41
てかMacOS Xてunix互換なんだろ?CPUもIntel系にしたのに既存のコード使えないのか?

426:デフォルトの名無しさん
07/11/18 02:18:14
>>423
時間が経つごとに気合がなくなっていってるっぽいよなぁ

>>425
CPUがインテルでもベースがUNIXでも肝心なGUIライブラリは別物なので結局移植作業は必要

427:デフォルトの名無しさん
07/11/18 02:20:29
プロセスとかファイルシステムとかあたりはunix互換でも、
グラフィックとかサウンドとかあたりは全然別物だし・・・

428:デフォルトの名無しさん
07/11/18 02:38:18
追加機能が増えたりバージョンあがるごとに仕様かわったりで
追従していくの大変すぎるんじゃないのかなぁ。
JVMさえ開発すればどのマシンでも動きますなんてただの宣伝文句で、
それ作ろうとしたらすげー大変だと思うよ。

429:デフォルトの名無しさん
07/11/18 13:28:02
技術者の量・質を考えたらAppleがJavaを管理するのは無理そうだな
できあいの既存のものを改造していくのには慣れていても、
継続的にある規格に互換させていく作業ってのはやってこなかっただろうし。

430:デフォルトの名無しさん
07/11/18 14:37:15
>>428
それが基本ソフトとよばれるものなんだけどな
互換性をいかに維持するか

新しいOSごとにアプリ全部作り直しなんてやってられん

このスレ的にはApple捨ててよで結論でてるだろ
5.0のときの対応も遅かった

431:デフォルトの名無しさん
07/11/18 14:41:36
マック使う人はアポー謹製ソフトさえありゃ満足なんだから放置しとけばいい

432:デフォルトの名無しさん
07/11/18 16:17:40
デザイナはAdobe製ソフトも入ってないと困るよ

433:デフォルトの名無しさん
07/11/18 20:54:18
mac osxはカーネルより上のレイヤーはXですら自前だからなぁ。
GUIが自前とか言う次元超えてるよ。

434:デフォルトの名無しさん
07/11/19 00:29:34
>>431
V2Cが無ければとても困ると思うの

435:デフォルトの名無しさん
07/11/19 03:17:02
なんとかとハサミは使いようというじゃない。w

436:デフォルトの名無しさん
07/11/19 10:31:31
せっかちな人にはJavaは向かないね

437:デフォルトの名無しさん
07/11/19 13:22:30
マック信者をJavaで逆洗脳してみたいwww

438:デフォルトの名無しさん
07/11/19 13:46:40
Mac信者かつJava信者ですが何か?

でもCocoa-Javaはいらないと思ってる。
そういうのはRubyとかでいいんじゃないかな。
Javaはクロスプラットホームが基本です。

クロスプラットホームだけど、Macでは見た目を良くする。
URLリンク(developer.apple.com)

その他のプラットホームでは、Nimbusに期待してる。
URLリンク(nimbus.dev.java.net)

どっちも解像度に依存しないし、スモールサイズなんかは共通して使える。

439:デフォルトの名無しさん
07/11/19 14:33:56
6での大幅な改善点がデスクトップアプリの強化(大量にバグもちだが)と
大幅な高速化(1.3.1から1.4.0より大きな変化)だから
もうすぐ1年たつというのにMacに6がきてないのは苦しい

440:デフォルトの名無しさん
07/11/19 15:16:27
アップルの独自実装だからmac版が早くなるか分からないんじゃない?
糞実装を何とかしてくれればそれで良いと思うが。

441:デフォルトの名無しさん
07/11/19 19:21:46
まあぶっちゃけV2Cが1.4.2で動く事からも
Macが6をサポートしなくても当分困らないんだよな
5.0が動くだけでも十分じゃね

442:デフォルトの名無しさん
07/11/19 20:59:51
そんな後ろ向きな姿勢じゃいかんよ

443:デフォルトの名無しさん
07/11/21 21:07:37

JTreeで幹や葉をクリックしたり、矢印キーで移動させたときに
選択している幹や葉のファイルを別のJListに表示したい。

この場合、イベントはvalueChangedでいいんでしょうか?
それとなにか注意点とかありますでしょうか
 


444:デフォルトの名無しさん
07/11/22 00:03:52
データ転送じゃね?

445:デフォルトの名無しさん
07/11/22 12:44:57
>>443
マニュアル読んで判断したならいいでしょ
あとvalueChangedってメソッド名だけ出しても普通の人はわからんと思うよ

446:デフォルトの名無しさん
07/11/22 15:08:37
下手にJTreeのvalueChangedいじったらパフォーマンス落ちね?

447:デフォルトの名無しさん
07/11/22 15:31:17
上手にいじれば良い

448:デフォルトの名無しさん
07/11/22 19:38:15
それが出来るならこんなところで確認してないと思うが?
まあ、ドキュメント読めば分かることだが。

449:デフォルトの名無しさん
07/11/22 23:58:16
JFrameの下部にStatusBarを取り付けようとしています。
単純にBorderLayout.SOUTHで問題はないのですが、BorderLayout.SOUTHに当たる領域は後々別に使用するかもしれないので、完全に別領域として下部に取り付けたいのです。
イメージ的にはsetJMenuBar()と同じような感じです。
どのような実装がよいでしょうか?

450:デフォルトの名無しさん
07/11/23 00:10:09
JPanel に BorderLayout をセットして JFrame の CENTER に置く
JFrame の SOUTH をステータスバーのために使って、
JPanel の SOUTH を後々別に使用するときのために取っておく

451:デフォルトの名無しさん
07/11/23 00:13:45
そのようにした場合、ステータスバーをセットするJFrameのCENTERにコンポーネントを加えたいときにわざわざそのJPanelを取得後貼り付けないといけないので避けたいです。
他にはないでしょうか?

452:デフォルトの名無しさん
07/11/23 00:25:57
>JFrameのCENTERにコンポーネントを加えたいときにわざわざそのJPanelを取得

いや、最初から、JFrame じゃなくて JPanel の CENTER に入れればいいじゃん。
わざわざ取得っていうか、JPanel 作ったときにそれをフィールドに持っとけばいいだけでそ?

本当にどうしても JMenuBar のように振舞わせたくて他に方法がないというなら、出来ることは出来るけどちょっと面倒い。
JRootPane の中の layeredPane と glassPane と、layeredPane の中の contentPane と JMenuBar (と自分の statusBar) をレイアウトするレイアウトマネージャを書いて、JRootPane のレイアウトマネージャをそれで置き換える。

453:デフォルトの名無しさん
07/11/23 00:27:53
Windowsに限定しちゃうかも知れないけど、
%USERPROFILE%\Local Settings\Application Data
↑のディレクトリの中に変なGUID名のディレクトリが作られてて
中を見るとJ2SDK5.0のインストーラみたいなのが入ってる。

うちの環境にはJDK6も入ってるけど、5系だけゴミ?があるので気になります。
これって削除しちゃっていいのかな?

454:デフォルトの名無しさん
07/11/23 00:34:12
>>452
そうなのですが、どうしてもメニューバーのように扱いたかったので・・
やはりかなり面倒なことになるようですね。

丁寧に教えていただきありがとうございました。

455:デフォルトの名無しさん
07/11/23 00:40:36
ボーダーレイアウトでいいだろ
面倒ではないだろと

456:453
07/11/23 00:44:03
質問・相談スレに書くつもりが誤爆してました。
こちらはクローズします。ごめんよぅ。

457:デフォルトの名無しさん
07/11/25 00:15:06
質問相談スレで聞いたところ、こちらで聞いたほうが良いと教えていただい
たので質問させていただきます。
現在、携帯電話でいうフレーム撮影機能をPC上でJAVAを用い、作りたいと考え
ております。USBカメラから動画キャプチャを行い撮影ボタンを押すとその時の
静止画がJPEGで保存するところまでは作ったのですが、写真フレーム(gif)を
動画上に表示する方法がわかりません。API集の方も探してみたのですが、見つ
けることができませんでした。誰か方法について教えてもらえませんでしょう
か??よろしくお願いします

初心者でして簡単なソースなどつけていただけると助かります。

458:デフォルトの名無しさん
07/11/25 00:18:56
一番簡単なのは
・ImageのロードにはImageIOを使う
・JLabelを貼り付けてそれにImageをセットする

ネットで初心者かどうかってのは意味ない文章だからやめたほうがいい
知っているか知らないかだけだから

459:デフォルトの名無しさん
07/11/25 00:23:38
JMF使ってる?

460:デフォルトの名無しさん
07/11/25 00:23:49
動画を描画するコンポーネントのpaintComonent(...)をオーバーライドして
super呼んだ後に、drawImage(...)でOKじゃね?

461:デフォルトの名無しさん
07/11/25 00:35:49
いや
>USBカメラから動画キャプチャを行い撮影ボタンを押すとその時の
>静止画がJPEGで保存するところまでは作った
ここにJMF使ってるならJMF流儀の動画の描画の仕方があるから動画のキャプチャをどうやってるかでやり方が決まる。

462:デフォルトの名無しさん
07/11/25 01:30:58
JMFをつかっています。
キャプチャ部分となりますと
new Timer(100, new ActionListener(){

try {
player = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));
} catch(Exception e){
System.out.println(e);
System.exit(1);
}

player.start();
ここになりますでしょうか。
ご教授よろしくお願いします

463:デフォルトの名無しさん
07/11/25 02:44:57
>写真フレーム(gif)を動画上に表示する
これがやりたいんだよね?

ならEffect実装してProcessorからTrackControl取り出してTrackControl#setCodecChain(Codec[])で実装したEffectセットしてやれば良い。
んでProcessor#getVisualComponent()で取得したビジュアルコンポーネントを適当に張り付ければ良い。

あとはJMFのページのチュートリアルとかサンプルコード読んで。


464:デフォルトの名無しさん
07/11/27 20:21:48
日本語を入力時、「確定はされていない文字列入力状態中」(Windowsでは文字の下に破線が引いてある状態)を調べる方法はありますか?

465:デフォルトの名無しさん
07/11/27 20:22:47
ImmGetCompositionString

466:デフォルトの名無しさん
07/11/27 20:23:19
ごめん、ここJavaだったorz

467:デフォルトの名無しさん
07/11/27 20:34:01
Component に addInputMethodListener を仕掛けておけば取れるみたい?

468:464
07/11/27 20:44:22
>>467
InputMethodEvent#getCommittedCharacterCount()
で判別できそうですね。
ありがとうございました!

469:デフォルトの名無しさん
07/11/29 15:28:42
Java Web Startのアプリで、jnlpファイルの中で

<security>
<all-permissions/>
</security>

を設定していて、jarにはオレオレ証明書でサインしている。
確かにファイルアクセスなど自由にできるから、
この設定は有効化されているはずなんだが、
Point p = MouseInfo.getPointerInfo().getLocation();

Exception in thread "AWT-EventQueue-0"
java.security.AccessControlException: access denied (java.awt.AWTPermission watchMousePointer)

が出るのって、これはどういうことなんだろ。
JWSで動かさなければこのエラーは出ないんだが。

470:デフォルトの名無しさん
07/11/30 14:03:31
>>469
JWSのバグでね?
そのクラス1.5からのやつだからもしかしたら・・・

471:デフォルトの名無しさん
07/12/01 00:09:26
frameにタブだけ貼り付けたの作ると、
初めに、タブのタイトル部分に選択状態みたいなのが行くんだけど、
それをタブに貼ってある、jCheckBoxに初めから行くようにしたいんだけど、
windowsのアプリはそうなるようなんで。
どうやったら出来ますか?

472:デフォルトの名無しさん
07/12/01 00:49:32
フォーカスのトラバーサルいじるAPI群なかったけ?

473:デフォルトの名無しさん
07/12/01 00:54:40
初期状態ってことならオープン時にフォーカスセットしてあげれば?

474:471
07/12/01 01:19:46
jCheckBox.requestFocusInWindow();

よく分からないけど、setVisible(true)した後しかフォーカスがいかないな…

475:デフォルトの名無しさん
07/12/01 01:19:51
>>471
つrequestFocusInWindow()

俺はタブはいつもsetFocusable(false)するなぁ。

476:デフォルトの名無しさん
07/12/01 01:26:01
>>474
つaddAncestorListener()

ancestorAddedでrequestFocusInWindow呼んでみそ

477:デフォルトの名無しさん
07/12/01 01:27:34
ふつーにオープン時でいいとおも

478:デフォルトの名無しさん
07/12/01 01:28:59
>>477
それだとタブで切り替えたときにフォーカスが移らないってことだとおも

479:471
07/12/01 01:59:35
>>476
おーサンクスサンクス。
これで完璧だわ。AncestorAdapterは何故かないんだな

480:デフォルトの名無しさん
07/12/01 02:59:55
アダプタクラスは実装するメソッド数が少ないか
そのインターフェースの多くが実装される可能性が高いリスナーは
利便性が低いからアダプタクラス用意しないって方針だよ。

481:デフォルトの名無しさん
07/12/01 10:36:16
JPopupMenuの使い方なのですが、ポップアップメニューの対象によってメニュー内容を変えたい場合、一般的にどのような方法を取るのがよろしいでしょうか?
単純に対象を毎回チェックしてその対象に必要なメニューを構成する、というのはどうも気持ちが悪くて・・

482:デフォルトの名無しさん
07/12/01 12:02:52
リスナーのフィールドにして遅延生成すればいいだけじゃない?

483:デフォルトの名無しさん
07/12/01 12:35:03
対象の種類ごとにJPopupMenuを予め作っておく・・・・のはムダが多いか

484:481
07/12/01 12:48:32
>>482
遅延生成とはどういうことを指すのでしょう
やはり表示毎に必要なメニューを生成という意味でしょうか?

>>483
例えば対象の種類にあらゆる属性があり、その属性ごとに必要なメニューがある場合、その組み合わせをあらかじめ作っておくのは好ましくないかと・・

485:デフォルトの名無しさん
07/12/01 12:55:47
じゃあ、すべての項目を含めたJPopupMenuを1個用意しておいて、各JMenuItemのsetVisibleを切り替えるとか

486:デフォルトの名無しさん
07/12/01 14:24:05
>>478
そういう意味だったのか
あの日本語からはそこまで理解できなかったよ

487:デフォルトの名無しさん
07/12/01 14:28:15
>>481
表示される項目が全て画面に収まるのならすべていれる。
そして選択可能不可能で調整したほうがいいんじゃない?

コンポーネントによってメニューがかわるより、メニューは同じで選択可能か不可能かのほうが
ユーザーに優しいとおもわれる。
この選択肢は下のほうにあるとか上のほうにあるとかコンポーネントごとにかわっていたら厄介だ。

488:デフォルトの名無しさん
07/12/01 15:01:14

JFrameの上には、とりえあえずJPanel置くべきですか?
 

489:デフォルトの名無しさん
07/12/01 15:04:11
packの仕組みをしっているのならおいたほうがいい
そうでなくともパネルに機能単位でのせていったほうが楽になるかな

グループレイアウトを使うのなら場合によってはなくてもいいかも

490:481
07/12/01 15:52:06
>>485
>>487
とりあえず全部登録しておくのが楽なようですね。
場合によってsetVisible、setEnabledで使い分けようと思います。

ご意見ありがとうございました。

491:デフォルトの名無しさん
07/12/01 18:02:09
>>480
そうなんだ~。まぁ、よく使うなら自分でAdapter作ればいいしね~。

492:デフォルトの名無しさん
07/12/02 18:44:49
LinuxのSwing上でトラックポイントのセンターボタンでスクロールしたときに
コンテキストメニューが開いちゃうんだけど、心当たりがある人いる?
JavaはSunの1.6.0_03

493:デフォルトの名無しさん
07/12/02 19:12:28
これかな?
URLリンク(sdc.sun.co.jp)
>・Windows では、マウスボタン 2 マウス UP でメニューがポップアップする 
>・Motif では、マウスボタン 3 マウス DOWN でメニューがポップアップする

494:デフォルトの名無しさん
07/12/02 21:54:41
以下の挙動で、困っています。

JNLPでデスクトップにショートカットアイコンを作成し、
そのアイコンに何らかのファイル(何でもいい)をドラッグアンドドロップすると、
「このアプリケーションは起動できません」「詳細」「了解」というダイアログが表示される。

ここで「詳細」ボタンを押すと、次のような情報が表示される。
※C:\Users\hoge\Desktop\新しいテキスト ドキュメント.txt をドラッグアンドドロップした場合。
InvalidArgumentException[ 無効な引数が指定されました: {C:\Users\hoge\Desktop\新しいテキスト ドキュメント.txt, C:\Users\hoge\AppData\Local\Temp\javaws12 }]
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

で、問題なのは、ここで、ドラッグアンドドロップしたファイルが、
何の断りもなく、いきなり 削除 されてしまう、ということなのです。

この不具合は、あらゆる全てのJNLPアプリで、全てのOSで再現しました。

こうした挙動を防ぐような、何らかの対策をすることは可能でしょうか?


495:デフォルトの名無しさん
07/12/03 00:20:49
>>494
MacOSX Leopardでやろうとしましたが再現しませんでした。
何よりファイルにDnDができない。

URLリンク(bugreport.sun.com)
で報告してください。
報告時は具体的な再現方法と再現環境を書いておくのが吉です。
ありとあらゆる、というのはちょっと曖昧すぎます。

496:デフォルトの名無しさん
07/12/03 01:24:26
ごめん、たしかに、MacOSでは試していない。
あと、64bit用のJREやSolarisでも試せていない。

こちらで試したのは、Windows Vista, Windows XP SP2, UbuntuLinux(7.04)の上で、
1.4.2_16,1.6.0_03,1.6.0_10-ea(いずれも32bit用)。

ここまでやって、いずれの環境でも再現した。
いま、Java7でも試そうとしているところ。

Javaキャッシュビューアで、インストール済みのJNLPアプリについて
「選択されたメニューのショートカットを作成」または、
右クリックメニューで「ショートカットの作成」で、
ショートカットがデスクトップにすることができる。

そうして作られたショートカットに、
ユーザが何かのファイルを放り込むと、
そのファイルが勝手に削除されてしまう、ということ。

ユーザがデスクトップ上のメモ帳のショートカットにファイルをDnDして
開こうとして、まちがって隣のJNLPアプリのショートカットにドロップしたところ、
そのファイルが勝手に削除されてしまう、という感じ。

> 何よりファイルにDnDができない。

たぶん、そういう挙動が正常なのだと思う。

497:デフォルトの名無しさん
07/12/04 11:36:46
質問です。JButtonがアイコンであるGIFファイルの縦横サイズより結構大きくなってしまうのですが、コンパクトにする方法は無いでしょうか?

498:デフォルトの名無しさん
07/12/04 12:06:32
>>497
JButtonのjavadocを隅から隅まで読んで
しかるのちにボーダーのマージンを設定したらいいよ

499:デフォルトの名無しさん
07/12/05 14:21:41
>>498
497です。できました。ありがとうございます。

500:デフォルトの名無しさん
07/12/06 02:03:22

JFrameでgetContentPane()をしなくてもよくなったは、いつからですか?
自動的に転送されるようになったってのを読んだのですが。
 

501:デフォルトの名無しさん
07/12/06 02:06:17
5.0

502:デフォルトの名無しさん
07/12/06 02:10:45
即レスthx

503:デフォルトの名無しさん
07/12/07 22:41:46
シューティングを作りたいと思ってます
メイン画面とスコア画面があって、
それぞれJPanelを継承したクラスを作ってMainPanel,SubPanelと作ろうと思ってるんですが、
この方法は値の受け渡しが面倒くさくなったり、重くなったりしますか?
普通はひとつのゲームは大体1パネルですかね?

504:デフォルトの名無しさん
07/12/07 22:43:16
普通はゲームにSwingなんて使わなくないか?
ましてシューティングで・・・

505:デフォルトの名無しさん
07/12/07 22:45:12
Javaの勉強もかねて作ってます
最近はSwingもだいぶ早くなったと聞いたんですが...

506:デフォルトの名無しさん
07/12/07 22:51:48
ゲームなら、Frameに直接描けばいいと思う。
BufferStrategyを使うのも良し。

507:デフォルトの名無しさん
07/12/07 22:52:23
400x300で24fpsくらいで試してみるといいよ。
Swingはシングルスレッドだから、パッシブ連打でも問題ないはず


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch