[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/21 19:07 / Filesize : 252 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java標準低速GUI 6 AWT/Swing



1 名前:デフォルトの名無しさん [2007/09/26(水) 20:51:18 ]
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 5 (前スレ)
pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
pc5.2ch.net/test/read.cgi/tech/1062271447/l50

299 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:27:59 ]
まだUbuntu使ってるの?

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

301 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:02:48 ]
時代遅れも何もそんな時代はあった事がない

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

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

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

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

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

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

307 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:52:04 ]
>>305
その発想もなかったw



308 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 14:58:06 ]
90度回転させて縦にできるといいんだけどな

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

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

310 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:46:49 ]
ニンバスニンニン

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

312 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:11:42 ]
Synthって流行ってないのかね?

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

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

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

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

316 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん [2007/11/12(月) 23:11:37 ]

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

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

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

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



318 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:46:28 ]
>>316
g2.dispose();

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

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

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

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

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

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

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

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

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

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

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

325 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:18:32 ]
これってどういう意味?

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

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

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



328 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:36:15 ]
>>321
それ勘違いしてるぞ
ファイナライザとか関係ない

329 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:42:26 ]
何でよ

330 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:43:16 ]
なんでφならいざが?

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

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

333 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 01:25:17 ]
>>331
うん。

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

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

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

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

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

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

336 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:14:10 ]
久しぶりに覗いたぜ。

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

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

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



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

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

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

341 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:16:14 ]
>>339
そういう意味じゃないだろ

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

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

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

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

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

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



348 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:36:16 ]
>>342
u2以降は1個の表示でもすごい遅い
u1まではさくさく

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

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

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

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

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

353 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 19:45:28 ]
DirectXでIMEの例があるから笑うに笑えない・・・。

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

355 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 17:06:04 ]
JFileChooserのアイコンってFileSystemView#getSystemIconでしょ
これが遅いってことか?

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

357 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:11:41 ]

sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29872

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



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

359 名前:デフォルトの名無しさん [2007/11/16(金) 00:00:48 ]
ああ、Swingか・・・。

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

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

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

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

364 名前:357 mailto:sage [2007/11/16(金) 01:31:12 ]
レス感謝です

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

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

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

367 名前:デフォルトの名無しさん [2007/11/16(金) 02:33:01 ]
それでいいならいいけどさ。



368 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 03:04:30 ]
JFileChooser パフォーマンス問題
blogs.sun.com/katakai/entry/jfilechooser_performance_issue

369 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 05:59:08 ]
jdk6uN b07では直ってるらしいよJFileChooser問題
ttp://download.java.net/jdk6/6u10/promoted/b07/changes/jdk6uN-b07.html

370 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 09:37:29 ]
アプリの二重起動についてなんだが、二重起動を確認したらそこでシャットダウン
するのはよくある方法だと思うんだけど、たとえばNetBeansはもっと賢いやり方
をしている。

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

372 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 10:52:18 ]
>>371
Javaにはミューテックスなかったっけ?

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

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

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

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

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

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

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



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

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

380 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 19:36:00 ]
Windowsファイアウォールとかにブロックされそうだが

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

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

382 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 20:36:05 ]
Preferencesを使うってのはどうかな。

383 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 20:42:19 ]
sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/lang/preferences.html

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

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

384 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 22:05:37 ]
>>380
ファイアウォールの設定はユーザの責任じゃないかい。

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

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

387 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:29:41 ]

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



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

389 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 02:25:54 ]

touch.moe.hm/touchup_pict/download/1195233390.jpg
こんな上下2ペイン構成のGUIアプリケーションを作りたいと思ってます

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

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


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

390 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 02:29:27 ]
っ CardLayout

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

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

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

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

395 名前:371 mailto:sage [2007/11/17(土) 10:35:15 ]
>>379のやり方実装してみたけど、うまくいくみたい。

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

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



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

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

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

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

頭大丈夫か?

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

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

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

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

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

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

405 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 18:27:56 ]
独自のネットワークサポートするから良いんです。

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

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

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

407 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:40:37 ]
java.sun.com/j2se/1.5.0/system-configurations.html
Win95はサポート外だね



408 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:43:39 ]
サポートの話なんて誰もしてないだろと

409 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 21:24:54 ]
設定でTCP/IP無効にしたらダメなんじゃねぇの?

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

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

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

という常識的な流れだろ

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

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

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

415 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:02:33 ]
>>413
Macはアップルがやってる
6がまだ出てこない…

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

417 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:43:28 ]
NetBeans6 + JavaSE6 + glassfish2の組み合わせの軽さは異常



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

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

419 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:44:26 ]
Mac なんて捨てていいよ

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


421 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 01:19:05 ]
OpenSource版ががんばってくれるんじゃね?

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

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

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

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


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

426 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 02:18:14 ]
>>423
時間が経つごとに気合がなくなっていってるっぽいよなぁ

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

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



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

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

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

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

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

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

432 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:17:40 ]
デザイナはAdobe製ソフトも入ってないと困るよ

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

434 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:29:34 ]
>>431
V2Cが無ければとても困ると思うの

435 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 03:17:02 ]
なんとかとハサミは使いようというじゃない。w

436 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 10:31:31 ]
せっかちな人にはJavaは向かないね

437 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:22:30 ]
マック信者をJavaで逆洗脳してみたいwww



438 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:46:40 ]
Mac信者かつJava信者ですが何か?

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

クロスプラットホームだけど、Macでは見た目を良くする。
ttp://developer.apple.com/technotes/tn2007/tn2196.html

その他のプラットホームでは、Nimbusに期待してる。
ttps://nimbus.dev.java.net/spec/index.html

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

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

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

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

442 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:59:51 ]
そんな後ろ向きな姿勢じゃいかんよ

443 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 21:07:37 ]

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

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


444 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 00:03:52 ]
データ転送じゃね?

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

446 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 15:08:37 ]
下手にJTreeのvalueChangedいじったらパフォーマンス落ちね?

447 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 15:31:17 ]
上手にいじれば良い



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

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

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

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

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

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

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

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

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

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

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

455 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:40:36 ]
ボーダーレイアウトでいいだろ
面倒ではないだろと

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

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

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



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

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

459 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:23:38 ]
JMF使ってる?

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

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

462 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 02:44:57 ]
>写真フレーム(gif)を動画上に表示する
これがやりたいんだよね?

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

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


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

465 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 20:22:47 ]
ImmGetCompositionString

466 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 20:23:19 ]
ごめん、ここJavaだったorz

467 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 20:34:01 ]
Component に addInputMethodListener を仕掛けておけば取れるみたい?



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

469 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:03:31 ]
>>469
JWSのバグでね?
そのクラス1.5からのやつだからもしかしたら・・・

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

472 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:49:32 ]
フォーカスのトラバーサルいじるAPI群なかったけ?

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

474 名前:471 [2007/12/01(土) 01:19:46 ]
jCheckBox.requestFocusInWindow();

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

475 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:19:51 ]
>>471
つrequestFocusInWindow()

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

476 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:26:01 ]
>>474
つaddAncestorListener()

ancestorAddedでrequestFocusInWindow呼んでみそ

477 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:27:34 ]
ふつーにオープン時でいいとおも



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

479 名前:471 mailto:sage [2007/12/01(土) 01:59:35 ]
>>476
おーサンクスサンクス。
これで完璧だわ。AncestorAdapterは何故かないんだな

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

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

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

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

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

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

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

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

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

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



488 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:01:14 ]

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

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

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

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

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

491 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 18:02:09 ]
>>480
そうなんだ〜。まぁ、よく使うなら自分でAdapter作ればいいしね〜。

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

493 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:12:28 ]
これかな?
sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/awt/1.3/designspec/popupmenu.html
>・Windows では、マウスボタン 2 マウス UP でメニューがポップアップする 
>・Motif では、マウスボタン 3 マウス DOWN でメニューがポップアップする

494 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:20:49 ]
>>494
MacOSX Leopardでやろうとしましたが再現しませんでした。
何よりファイルにDnDができない。

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

496 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:36:46 ]
質問です。JButtonがアイコンであるGIFファイルの縦横サイズより結構大きくなってしまうのですが、コンパクトにする方法は無いでしょうか?



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

499 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 14:21:41 ]
>>498
497です。できました。ありがとうございます。

500 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 02:03:22 ]

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

501 名前:デフォルトの名無しさん [2007/12/06(木) 02:06:17 ]
5.0

502 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 02:10:45 ]
即レスthx

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

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

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

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

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



508 名前:デフォルトの名無しさん [2007/12/07(金) 23:00:08 ]
パッシブ連打とは?

509 名前:503 mailto:sage [2007/12/07(金) 23:01:39 ]
Frameに直接書くってことはpaintComponentメソッド内に
メイン画面用とスコア画面用の描画処理が混在してるってことですよね?
そうすると片方の画面の背景だけ変更するなどの処理とかがややこしくはならないですか?
パネルで分けるとコードがすっきりする気がするんですが

510 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:05:41 ]
パッシブ・レンダリング=描画イベントによる受動的なレンダリング(repaint())
アクティブ・レンダリング=自発的に描画を実行するレンダリング(Toolkit.sync(), BufferedStrategy)

511 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 00:30:40 ]
>>503
つまりWindowシステム普及前のゲームプログラミングが難しかったと思ってる?
んなことないよ

練習がてらというのならSwingつかってもいいけどメリットはあんまないとおもうよ
JLabelのアイコン指定でキャラ表示とかSwingというフレームワークで
描画や再移動とかそういうことでしょ?

途中でもっといいものを、もっと本格的なものを、となって挫折しそう

あとpaintComponentではゲームのレンダリングの処理はいれないことね

512 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 00:31:36 ]
さらに付け加えるとパッシブレンダリングはいわゆるトリプルバッファを使わないといけないから注意ね
ダブルバッファじゃダメ

513 名前:503 mailto:sage [2007/12/08(土) 00:51:35 ]
全体的な流れとしては、レンダリング(描画?)は各オブジェクト(敵、弾)のクラスのdrawメソッド(メソッド名は自由?)などで行い、
paintComponentはそれを呼び出すだけ。で、必要に応じてrepaint()を行うとpaintComponentが再描画されるという感じでしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 00:59:58 ]
paintのタイミングは自前のrepaintだけじゃないからそれはやっちゃだめ
ウインドウの重なり具合とかOSが画面をいきなりリフレッシュしたりとかあるから

各オブジェクトにdrawのインターフェースを実装させるという考え方はあってる

レンダリングは自前でAというバッファへしてるとすると、
その間描画はBというバッファからイベントでフロントへ描画させる
Aのレンダリングが終わったらAとBをいれかえて、次のフレームの描画はBへ行う

バックバッファへのレンダリングとフロントへのレンダリングが重なる場合もあるという考え方ね

515 名前:503 mailto:sage [2007/12/08(土) 01:09:30 ]
ダブルバッファがいまいち理解できてないのでもうちょっと勉強してみます。
答えてくださった方どうもありがとうございました

516 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 01:16:16 ]
本当はJavaでゲーム作成というスレがあったんだけど最近おちちゃったんだよな
ゲーム製作板とかいろいろと斜め読みしてみるといいかも

517 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 03:09:19 ]
Javaでゲームってのはなかなか前衛的でおもしろいと思うんだが、
如何せんパフォーマンスが悪いのが致命的なんだよな。
いくら努力しても、一定以上FPSが上がらんとなるとどうしても敬遠したくなる。



518 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:27:05 ]
勉強として作るプログラムも題材の選び方はかなり重要だよ。
努力するほど深まって発展していく題材と、
底の浅いところですぐに打ち止めになるのがある。

519 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 08:27:04 ]
勉強の段階なら、何を作っても勉強になる。

520 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 08:28:32 ]
Javaでエロゲぐらいなら作れそうじゃね?

521 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 09:47:04 ]
アクションだろうがパズルだろうがなんでもできるんじゃないの。
ブロック崩しやテトリスくらいなら楽勝。
ゲーム専用機であるようなハデなアクションゲームを作りたいならお門違い。

522 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 09:49:46 ]
あと速く動かしたいなら画面小さくすればいいんだよ。256 * 192とか。w
昔のアーケードゲームの解像度はせいぜいその程度だったしさ。

523 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:36:49 ]
シューティングやアクションはともかくとして
リアルタイムシミュレーションとか向いてると思うけどな>java
スレッド周りとか楽々作れるし

524 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:55:52 ]
ゲ制作板で話せ

525 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:32:05 ]
>>517
まじていってるの?

526 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:33:14 ]
リアルタイムのアクションものも余裕で出来るよ
IntelCore2/2GHzでJavaで動かすとCネイティブだと1.6GHzくらいの速度になるけど
それが問題になることはまずあるまい

527 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 01:17:57 ]
[MainFrame.java]
public class MainFrame extends JFrame {
 public MainFrame() {
  MainPanel mp = new MainPanel();
  Container contentPane = getContentPane();
  contentPane.add(mp);
}
public void main(String[] args) {
  MainFrame frame = new MainFrame();
  frame.setVisible(true);
 }
}

[MainPanel.java]
public class MainPanel extends JPanel implements ActionListener{
 public MainPanel() {
  SubPanel sp = new SubPanel();
 }
 public void actionPerformed(ActionEvent e) {
  setBackground(Color.BLACK);
 }
}
[SubPanel.java]
public class SubPanel extends JPanel {
 public SubPanel() {
  JButton b = new JButton("メインパネルの色変更");
  b.addActionListener();
 }




528 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 01:23:46 ]
↑の様な構成で作りたいんですけど、うまくいきません。
ようするにSubPanelのインスタンスからMainPanelのインスタンスへ
アクセスするにはどうすればよいのでしょうか?
MainFrameでMainPanelのインスタンスをpublicでstaticにしたりいろいろやったのですが、
うまくいかないのでどなたか教えてください。

529 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 01:47:12 ]
>>528
SubPanelにボタンのaddActionListenerを委譲して
MainFrameからやりたいことを教えてあげればいいんじゃないの?

530 名前:528 mailto:sage [2007/12/10(月) 03:21:26 ]
>>529
すいません 委譲がいまいちわからないんですが、SubPanelとMainFrameにaddActionListener()メソッドを作り、MainFrameにactionPerformedメソッドがあるような感じですか?
今までは↓のような形で出来るかなとやっていたんですが、うまくインスタンスにアクセスできていないみたいなんです。
もし↓で出来たとしてもなにか強引過ぎる気がします。もともと構成がありえないんですかね?
[MainFrame.java]
public class MainFrame extends JFrame {
 public static MainFrame frame;
 public static MainPanel mp;
 public MainFrame() {
  mp = new MainPanel();
  Container getContentPane.add(mp);
}
public void main(String[] args) {
  frame = new MainFrame();
 }
}
[MainPanel.java]
public class MainPanel extends JPanel implements ActionListener {
 public MainPanel() {
  sp = new SubPanel();
  this.add(sp);
 }
 public void actionPerformed(ActionEvent e) {
  setBackground(Color.BLACK);}}
[SubPanel.java]
public class SubPanel extends JPanel {
 public SubPanel() {
  JButton b = new JButton("メインパネルの色変更");
  b.addActionListener(frame.mp);}}

531 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 10:02:09 ]
MainPanelはPaintComponentをオーバーライドしないといけない気がする…

532 名前:531 mailto:sage [2007/12/10(月) 10:06:52 ]
やっぱ要らないか

533 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 10:45:47 ]
>>530
設計方針とか変更不可のクラス等の制約条件とかが分からないけど
手っ取り早くやるならMainPanelとSubPanelの親子関係がそのままなのを前提に
b.addActionListener((MainPanel)getParent());

534 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 11:19:28 ]
俺なら
SubPanel#addColorChangeActionListener(listener){b.addActionListener(listener);}
を作る方を選ぶかな。

535 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 12:32:25 ]
これってSwingの話ですらなくて言語の基本の話だろ?
なんでstaticがでてきたりするんだ?
まずは言語の勉強からやりなおしたほうがいいんじゃないかい?

536 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 12:51:30 ]
たぶんMainFrameやMainPanelのインスタンスをSubPanelで参照する方法が分からなくて、
b.addActionListener(frame.mp);}}ってやってもコンパイルできなくて、
b.addActionListener(MainFrame.mp);みたいにできるようにクラス変数にしちゃったんだと推測。
プログラムの設計と実装の仕方を良い参考書や良いソースを見ながら勉強した方がいいと思う。

537 名前:530 mailto:sage [2007/12/11(火) 00:36:38 ]
>>536
正にその通りです
>>533
getParent()なんてのがあったんですね 

どうもありがとうございました



538 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 13:58:13 ]
>>530のコードを見る限り
getParent()は使わないほうがいいな
独立性が失われるのにListenner使ったりとかありえん

まず言語の基本の勉強からしたほうがいい
近道しようとしても無駄だと思う
ここ本当に基本中の基本だから

539 名前:503 mailto:sage [2007/12/11(火) 17:52:44 ]
>>538
すいませんご指摘ありがとうございます
SubPanelのコンストラクタでgetParent()しても、その時点ではMainPanelの子にはなってないということですよね
>独立性が失われるのにListenner使ったりとかありえん
これはimplements ActionListenerのことですかね アダプタクラスというのを使ったほうがいいということでしょうか

一応基礎はやったつもりでいたんですが、今回GUI使うことでぜんぜん理解できていないことに気づいてそれだけでもよかったです
もう来ません ありがとうございました。

540 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:53:25 ]
もうきませんって捨て台詞・・・はもうきこえてないか

インスタンスの参照を渡せばいいだけでしょ?
それができないってことはJavaの勉強1週間程度しかしてないということかな?

541 名前:530 mailto:sage [2007/12/12(水) 00:36:46 ]
ながながとスレ違いすいません
勉強はJavaの入門書を一通り読んだんですが(スレッドくらいまで。デザインパターンは全く)、ちゃんとは理解できてなかったようです。
参照を渡すといいましても>>530のコードだと難しくないですか?
コンストラクタでいろいろやってるのも悪いんですかね
本当にこれで最後にしますんで、
MainPanelとSubPanelが連動していて(Subのボタンを押すとMainの内容を変更したりする)場合、
どんなコードになりますか?親切な方おねがいします

542 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:37:50 ]
いや、普通に継承してるんだから
MianPanelはSubPanelを生成してあげたあとにセットしてあげるでもいいんじゃない?

SubPanelに
private MainPanel mainPanel;
public setMainPanel(MainPanel panel){
this.mainPanel = panel;
}

と追加しておいて

sp = new SubPanel();
sp.setMainPanel( this ) ;
this.add(sp);

とするといい。
subからMainを触りたければ上で定義したprivateなmainPanelに対してアクセスをする。

MainPanelでSubPanel作って乗せてるだけだからこれでいいと思われ。

MainPanelが先に消えたりする可能性があるとかだとリスナーいじってどうのこうのが必要になるけど
たぶんあなたがやりたいのはこれで十分かと。

543 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:44:04 ]
そもそも設計の段階で間違えてるんじゃないか?

544 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:34:31 ]
>>542
それだと SubPanel が汎用性の低いクズパーツになるだろ。
SubPanel がボタンを持つパネルならそのボタンのアクションリスナーを
>>534のように SubPanel に委譲してやったほうがいい。

public class SubPanel extends JPanel {
 private JButton button;
 public SubPanel(String buttonText) {
  button = new JButton(buttonText);
  this.add(button);
 }
 public void addButtonActionListener(ActionListener listener) {
  button.addActionListener(listener);
 }
}

public class MainPanel extends JPanel implements ActionListener {
 public MainPanel() {
  SubPanel panel = new SubPanel("メインパネルの色を変更");
  panel.addButtonActionListener(this);
  this.add(panel);
 }
 public void actionPerformed(ActionEvent e) {
  this.setBackground(Color.BLACK);
 }
}


545 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:06:00 ]
>>544
アクションイベントだけならそうだろうけど
GUIってそれ以外のプロパティの変更とかふつうはやるものだし

546 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:35:41 ]
main panelをある構造に従って作るようにして、sub panelでその構造を変化させたらいいんじゃないの?

547 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:44:05 ]
そこまでの設計が出来ていればこんな質問はせんだろうと。
ActionListennerをMainPanelで実装している時点で複数のイベント対応がおわっとるわけで。



548 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:31:50 ]
>312でも書かれてるけど、Synthって流行らないのかなー。
スキンがXMLファイルと画像で済むならたくさん配布されてそうなのに、
どうして一個も見つからないんだろう・・・

549 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:37:42 ]
まず最初の一個を>>548が作って布教

550 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:41:15 ]
つ Nimbus

551 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:48:27 ]
よーし作っちゃうぞー

Synth Studioにちょっと期待。
weblogs.java.net/blog/gfx/archive/2005/09/synth_studio.html

>550
Nimbusもいいと思うんだけど、とにかく数が出ないことにはなんとも多様性が少なすぎます。

552 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 16:38:29 ]
スキンを色々着せ替えたい人ってどんなアプリ作ってんの?
着せ替えできることを売りにしてるアプリで俺が最初に思い出すのがCDプレイヤー。

553 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:03:49 ]
NetBeansで気分転換にLAFかえるとかは5.0のころ流行ったなぁ

参考:
ttp://d.hatena.ne.jp/nowokay/20060223#1140636171

Substanceは6.0では動かないくさいけど

554 名前:デフォルトの名無しさん [2007/12/12(水) 17:10:21 ]
ウィンドウをキャプチャし、JPGで保存するようなプログラムを作成中です。
手法、使用APIなどご教授お願いします。

555 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:18:24 ]
>>554
なぜここで聞く?質問スレ行った方がいいんじゃないか?

556 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:37:28 ]
キャプチャに関してはRobotがAWTパッケージに入ってるからかな?
って感じでもないか。
知ってたらBufferedImageを保存するには?って聞くだろうし、それはスレ違いか。

557 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:44:29 ]
>>553
そういう感じのLAFがカッコイイと思う人もいるんだろうけど・・・
ブログのスキンとは求められてるものが違うんでね?



558 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 18:39:42 ]
Nimbusってjava LAFの置き換えなんだろうか?
それとも共存するんだろうか?
NimbusってSynthで全部自前でやってるせいか少し重いからイマイチなんだが。

559 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:16:20 ]
重いかな?
というか、エンジン部分が決まっているので
むしろこれからのチューニングに期待できるんだけど。

Nimbusが出てきてからSubstanceへの興味はだいぶ薄れちゃったな・・・
V2Cは、6u10に入ってるNimbusで綺麗に動くので最近はNimbusで見てる。
素のMetalやOceanよりしっくりきてる。
普通に見れて、プラットフォーム共通の見栄えってのは重要でしょう。
Metalは、お世辞にも見栄えがいいとはいえなかったから・・・・(派手だけど)

560 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:25:21 ]
見た目のこと言い出すと宗教戦争になりそう。

561 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:26:24 ]
SynthってXMLと画像をjarに詰めて配布するの?
jarをインデックス付き無圧縮で配布すれば多少早いかもね。
もしくはSynthをコンパイル可能にするとか。

562 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:26:41 ]
ぶっちゃけSystemLAFがデフォになってくれるのが一番いいかも
NetBeansもそれでシェアを一気に伸ばしたし

563 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:07:13 ]
見た目なんて飾りです。えらい人にはそれが分からんのです。

ていうかクロスプラットフォームの実現性としてはjavaLAFがデフォの方が良いけど、
ユーザビリティが落ちるので天秤ってところか・・・。

564 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:40:36 ]
LAFを変更したらレイアウトが微妙に崩れてデザインが台無しとかけっこうある。
部品をカスタマイズしてたりするとなおさら。
で、いくつもLAFがインストールされていても、事実上使えないものが出てくる。
そんなLaFしか実現できないのなら、LAF一つで統一してほしいところだな。

565 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:25:54 ]
>>564
推奨サイズを使って設定してくれるならずれることはほとんどないはずだけど?
今まで大量にSwingアプリ作ったがLAFかえて問題が出る場合ってのはほとんどないよ。
むしろWinネイティブより楽。

566 名前:デフォルトの名無しさん [2007/12/12(水) 21:35:29 ]
>>565
推奨サイズって何?
カスタムコンポーネントなしのアプリしか作ったことないんじゃないの?

567 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:45:28 ]
本気で言ってんのかコイツ



568 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:04:47 ]
Swing使いが推奨サイズを知らないとは思えんが・・・・

569 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:18:38 ]
きっと日本語ではなく preferredSize といえば通じるよっ。


570 名前:デフォルトの名無しさん [2007/12/12(水) 22:47:58 ]
生憎日本の会社で働いたことがないので。日本語のAPI docもたまに
見るけど気付かなかったよ。どこかに便利なサイズの表でもあるのかと思った。

571 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:23:41 ]
今日もJava釣り君元気だな

572 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:25:17 ]
>>570
つまり、preferredSizeを和訳できなかったわけだな。中国の会社の人?

573 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 02:30:49 ]
インドだろう常考

574 名前:564 mailto:sage [2007/12/13(木) 02:58:31 ]
>>564
もちろんそうしてるよ。JDK1.0のころからある普通のレイアウトマネージャを組み合わせてレイアウトしてる。
そりゃテキストエディタのようにツールバーとメニュー、オプション選択とOK/NOボタンしかないとか、
その程度なら問題ないだろうけど、複雑になるとたいがい問題でると思うけどな。
ただしまったく使えなくなるほど、ひどいことになるのは少ない。
レイアウトデザインには急所があってさ、絶対はずせないところってのがいくつかある。
そこがずれると一気にしまりがなくなってださくなるとこが。
そういうとこが狂うと、やめてよっていいたくなる。

LAFに応じて位置とサイズを調整するようなコードを書くとか、無難なデザインを適用する事はできると思う。
でもそういうのってなんか違うと思うんだよね。

575 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 03:27:33 ]
ボケたか自演か?

576 名前:564 mailto:sage [2007/12/13(木) 03:52:46 ]
>>575
>>565-573までは俺じゃないから。
罵りあって遊びたいならマ板にでも逝けよ。

577 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 08:46:37 ]
推奨サイズを知らないバカと自分のレスにレス付けてるボケがいるスレはここですか?



578 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:04:12 ]
レイアウトが崩れる例ってのを、出してみてよ
簡単なのでいいから

579 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:45:14 ]
複雑になると問題が出るっていってるのに簡単なのでいいからっていうツッコミ、気の毒だな。

580 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:54:56 ]
>>578
21 * 21 のicon,pressedIcon,rolloverIconの三枚のボタン画像を作りJButtonのプロパティに指定。
perferredSize=21,21
margin=0,0,0,0
focusPainted = false
contentAreaPainted = false
borderPainted = false

LaFでMotif,Windows,Metalの三通りを試してみてよ。Motifはアウトだから。
画像ボタンをつくればいいだけなら解決策はあるけど、しかし、
GridBagLayoutで次のようにJTextFieldが等間隔でならんでいて、
その一つにこの画像ボタンがあるとする。

[TextField]
[TextField][B] ←画像ボタン
[TextField]
[TextField]

アウトだよね。レイアウトは崩れる。デザインを修正することで回避する策もあるし、
使えないってことはないが、LaFを切り替えると振る舞いが違うのは困る。

581 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:04:33 ]
>>578
もう一つ例をあげると、Motifのメニュー操作法と、Windows,Metalの操作法は異なる。
これは使ってみればすぐに分かると思うけど。

それから、JSliderBarの操作法ね。Metalと残りのWindows,Motifでは振る舞いが異なる。
これもわかりにくいかもしれないけど使ってみれば分かると思う。

LaFは見かけ上の外観を変更するだけのはずなのに、操作体系にまで干渉したらまずいと思うんだけど。

582 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:57:22 ]
ルック&フィールのフィールって何か分かってるか?

583 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:05:42 ]
>>581
LaFはLook & Feelの略だよ。外見を変更するだけじゃない。

584 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:14:14 ]
>>580
すまん、やってみたが、レイアウトは崩れないっぽいんだが…
なんか俺間違ってるのかも試練から
どこがどう崩れたのか教えて欲しい

585 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:31:58 ]
>>582
単純思考のくせに傲慢そうなやつだな。w
feelは手触りだから、操作体系が異なるのは仕様のうちだとでもいいたいのか?w

しかしそれでは良くない場合のほうが多いんだよな。
アプリに無意味な混乱を与えるくらいならLAFをユーザに選択させないほうが俺は良いと思うけどね。
ボタンが数個しかついてないようなアプリならまーすきにすればだけど。

586 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:36:10 ]
>>584
画像はいらないから、コードをコピペしてみて。
環境の違いもあるだろうし。

587 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:37:38 ]
コードつーかソースね



588 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 13:48:37 ]
Look and Feelのfeelには気分や雰囲気の意味もあって、必ずしも操作法を指すともいえないけどな。

589 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 14:12:06 ]
>>586
public class Test extends JFrame {
static public void main(String args[]){
new Test().createUI("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}

private void createUI(String laf){
try {
UIManager.setLookAndFeel(laf);
} catch (Exception e) {
}
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
JPanel p = new JPanel(gbl);
c.weightx = c.weighty = 1;
JTextField t0 = new JTextField(10);
c.gridx = c.gridy = 0;
gbl.setConstraints(t0, c);
p.add(t0);
JTextField t1 = new JTextField(10);
c.gridy = 1;
gbl.setConstraints(t1, c);
p.add(t1);

590 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 14:12:36 ]
JButton b = new JButton(new ImageIcon("./normal.gif"));
b.setPreferredSize(new Dimension(21,21));
b.setMargin(new Insets(0,0,0,0));
b.setFocusPainted(false);
b.setContentAreaFilled(false);
b.setBorderPainted(false);
b.setRolloverIcon(new ImageIcon("./over.gif"));
b.setPressedIcon(new ImageIcon("./pressed.gif"));
c.gridx = 1;
gbl.setConstraints(b, c);
p.add(b);
JTextField t2 = new JTextField(10);
c.gridx = 0;
c.gridy = 2;
gbl.setConstraints(t2, c);
p.add(t2);
JTextField t3 = new JTextField(10);
c.gridy = 3;
gbl.setConstraints(t3, c);
p.add(t3);
getContentPane().add(p);
this.pack();
this.setVisible(true);
}
}

591 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 14:42:18 ]
>>589-590
さんきゅー。やってみた。
ただし画像を取得する部分は、getResource()を使う方法に修正させてもらった。
こっちの環境でMotifを指定してみたら、画像ボタンは正常表示されなかった。

new Test().createUI("com.sun.java.swing.plaf.motif.MotifLookAndFeel");

具体的には、3 * 3くらいのサイズで表示されてしまう。
MetalやWindowsのLAFでは、このような状態にはならない。
ところであなたの環境はなに?

3*3の状態で表示されたときは、当たり前ながらレイアウトは崩れない。
ボタンサイズがJTextFieldのheightより小さいから。

で、こっちの環境で、Motifでもボタンを正しく表示させようとしたときは、preferredSizeを指定しなければ良いらしい。
しかしボタンは表示されるが、デフォルトのボタンサイズが27*26くらいに設定されてしまう。
するとJTextFieldのheightを越えてしまうため、ボタンのある行は上下に隙間が空いてしまう。

592 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 14:56:01 ]
あ、ちなみにこっちの環境はWin2KのJDK1.6.0_03

593 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 15:04:42 ]
いつまで続くのこれ?

594 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:03:04 ]
b.setBorder(null);
でどうよ?

595 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:32:49 ]
>>594
その手があったかw

596 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:18:47 ]
ボタンに限ったことじゃないだろうに・・・

597 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:13:03 ]
たまたまMotif用の回避策があっただけのことでしょ。w
LAF別に癖があって共通の振る舞いをしないのはかわらない。



598 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:50:38 ]
どう見てもコンポーネントの表示を制御し切れてないヘタレというだけで
レイアウト云々は関係ないと思うのだが

599 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:05:15 ]
JButtonとかはサイズが指定してあると、Metal→Motifに変えたときにほんと崩れるよね。

普通にテキスト指定してJButton作っただけじゃ、OKとキャンセルボタンのサイズが違いすぎるから
キャンセルボタンにあわせるようにしてるんだけど、Motifはおかしいよ・・・

600 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:58:53 ]
まだ続くの?

601 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:08:14 ]
Swingの話題だから別にいつまでも続いてもいいだろ

602 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:25:37 ]
そういやMotifだとマウスホイールも効かないよな。
そんな中途半端なのいれなきゃいいのに。

603 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:28:15 ]
SystemLAFならLinuxとかでもWin並みのFeelが得られるの?
Win, Mac以外はLAFは何でもいいと思ってるのでお勧め教えて。

604 名前:デフォルトの名無しさん [2007/12/13(木) 21:35:08 ]
>>598で結論出たじゃん。

605 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:36:12 ]
Linux では gtk使えるなら gtkじゃね?

606 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:39:41 ]
>>598
ことLAFに関しては>>597でFAだと思うが。
切り替えて不都合がでるLAFがある時点で不完全なシステムだな。

607 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:40:05 ]
正直Javaアプリ作ってもWinでしか使わないんだよね。
APIのバランスがいいし、今更.NET覚えるのはしんどいって理由で。
*nixやmacの挙動を調べるにはどうしたらいいんだろう。
LinuxならcoLinuxとか?



608 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:45:53 ]
それ用にマシン用意するか、もってる人にテストを頼む以外なんかある?

609 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:46:51 ]
Macごときに会社が金出すわけ無いじゃん。jk。

610 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:50:45 ]
アップルに俺様の会社がMacでも動くアプリを作ってやったから、テスト用にMacを献上したまえといってみるとか。

611 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:54:18 ]
Macごときに金ださんという会社は、JavaだろうがMacで動かす必要はないってことじゃね?

612 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:01:26 ]
Macごときで動作しないなんてレポートが来られても困るし、
JavaクライアントでもMacは未対応ってことにしとけばいいか

613 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:22:42 ]
そこはアップルの実装の問題だが、どうにも屑すぎる。
特に文字列処理。これはjavaに限った事じゃないけど。

614 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:34:26 ]
たとえば文字列処理でどんなことが起きるの?

615 名前:デフォルトの名無しさん [2007/12/13(木) 22:45:06 ]
ワイド文字いい加減とか

616 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 23:38:24 ]
仕事なら必要な範囲のアーキテクチャだけ動作保証するだけだし
趣味ならそもそも動作保証なんてしないから問題ないだろ…

617 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:37:15 ]
趣味で作っても、友達がMac持ってることあるから問題あるだろ。



618 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:41:59 ]
aho

619 名前:デフォルトの名無しさん [2007/12/14(金) 15:36:51 ]
例えば、undo,redo(WindowsだとCtrl+z,Ctrl+y)とかのデフォルトの
キーバインディングがOS毎に違ったりする場合、
LAF変更毎にjavax.swing.InputMapとかも変更すべきでしょうか?
javax.swing.plaf配下のUI委譲を見ても、そんなコードは見あたりませんが。


620 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:21:15 ]
>>614
Unicode正規化まわりじゃないの?

621 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 12:54:25 ]
LAF変えるたびに、それ固有の修正を施すなんてかなり馬鹿らしい話
これからいくらでも増えてくるだろうし

622 名前:デフォルトの名無しさん [2007/12/15(土) 16:35:41 ]
MacのredoのショートカットキーがWindowsと異なる
(Ctrl+Shift+zだったかな)ことを最近知って、
さらに「Motifだとマウスホイールも効かないよな」っていうのを見て、
ふと疑問に思った。

マルチプラットフォーム対応のソフト作ってる場合って、
やっぱり、そんなことも考慮する必要があるんだろうな。
LAF毎に固有の修正を施すなんてかなり馬鹿らしい話っていうのは同感なんですが。

ふだん当たり前にできてることができないって結構ストレスになるから。


623 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:44:56 ]
キー設定とかは外部設定に追い出しておいてプラットフォームごとに
切り替わるようにするくらいは必須だろうねぇ。

うっかりMac環境でメニューバーにまでショートカット付けて怒られた俺。
(個別のメニューには付けてもいいが、根っこのバー上には付かないのがMac)


624 名前:デフォルトの名無しさん [2007/12/15(土) 17:27:21 ]
>キー設定とかは外部設定に追い出しておいてプラットフォームごとに
>切り替わるようにするくらいは必須だろうねぇ。
やっぱり、サーバーサイドより面倒ですね。

>うっかりMac環境でメニューバーにまでショートカット付けて怒られた俺。
怒られるほどのことではない。
というか、個人的には、そのほうが便利になってる気さえしますが。
余計な文字列がデザイン的にウザイってことなんですかね。
よくそういうどーでもいいディテールに拘る人いますし。
特に官公庁に。

>(個別のメニューには付けてもいいが、根っこのバー上には付かないのがMac)
へー。Macさわったことないから、全然知らなかった。
エミュレータでも買って、ちょっと弄ってみようかな。


625 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:45:03 ]
そういえばMacのマウスはシングルボタンが基本だよね。
Winでは右クリでポップアップメニューが出る操作がよくあるけど、あれMacではどうなるの?

626 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:57:07 ]
ふるーい mac だと ctrl + クリックでやってた記憶が……

ポップアップメニュー出す操作か、だけなら、
java.awt.event.MouseEvent#isPopupTrigger() みればわかるはず。

627 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:58:32 ]
何も考えたくなかったらMetalで固定ってことかな。



628 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:14:39 ]
macはボタン長押しでコンテキストメニューじゃなかった?
今のmacはマウスホイール付いてた気がする。
小さな玉が・・・。

629 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:22:21 ]
シングルボタンの場合は、Ctrl押しながらクリック。
2ボタンマウスを繋いだ場合は普通に右クリックできる。

Mighty Mouseも見た目はシングルだが、右よりの部分を押すと副ボタンと
して扱える(デフォルトだと両方主ボタンになってるのはAppleの意地か?)



630 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:24:04 ]
ノート型のMacだと、指を2本パッドに置いてクリックすると右クリック相当
だな。指2本でパッド上を滑らせるとスクロールとかも面白い。


631 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:28:50 ]
MacのOS9時代まで使ってたけど、ctrl + クリックだったよ〜
まぁどうでもいいか。

632 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:41:56 ]
理想的にはLaF毎に諸々切り替えるべきなんだけど…
結局どこまでサポート範囲にするかってだけだとな気がする.
ぶっちゃけMotifとかは切り捨てても誰も困らないと思うぞ

633 名前:デフォルトの名無しさん [2007/12/15(土) 18:45:57 ]
Synthについてなんですが、SwingのJComponentの派生クラスの
ちょっとした動作変更のHackのサンプルコードとかで、
よくMetalほげUI(MetalComboBoxUIとか)を継承したクラスを作って、
JComponent#setUI(作成したMetalほげUIのサブクラス)とかやってますよね。

ああいうのって、その後Synthでスキンを変更しようと思った場合、
動作するんですか?

Synth導入時はjavax.swing.plaf.synth配下のクラスを
使用しなければならないのかなと思っていて、
Synthパッケージのクラスの継承関係がBasicComponentUIのサブクラスだから、
MetalUIで作ったクラスは使用できないのかと漠然と考えているんですが。

634 名前:デフォルトの名無しさん [2007/12/15(土) 18:52:14 ]
>ぶっちゃけMotifとかは切り捨てても誰も困らないと思うぞ
同感。Motifは単にSunの意地。
クライアントLinuxも趣味にはいいけど、
個人的にはサポートしたくない。

でも、数ヶ月前に21:00台のNHKのニュースで出てた、
どこか忘れたけど、ITじゃない大手企業の普通の職場で
SunのワークステーションでXが写ってた。
マジで使ってんの?って思ったけど。

635 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 19:19:05 ]
ソラリスのMotifはそれなりにさまになってる感じもあるけど
Winでみるとダサイ・・・ってまったく同じMotifというわけでもなくMotif風というべきか。

636 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 19:25:33 ]
MacでCtrl+クリックで右クリということは、WinでCtrl+左クリに機能を割り当てていると、
Macでは困ったことになる・・・のだろうな・・・

637 名前:デフォルトの名無しさん [2007/12/15(土) 19:28:20 ]
実機が手元にないから、あれだけど。
SolarisのMotifは、Sunのハードの色のグレーと紫と一緒になって、
初めて調和する感じがする。
だから、他のハードで単体でMotifのLAFだけを見るとかっこ悪さしか感じない。




638 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 19:43:52 ]
LAFというか視覚デザイン系は深入りすると底なし沼だからなぁ・・・・
3Dソフトも今はなき?シリコングラフィックのあの癖のある筐体でみるのと、
DOS/Vの筐体でみるのではやっぱ違ってみえるよねw

639 名前:デフォルトの名無しさん [2007/12/15(土) 19:44:18 ]
いろいろ考えるとInputMapはFactoryクラスとかで一括管理すべきなんだろうなと思ってきた。

640 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 19:44:55 ]
そういえばJTableはCtrl+左クリで複数選択機能があったはずだけど、Macだとどうなるんだっけ。

641 名前:デフォルトの名無しさん [2007/12/15(土) 19:49:16 ]
>シリコングラフィックのあの癖のある筐体でみるのと、
>DOS/Vの筐体でみるのではやっぱ違ってみえるよねw
それはありますねー。
Sunのマシンにsunの4つつながったロゴがないだけでも、
Motifは別物に見えそうだし。

データセンターでMacのハードやUIがあったりしたら、
違和感ありそうだし。。。

642 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 23:39:08 ]
>>619
質問 ↓のコードでもmacとwindowsで兼用できなかったの??
KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());

643 名前:デフォルトの名無しさん [2007/12/16(日) 02:36:30 ]
619です。
>質問 ↓のコードでもmacとwindowsで兼用できなかったの??
>KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
Toolkit#getMenuShortcutKeyMask()メソッドは初めて知りました。
ありがとうございます。

興味本位で聞いただけです。
実際にやってみていない。というかmac環境がないので。試せません。。

tinyurl.com/3cbuj2のあたりをざっとみると、
Ctrl+Cとかコピペ、Ctrl+F(検索),Ctrl+S|Oあたりは同じようですが。
Ctrl+Y(やり直し(Windows))の記載が見あたりません。
ちょっと前に、どこかでWindowsのCtrl+YはmacでCtrl+Shift+Zと見たんですが、
記憶違いかガセだったのでしょうか。
でも、macにはUndoの反対のキーバインドがないとは思えませんけど。

でも仮にmacにCtrl+Shift+Zがあるとすると、
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()だと、
引数と戻り値的に適切な値が取得できるとは考えられないですが。

それとgetMenuShortcutKeyMaskで適切な値が取得できるのであれば、
UIクラスのinstallUI()(すくなくともJTextComponentのサブクラスのUI)では、
InputMapにデフォルトで登録しておいて欲しいところです。

macをさわれる人にgetMenuShortcutKeyMask()の結果を聞きたいです。
いつになるか分かりませんが、私がmacを実行できる機会があれば、
結果を報告します。

644 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 03:30:19 ]
Mac OS X 10.5.1 です。

% uname -a
Darwin dorado.local 9.1.0 Darwin Kernel Version 9.1.0: Wed Oct 31 17:46:22 PDT 2007; root:xnu-1228.0.2~1/RELEASE_I386 i386 i386 MacBook2,1 Darwin

% java -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)

System.out.println(Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
System.out.println(Event.ALT_MASK);
System.out.println(Event.CTRL_MASK);
System.out.println(Event.META_MASK);
System.out.println(Event.SHIFT_MASK);

結果は

4
8
2
4
1

Metaキーってことですかね。


645 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 03:36:27 ]
Mac OS XではCommand+Cとかになるからね。

getMenuShortcutKeyMaskの戻り値はEvent.META_MASKになる。

CommandキーはWindowsだとWindowsキー。

646 名前:デフォルトの名無しさん [2007/12/16(日) 17:50:37 ]
619です。
macの結果を教えてくださりありがとうございます。

macのショートカットキー一覧を見ると
「コマンド + C →「編集」メニュー コピー」と記載されているので、
つまり、getMenuShortcutKeyMask()を使用できそうということでしょうか。

ところで、macにはWindowsでいう「やり直し(Ctrl+Y)」
(元に戻すのを戻す?)は、ないのでしょうか。
私の言っている「Ctrl+Shift+Z」ショートカットキーは誤りですか?
たびたびすみませんが、時間がありましたら教えてください。

647 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:11:03 ]
HIG(Human Interface Guidelines)
developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGIntro/chapter_1_section_1.html

Keyboard Shortcuts
developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGUserInput/chapter_11_section_3.html#//apple_ref/doc/uid/TP30000361-CHDIGFBH

テキストエディット(メモ帳・ワードパッド)
GarageBand(作曲)
Pages(ワープロ)
Keynote(プレゼン)
Numbers(スプレッドシート)
BathyScaphe(2ちゃんねるブラウザ)
で見たら、「やり直す」はCommand+Shift+Zだった。




648 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:17:26 ]
ちょっと古いけど
ttp://developer.apple.com/jp/technotes/tn2042.html

やり直しはShift+Command+Zだね。

649 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:36:01 ]
うお、Leopardでは「取り消す(cmd+Z)」と「やり直す(shift+cmd+z)」に変わったんだね。

プレビューではファイルメニューに、最後に保存した状態に戻す「元に戻す」があったりする。

650 名前:デフォルトの名無しさん [2007/12/16(日) 20:20:32 ]
>647さん
>648さん
>649さん
ありがとうございます。
developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGUserInput/chapter_11_section_3.html#//apple_ref/doc/uid/TP30000361-CHDIGFBH
のTable 7-5を見ると(Redo(やり直し))Command-Shift-Zってことですね。

頂いた情報を総合すると、getMenuShortcutKeyMask()の戻り値が
Event.META_MASK(Commandキー)である。
やり直しはCommand-Shift-Zということですので、
コピーのキーバインディングに
KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
は、良いけど
undo,redoに
KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
はNGということですね。

ということで、やはりプラットフォームごとにInputMapを用意する
必要があるということですね。
実装する予定はありませんが、勉強になりました。
面白かったです。





651 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 21:00:00 ]
Swing標準のキーバインドってなかったっけ?
あったらそれで良いと思う。

あれはLAFで決まるんだっけ?

652 名前:デフォルトの名無しさん [2007/12/16(日) 21:36:45 ]
619です。

>Swing標準のキーバインドってなかったっけ?
swing.plaf配下のUI委譲のInputMap登録コードでは、
JListでの上下移動、JComboBox等の選択等の細かいものを除けば、
基本的に選択(JTableのセル選択,JTextComponentのテキスト選択)、
移動系(セルの選択位置移動、キャレットの移動)の
キーバインドしか登録されないのです。

undo,redoをはじめ、Ctrl+S,Ctrl+O等の、機能が実装されていないものに
関しては仕方がないにしても、JTable,JTextComponentでは、
printを実装しているにも関わらず、Ctrl+Pも登録されません。
ですから、標準のキーバインドはないのでは?と思っています。

まぁ、個別のOSのアプリケーションを熟知してませんが、
Gridやテキストエディタでの選択、移動のショートカットキーは、
各OSともほぼ共通なため、そのあたりは登録できるものの、
undo,redo等は、上記のような例があり、標準として登
録できないという事情があるのかもしれません。

でもSwing標準のキーバインドなんてあったとしても、
個人的には、ショートカットキーをバリバリ使う人にはストレスフルで
使いたくないし覚えたくないだろうと思いますが。

ちなみにLAF毎に、キーバインドを登録するようなコードが
それぞれのUIクラスのソースに無いのは先述のとおりです。


653 名前:デフォルトの名無しさん [2007/12/16(日) 21:48:11 ]
>>633

654 名前:_ [2007/12/19(水) 14:53:45 ]
combodata = {"a", "b", "c","d"};

       ・
       ・
private void Combo1ActionPerformed(java.awt.event.ActionEvent evt) {


if (Combo1.getSelectedItem().equals("a")||Combo1.getSelectedItem().equals("b")){
Combo2.setEnabled(true);
}
else{
Combo2.setEnabled(false);
}

}

Combo1でaかbが選択された場合はCombo2が有効で
Combo2でcかdが選択された場合はCombo2が無効になるようにしたいのですが

上のやり方だとaを選ぶとCombo2は有効になるんですがaを選んだ後にcに変更すると
Combo2は無効にならずに有効のままになってしまいます.
同じようにcを選ぶと無効になるんですがその後にaを選ぶと無効のままになってしまいます.

これを直す方法を教えていただけないでしょうか?お願いします.

655 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:17:46 ]
いくつか突っ込みどころがあるから最初からやり直した方が早い。

656 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 03:59:56 ]
最初からやり直すというか、紙の上で状態遷移を考えた方がいい。
自分の言ってる矛盾に気付けるから。

657 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 08:13:43 ]
>Combo1でaかbが選択された場合はCombo2が有効で
>Combo2でcかdが選択された場合はCombo2が無効になるようにしたいのですが

下のCombo2はCombo1の間違えだよね?



658 名前:デフォルトの名無しさん [2007/12/20(木) 08:46:01 ]
Combo1の間違えでした.

Combo1の状態に応じてCombo2の有効,無効が変化する
物をつくりたいんですが教えていただけないでしょうか

659 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 09:23:02 ]
combo2.setVisible(false);
これでは駄目なの?

660 名前:_ [2007/12/20(木) 11:53:34 ]
上のやり方だとaを選ぶとCombo2は有効になるんですがaを選んだ後にcに変更すると
Combo2は無効にならずに有効のままになってしまいます.
同じようにcを選ぶと無効になるんですがその後にaを選ぶと無効のままになってしまいます.
最初の選択では上手くいくんですが選択を変更すると変化してくれないんです。

661 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 12:45:54 ]
まず、そもそもCombo1ActionPerformedメソッドが実行されてるのかどうかを確かめるんだ。
実行されてるなら、そのときCombo1.getSelectedItem()の値が実際は何になっているのかを確かめるんだ。

662 名前:_ [2007/12/20(木) 13:07:41 ]
Combo1でaを選ぶとCombo1ActionPerformedメソッドが実行されてCombo1.getSelectedItem()の値は
aになっているんですがその後にCombo1でcを選んでもCombo1ActionPerformedメソッドが実行されてません

続けて選んだ場合にもCombo1ActionPerformedメソッドが実行されるようにするにはどうすればよいのでしょうか?

663 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 13:44:37 ]
>>662
実行されてないのをSystem.out.println文で確認した?

664 名前:_ [2007/12/20(木) 16:00:32 ]
確認しました
コンボボックスを変更してもActionPerformedにいってくれないようです

665 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:13:44 ]
ActionListenerをやめて、ListDataListenerでComboBoxModelの変更を捕らえてみたらどう

666 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 19:48:40 ]
おい、おまいら。
SwingApplicationFramework使ってますか?

667 名前:デフォルトの名無しさん [2007/12/20(木) 19:57:08 ]
使ってません。
あれって便利なの?



668 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 20:00:15 ]
使ってみようと、Netbeansでプロジェクトを作った。
でも、どうするものかいまいちピンときていない。
Actionの管理をしてくれるのはいいんだけどちょっと縛りがきついなぁと感じた。
IDE無しでは複雑過ぎる気がする。

669 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 20:57:09 ]
IDEなしでの比較だとアクションイベントを書くのはフレームワーク使ったほうが楽

アプリケーションの起動時と終了時に処理が書けるようになるとかはまぁあればあったでいいという程度

ただアノテーションつかってそれの名称を文字列で記述ってのは実行時エラーの可能性が増えるから
静的言語としてはどうかなぁというのが多い

Web方面のフレームワークもだけどね
Springとか最新版ですら1.4とか過去の互換性のために文字列を使うことが多すぎ
enumきっちりつかってくれよと思うことは多いかな

670 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:39:19 ]
IDEなしということはGUIエディタも使わずにSwingのアプリを作るってこと?
本で紹介するサンプルコードならともかく、本格的なもの作るなら論外だと思えるけど。

671 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:42:07 ]
別に普通に行われてることですが

672 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:42:42 ]
そりゃお気の毒

673 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:47:11 ]
本格的なものを作るならフォームエディタなんて使わないと思うが。

674 名前:デフォルトの名無しさん [2007/12/21(金) 00:58:40 ]
>>670
逆じゃないの?

675 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 01:00:16 ]
IDEサポートなしと読めばいいじゃない。

676 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 01:02:26 ]
>>673-674
はいはいwノシ

677 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 01:04:17 ]
最近Javaから離れて久しいが、GroupLayoutはツールなしで使うのは
辛いと聞いたことがあるな。




678 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 07:36:04 ]
670にとって本格的なものってのは
テキストフィールド2つにボタンひとつ。

679 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 08:34:45 ]
IDEなしじゃ何もできないって人は、素のHTMLをいじれない人と「使えない」って点で似てる

680 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:03:39 ]
ここでは何もできない人の話はしてないね。

681 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:05:03 ]
>>678の煽りの程度の低さに絶望した
もっとまともな指摘があるのかと思った。

682 名前:デフォルトの名無しさん [2007/12/21(金) 11:10:10 ]
仕事でレイアウトマネージャって使っています?

683 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:12:54 ]
使うよ

684 名前:デフォルトの名無しさん [2007/12/21(金) 11:45:21 ]
やっぱ普通使うよね
絶対座標ばっかだ・・・

685 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:29:53 ]
>>679
効率よく出来るかどうかだから。
仕事ならDreamWeaverとか使わないでHTML生成してるアホはいらんね。

ペイントあればフォトショップ等いらないでしょ?とか
テキストエディタでPDF作れるでしょ?といってるのとかわらんな。

>>684
せめてNetBeansに付属の伝統のAbsoluteLayout使ってね。
Nullはだめだぞ。

686 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:52:28 ]
親切な香具師だな。
土を手で耕したいという土民なんかほっとけばいいのに。w

687 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:57:29 ]
なんかバカがいるな。



688 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:33:04 ]
仕事ではGridBagLayoutが基本かな・・・
NetbeansのGridBagLayoutのエディタが無いと仕事にならんね・・・・
もうちょっと進化してくれても恨まないけど・・・・

複数のレイアウトマネージャを組み合わせて、
がちっと作り込むのは実はむしろ趣味のほうだったりする。
それでも、GridBag,Groupを手で書くのは調整くらいはできても、まぁ正直無理。

689 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:37:50 ]
レイアウトマネージャの組み合わせはわりと普通に使う

ただ、GropuLayoutがでてしまったおかげでほとんどそれ1本でいけるようになっちまった

690 名前:デフォルトの名無しさん [2007/12/21(金) 13:47:57 ]
GropuLayoutはいいよね。使いたい。
でもそのためにはJavaのバージョンを6にしないとだめなんだよなー
まだ1.4だしなー
先は長いな・・・

691 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:50:37 ]
GropuLayout

692 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:58:22 ]
パッケージが違っていいのなら1.4から使えた希ガス。
5.0からだったかな?

来年登場予定のJavaSE7がでると1.4は保守されなくなるから。
保守契約結んでいるなら5.0以上でも動くようにしていったほうがいいね。

693 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:55:49 ]
1.4はとっくにEOL。jdk7が出てから死ぬのは1.4.2

694 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:39:20 ]
GroupLayoutが出たときにEclipseからNetBeansに乗り換えようかなと考えたけど
GroupLayoutが、考え方が非常に明快な上に
頭で考えたことを素直に反映できる優秀なレイアウトだったので、やめた

695 名前:デフォルトの名無しさん [2007/12/21(金) 19:40:22 ]
なんじゃそりゃ

696 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:45:29 ]
難読化

697 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:50:41 ]
IDEなしじゃGUIも扱えない奴ってどうなん?
JTableとかテキストフィールドで再現してそう



698 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:56:51 ]
それはないだろ

699 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 20:16:43 ]
無知の自覚がない無知は無知のまま放置がベスト

700 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 21:17:20 ]
>>670
GUIエディタは便利だけど、業務アプリでそういうのでサックリ作っちゃうと
後々火を吹くから俺のPjでは使わない。

>>685
イタイな

701 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 21:46:14 ]
GroupLayoutってさ、vGroupとかhGroupとか使ってコンポーネントのレイアウトを決めるわけだけど、
なんか冗長な記述だよな。これは仕方ないのか?

702 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 21:46:20 ]
>>700
GUIに頼らずにどこまでできるかで、決定的な差が出る場面ってあるからね。
このスレではアマチュアが多いのか、あまり良く分かってない人が多いようだけど。

703 名前:デフォルトの名無しさん [2007/12/21(金) 22:05:17 ]
>>700
えぢたを使って火を噴くって例えばどんなの?

704 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:21:03 ]
ロジックを画面実装で埋め込ませなければ大丈夫じゃないか?
ウチではハンドラをあとからインジェクションする仕組みで使ってるが・・・

705 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:24:13 ]
>>704
確かにそうだね。
完全にGUI担当者がデザイナと化してくれれば問題はないよね。
あとは、GUI担当者が皆一様の作法を身につけてくれることが重要かな。
そのためにもGUIデザインのためのフレームワークみたいなものは欲しいね。

706 名前:デフォルトの名無しさん [2007/12/21(金) 22:27:10 ]
SwingApplicationFramework

707 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:59:58 ]
デザイン関係ない



708 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 06:26:42 ]
GUIエディタ使って火噴くって、どんだけ低レベルなんだよ

709 名前:デフォルトの名無しさん [2007/12/22(土) 07:39:23 ]
>>708
おまえ程低くないと思うよ。

710 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 08:06:29 ]
煽りあいしかできないのか。ちょっとは期待してたんだが。

711 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:13:06 ]
>>706
それはどっちかというとGUIアプリの処理手順をフレームワーク化してるよね
ちょっとわかりにくいかもだけど、俺がいいたいのは、「GUIデザイン」部分のフレームワーク。
そういうのがあったらいいなぁなんてオモタわけ。
うーん伝わらないか。。。

712 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:45:00 ]
>>700をはじめとして釣りがまざってるので注意

713 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:44:41 ]
IDEがないと何も出来ません><ってやつが大勢を得る事なんてないから黙ってようね

714 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:01:58 ]
原因不明のバグが出たらとりあえず全部調べるんじゃね

715 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:22:38 ]
IDEていうかGUIビルダみたいなRADのこと言ってんだろ湧いて来る厨は。

716 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:26:24 ]
せいぜいメインウィンドウのメニューや、そこから辿れる設定ダイアログまでだな。
3ペインアプリとかは手書きじゃないと満足いくものはできないだろ

717 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:32:42 ]
3ペインなら今手書きで作ってるが・・・。



718 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:37:38 ]
GUIエディタ使うってのは、業務アプリの画面とかダイアログだろ。

719 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:39:31 ]
IDEじゃ何もできません><ってやつは使い物にならんよなぁ。
ツール使えばすぐできることを、なんだかんだいいながら手書きでやるんだけど、無駄に時間かかるし古い機能しか使ってなかったり。

720 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:46:41 ]
>>718
なるほどね。業務アプリって画面びっしりコントロールをつけるからなw

721 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:00:30 ]
>>719
まともなコードが書けるかどうかが重要であって、
IDEの使用経験の有無は大した問題じゃない気がする

IDE使ったことない奴には使い方を教えてやるだけで済むが、
プログラミングのセンスがない奴はいくら教えてもどうにもならん

722 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:10:38 ]
もういいからVB使っとけよ。

723 名前:デフォルトの名無しさん [2007/12/22(土) 19:11:51 ]
VBにSwingってあるの?

724 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:15:21 ]
>>721
でもIDEの慣れの差はやはり大きい
NetBeansを長年使ってきた人はさくさくつくれるけど、
Eclipseしか触ってこなかった人は開発効率が悪い

1,2年たつと違うんだろうけどね

725 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:17:27 ]
>>724
結局それがいいたかっただけか。
マジレスしなくてよかった。

726 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:19:44 ]
>>725
俺今日はじめて書きこんだんけど

727 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:00:38 ]
業務アプリだと、こんな感じで入力項目があるからな。
www.epson.jp/products/oen/products/kyuyo_lite/img/img_kyuuyo02.gif

ツール使わずにやるのは非効率極まりない。



728 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:45:36 ]
>>727
俺が仕事で作ってる業務アプリは、こんなもんじゃねーぞ・・・
タブで分かれて細かい設定項目が山のようにある。
あんなの手書きしてたら気が狂うわ。

729 名前:デフォルトの名無しさん [2007/12/22(土) 20:48:02 ]
普通に100個ぐらいコンポーネントあるよね

730 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:12:10 ]
まだ言い合ってるのか。お前らも飽きないな

731 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:22:46 ]
業務アプリじゃJTableやJTreeはめったに登場しないしな
そういう人らは使えばいいんじゃない?

732 名前:デフォルトの名無しさん [2007/12/22(土) 21:24:25 ]
JTableは使用しまくりだよ

733 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:32:13 ]
>>731
JTable使いまくりだけど・・・
検索結果を大量に表示したりせんの?
まあ、めったにJTreeは使わんけど。

734 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:44:43 ]
テーブルがでてこないアプリってあるか?
ツリーはあんまりないけど

735 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:53:20 ]
個人開発だけどツリーの方がよく使う。JTableはスプレッドシートだから業務アプリでよく使うんじゃない?

736 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 01:19:09 ]
アプリ毎で性格違うんだから、自分の携わったプロジェクトの経験だけあげてもしかたない。
でも、部品の利用のされ方ってのは興味深いな。

アプリで使われてる場面がどれくらいあるのか、
JTableなんかのレンダラとかもどうされてるか気になる。
デフォルトで行ける場面ってどれくらいあるのかとか。

Swingのデフォルト部品って、あと一味足りないみたいなとこあるからなぁ。
というか、特にJTableに感じるんだけど。
(表の真ん中にスクロールバー付けたいなぁ、とか)

737 名前: mailto:sage [2007/12/23(日) 03:03:49 ]
Swingでキャッチされない例外が起きてもプログラムは終了しませんよね。
エクリプスとかで走らせてるとoutputに表示されるけど、コマンドプロンプトから走らせるとキャッチされない例外が起きてるのが分かりません。
これを知るにはどうしたらいいのですか?
検出してログをとるなり、メッセージダイアログを表示するなりしたいんです。



738 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 05:31:30 ]
sun.awt.exception.handler で検索汁

739 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:06:01 ]
throwsして無けりゃなんか表示するとおもう

740 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:13:30 ]
>>736
> 表の真ん中にスクロールバー付けたいなぁ
それは一味も二味も違うだろ w
それができるテーブルコントロールなんて他の言語でも見たこと無いけど。
まあ、俺なら二つのテーブルを並べて、スクロールを同期させるかな。

741 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:42:12 ]
>>738
どうもありがとうございます!
>>739
jarにしてダブルクリックで起動したりもするので、windowsだと何も表示されないのです。

742 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 16:28:19 ]
>>741
java -jar file.jar
と「ファイル名を指定して実行(R)..」すれば
例外は全部コンソールに表示される

743 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:40:17 ]
というか例外はアプリケーションのどっかの層で拾って
ユーザーにGUIで見せて後は処理続けるかどうかは状況次第っていうように組むもんだが。

System.errにテキストコンポーネント突っ込んでやると楽。

744 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:02:41 ]
>>743
その、「アプリケーションのどっか」にこないから問題っていってるんじゃねぇの?
738で解決するようだけど。

745 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:58:17 ]
例外の対応は場所によって個別対応するしかないよ。
問題ない例外なのかそうでないのかは単純に判断できないし。

運用時ならテキストファイルにログを書き出しておいてそこをメールで添付させるように促すとか
画面のスナップショットを自動でとってdesktopに自動でbmp作ってそれを添付させるとか
まぁいろんな方法があるわな。

746 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:15:13 ]
NetBeans6.0ってJTable使うのにほとんどの場合面倒な設定を直書きしなくてよくなったのな。
新機能であまり取り上げられていないけどこれはすごいな。

747 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 14:46:26 ]
SwingでPopup形式でJPanelとかJTableとかを表示したいのですが、どう書けばよいでしょうか?



748 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 15:34:33 ]
複雑なロジックの入ったものならポップアップよりダイアログにするほうがいいけど、ポップアップじゃないとダメ?
JDialogを普通に使うほうがいい場合もあると思うけど。

JPopupMenuは想定される素の状態だとメニューバーと同じくアクションボタンを並べるものだけど
例によって自由にカスタマイズできるので継承するといいかも。

749 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 15:41:53 ]
>>748
JFrameの上に出せるWindowなら何でも良いというくらいの意味だったんですが、Dialogでやろうと思います。
JPopupMenuがカスタマイズできるとは知りませんでした。ありがとうございます。

750 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:00:31 ]
Swing Application Framework でメニューバーとかツールバーを実装する場合の作法を教えてちょ。

751 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:26:58 ]
>>750
NetBeansでデスクトップアプリケーションで作ると
メインフレームがメニューとか作られるから参考にするとよろし

752 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:29:32 ]
>>751
サンクス。
いつもEclipseばっかり使ってたもんで、NetBeansには疎いんですが、
機能的には遜色ないですかね?
Eclipseでいうところの「呼び出し階層を開く」とかそういうのはありますかね?よく使う機能なので。

753 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:25:27 ]
宣言をしてる場所にとんだりする機能?

CTRL+クリックでとぶよ
キー操作だけだとどこだったかはわすれたけどEclipseと同じキー設定もあったような気がする

乗換えとかじゃなくて参考に出来ればよいと考えるといいかも

でも、GUIアプリ開発とWebアプリ開発が目的なら乗り換えるほうが楽だと思う
Swing Application Framework対応していて、@Actionとかぜんぶやってくれるよ

754 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 08:37:12 ]
>>753
そっちの機能じゃなくて、選択したメソッドがどこから呼び出されているかを一覧する機能。
かなり重宝してる機能なのであったらいいんだけど。

755 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 13:14:07 ]
呼び出し元なら普通に昔からあるけど。

756 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:09:33 ]
あるオブジェクトをある場所に移動させていきたい時に、
オブジェクトのxとyを少しづつ変化させているんですけど、どうやるのがベターですかね?
オブジェクトはいろんな場所に発生するので、
if (x > 行き先X) {


757 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:10:11 ]
すいません 途中でした。
続き
if (x > 行き先X) {




758 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:13:28 ]
すいません 途中でした。
続き
if (x > 行き先X) {
x -= 5;
} else {
x += 5;
}
if (y > 行き先Y) {
y -= 5;
} else {
y += 5;
}
こうやってるんですけど、こうするとxかyのどちらかが行き先に到達した場合に、
ぷるぷる震えた感じになっちゃうんですけど、なにかうまい方法ありますかね?

759 名前:デフォルトの名無しさん [2007/12/27(木) 00:13:37 ]
それはSwingの問題なのか??

760 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:15:21 ]
単に行き先Xや行き先Yが5の倍数じゃないんじゃね?

761 名前:758 mailto:sage [2007/12/27(木) 00:18:36 ]
>>760
そうですちょうど倍数じゃないときで、移動距離を1にしたくない場合、
どういうロジックが考えられますか?

762 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:34:37 ]
>>761
それぐらい、自分で考えろよ・・・・
つかスレ違い。

763 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:40:10 ]
Math.abs() 絶対値
差が5に満たない場合
差の分だけ移動
既に目的地に到達してたら チェックはしない。
移動距離の5は定数にしようかな

思った事を書いてみた。
俺は寝る、がんばれ。

764 名前:758 mailto:sage [2007/12/27(木) 00:41:06 ]
そうですか
表示上の問題だと思ったんでここで聞いたんですが・・・
xflagとyflagを作って、&で到達チェックするとか考えたんですけど、
スマートじゃないんですよね
たとえばどんなのが考えられますかね?

765 名前:758 mailto:sage [2007/12/27(木) 00:43:12 ]
>>763
ありがとうございます
とても参考になりました

766 名前:デフォルトの名無しさん [2007/12/27(木) 00:45:01 ]
>どういうロジックが考えられますか?

って自分で聞いてるぐらいだからSwingの問題じゃなくてアルゴリズムの問題だろ。

767 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 00:51:43 ]
そうですね
javaのスレッドで聞いたほうが良かったですね
答えてくれた方ありがとうございました。



768 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:03:08 ]
java関係ないし
問題の切り分けに注意しないと間違ったスレでは歓迎されないぞ

769 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:14:11 ]
そうですか
初心者スレッドで聞けばよかったですか
いえばただの簡単なアルゴリズムの問題なのですが、
ここなら同じようなことをやっている人がいるかなと思ったんで、
ここで聞いたほうが早いかなと思ってしまいました。

770 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:17:26 ]
初心者は初心者らしく初心者スレで聞こうな。
まあ、その前にこの程度のロジックは自分で考えられないと、
なにを作るにしても困ると思うぞ。

771 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:33:38 ]
というか普通に高校の物理の問題じゃないかこれ?
そこまでのアルゴリズムじゃないけど。

772 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:36:47 ]
物理?!

どう見ても小学生の算数レベルだろ。

773 名前:758 mailto:sage [2007/12/27(木) 01:39:19 ]
強引にやろうと思えばできると思うんですが、
スマートにできないんですよね(馬鹿なんで)。
完璧を目指すのはキリがないと思うんですが、
ある程度きれいなコードが知りたいんですよ。

ttp://pc11.2ch.net/test/read.cgi/tech/1197710566/
ここに移動したんで良かったらいいサンプルコードお教えください。

774 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:43:05 ]
>>769
>ここで聞いたほうが早いかなと思ってしまいました。
こんなのを自分で考えられないとしたら先は長い気がするが…
まぁ地道にがんばれ!

775 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:06:16 ]
ベーマガとか初心者向き雑誌がないと大変なのかなーとかおもっちまった
こういうの当時の小学生は普通に作ってたもんね

776 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:18:59 ]
HSP使ってる連中も普通に作ってるぞ。
というかゲームにSwing使ってるの?

777 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:20:55 ]
Java2Dを使うことはあるかもしれないが、Swingはあんまつかわないだろうね
ただ、ここAWTと合流したからJava2D等も含むといえば含む

本気でやるならJOGLだろうけど



778 名前:デフォルトの名無しさん [2007/12/27(木) 02:26:13 ]
本当だ!!
いつの間にかスレタイにAWTが入ってた!!

779 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:32:45 ]
JOGLの正式版が出たときプレイアブルな2DデモとGLCanvasに描画するJMFのレンダラを組んだけど
いまじゃJOGLはjava2Dとパイプラインが統合されてんだよね。

OpenGLの関数使いたいわけじゃないなら-DオプションでOpenGL使うようにした方が楽かね?
それならわざわざ2D描画に3Dtoolkit使う必要ないし。

バグさえ消えれば。


780 名前:デフォルトの名無しさん [2007/12/27(木) 04:23:20 ]
javax.swing.timerなんですけど
↓の様にやること多いじゃないですか
このタイマーをストップさせることって可能ですか?
public void startTimer() {
 int i = 0;
 Timer timer = new Timer(20, new ActionListener() {
  public void actionPerformed(ActionEvent e) {
   if (i > 100) {
    return;
   }
   i++;
 });
 timer.start();
}
いままで↑のような感じでiが100超えたらリターンするようにしてたんですが、
ずっとタイマーは動きっぱなしなんですよね。
timerはiが100を超えたらストップさせたいんですよ。
timer内から自分自身をstopさせることができればいいんですが...

781 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 07:13:18 ]
まぁ、とりあえず読みなさい。
java.sun.com/javase/ja/6/docs/ja/api/javax/swing/Timer.html

782 名前:780 mailto:sage [2007/12/27(木) 07:55:23 ]
そこも含めていろいろググったんですが...
実際のコーディングを見てください

まずメインクラスでクラスAのインスタンスaを10個作る(略
pubilc void run { //メインループ
 for(int i=0;i<10;i++){    //a[0]からa[9]のxを増やしていき、xが10になったらstartTimer()をplay
  a[i].x++;
  if(a[i].x >= 10) {
   a.startTimer();
  }
  @
 }
}
pubilc class A {
 int x = 0;
 int size = 10;
 public void startTimer() {
  Timer timer = new Timer(20, new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    if (size> 20) {
     return;
    }
    size++;
  });
  timer.start();
 }
}
実際はa[0]が増分し終わったらa[1]にいったり、同時に動いたりするんですが...
@の部分で判定してtimer.stopさせようとしてもすぐストップしてしまうと困るし、
メインループからはtimerがいつ終わるのかわからないのでストップできないんですよね
なにか大きな間違いがあるんでしょうか?

783 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:37:43 ]
Timer#stop()を呼べば止まると分かっているのなら、
後は変数のスコープの問題。
ローカル変数timerをクラスAのインスタンス変数にして、
こんなメソッドを作って
public void stopTimer(){
 timer.stop();
}
これをactionPerformed()内の適切な位置で呼べばいい。

ところでこのサンプルコード、Timerでやってる処理がi++だけなんだが、
これは単純化したサンプルコードなだけだよね?
ホントのコードでは、ちゃんとGUIスレッドですべき処理をしてるんだよね?

784 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:53:05 ]
ああうまくいきました
GUIスレッドですべき処理というのがいまいちわかんないんですが、
ある条件でaのエフェクトを起こすみたいな感じなんですよ
とにかくこれで寝れます どうもありがとうございました

785 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:45:15 ]
ボタンのイベント中にタイマーの時間が来たり、その逆も有ったりするって意味じゃね。

786 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 12:26:40 ]
>>783
swing.TimerはEDTでactionPerformed呼ぶからそのへんは大丈夫と思

787 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 13:29:19 ]
>>779
Java2Dだとαブレンディング/テストとか足りないものが多いから
2DであってもOpenGL使わざるを得ないのが現実

>>785が正解
あと注意すべきところはSwingTimerは定期処理にはいいけど、
長時間の流れがある処理には向かないというのもおぼえておくとよろし

あくまでも一定時間ごとにアクションイベントを発生させるだけ
詳しく見てないけどSwingFrameworkでjavax.swing.Timerも扱えるんかな?



788 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:23:18 ]
Javaで動画を再生しようと思っているのですが(Macも含める)
・JMFだとMacで再生出来ない。
・QuickTime for JavaだとLinuxで再生出来ない。
という認識はあっていますでしょうか?

789 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:41:37 ]
JMFのクロスプラットフォーム版を含めるなら間違ってる。
というかこれくらい人に聞かずとも分かるだろ。

790 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 00:08:21 ]
>>789
ttp://www.animoids.com/jmf_for_mac.html
「JMF_2_1_1_mac.zip」の部分から、
もしかしてMac用がどこかで配布されているのかと勘違いしてしまいました。

791 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 03:27:55 ]
検索するとそこヒットするんだよね。

JMFはjava動かすスペックと動画デコードするスペックを
ダブルで要求するからネイティブ版でもいろいろすると重いぞ。

単純なラッパーだからwin版はバグだらけだし。

792 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:46:22 ]
>>790
こんなの見つけたぞ
ttp://www.sra.co.jp/people/nisinaka/Jun4Java/index_ja.html

793 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 15:55:29 ]
2004年から更新してないとか心配なんだけど、
なんでどこも投資して開発を続けないんだろう

794 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:06:51 ]
こんなところでじゅんを見る事になるとは・・・。

795 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:40:20 ]
JFileChooserにおいて、ダイアログ表示時のデフォルトの名前を指定するにはどうすればよいでしょうか?

796 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:55:09 ]
setSelectedFile() で指定してから表示

797 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:57:49 ]
JFileChooser#setSelectedFile(File)



798 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:14:41 ]
ありがとうございました!

799 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 00:16:16 ]
NetBeans入れたら超もっさり動作でがっかりした。
結局今はEclipseにもどりますた。
SwingアプリがSWTアプリみたいに比較的ストレスなく動いてくれる日はマダ来ないのかね。

800 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 00:25:30 ]
もっさりとかストレスなく動くとかってのは主観的なものだから、
>>799の気分次第で明日にでも来るし、永遠に来ない事もありうる

801 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 00:57:01 ]
>>799
マシンのスペックはいかほどで?

802 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 00:58:07 ]
JavaはマイナーCPUに冷たいだろうし
マイナーGPUにも冷たいのかもしれんね

803 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:02:44 ]
CやC++なら温かいともいえないんじゃね?

804 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:16:32 ]
>>802
Java使ってるSWTもマイナーCPUやマイナーGPUに冷たいって事に?

805 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:17:10 ]
>>802
SPARCにも冷たいって事に?

806 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:20:05 ]
>>804はスルーするが、>>805は許せん。

807 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:42:32 ]
今時はお世辞にもメジャーとは言い難い。



808 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:16:14 ]
いまさらSPARCもねえだろ

809 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:29:10 ]
金にいとめをつけずWinで最速のマシンもってくれば、Javaでもかなり高速動作するんじゃないの。

810 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:33:56 ]
既存のコンポーネントにアクションを付加したい場合どのような手段を取るのが比較的単純に済むでしょうか?

例えば、JTreeでCtrl+Fで検索のアクションをさせたい場合などです。

811 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:44:54 ]
>>810
適当なコンポーネントの ActionMap と InputMap に登録すればいいだろ。

812 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:07:49 ]
JFileChooserののろさにガックリ

813 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:15:44 ]
>>368 あたりで話題になってる不具合のせいかも?

814 名前:>>810 mailto:sage [2007/12/31(月) 18:36:09 ]
InputMapを知りませんでした。
こんな簡単に実現できるなんてSwingは本当にすごいですね。
ありがとうございました。

815 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 02:16:39 ]
>>799
いつものネガティブキャンペーン乙

6.0だとEclipseのほうが軽いとかってありえんだろ
SWTはスレ違いだからそっちでやってくれ

816 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 02:28:13 ]
今更釣られるアホは寝てろ

817 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 08:17:29 ]
たしかに起動に関してはnetbeansめっちゃ遅いよな



818 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 02:11:59 ]
何もプラグイン入れなければ、Eclipseは軽いね。

819 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 02:17:51 ]
Java EE フルセット入れた Eclipse のもっさりと不安定さはすさまじいものがある。
sysdeo の Tomcat プラグインと JSP, XML の構造化エディタ程度ならめちゃめちゃ軽い。
必要なものを選択できる人間だけが楽できる。

820 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 03:15:40 ]
>>819
インストールしてもプラグイン無効にすればいいんじゃね?

821 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:26:40 ]
swingのコピペを調べてたんだが。

CTRL+X -> CTRL+V で「切り取り -> 貼り付け」した時に、
貼り付け後に、余計なオブジェクトを削除するための後処理はexportDoneでいいんだろうか?
なぜか、CTRL+Xを押した瞬間に、exportDoneが実行されちゃうんだ。

exportDoneの説明には、
>データのエクスポート後に呼び出されます。このメソッドは、アクションが MOVE の場合に転送されたデータを削除します。
>MOVE はこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActions には MOVE が含まれません。

どっちやねんw

822 名前:821 mailto:sage [2008/01/02(水) 22:28:33 ]
今のところ、対処方法が分らないので、exportDoneの中では何もせず、
importDoneの中で、貼り付け操作完了後に、
自分で削除操作を実行しようかなと思ってる。

823 名前:821 mailto:sage [2008/01/03(木) 00:34:28 ]
なにをバカなことを!

切り取りの標準的な操作は、切り取りと同時に削除だろうが!

エクスプローラの動作が特殊なんだ!
新年早々はずかしぃぃぃぃぃぃぃぃぃぃぃぃ!!!!!!!!!!

824 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 03:16:52 ]
エクスプローラの動作は、CUTというよりPREPARE-MOVEだからな。

825 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:53:44 ]
>>817
終了はめっちゃ速いのだが。

826 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:23:28 ]
jdk1.6.0u3
import java.awt.Frame;
これってバグなの?

827 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:33:55 ]
      ___    ━┓
    / ―\   ┏┛
  /ノ  (●)\  ・
. | (●)   ⌒)\
. |   (__ノ ̄  |
  \        /
    \     _ノ
    /´     `\
     |       |
     |       |

           ___   ━┓
         / ―  \  ┏┛
        /  (●)  \ヽ ・
       /   (⌒  (●) /
       /      ̄ヽ__) /
.    /´     ___/
    |        \
    |        |



828 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:49:08 ]
>>827
分かる人にはこれだけで分かる

829 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:53:32 ]
>>827
>>828
バグってたのは俺のほうだったw
*.class 削除したらコンパイル通ったよww

830 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:55:29 ]
どういう環境だよ・・・

831 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 01:26:16 ]
>>830
pc11.2ch.net/test/read.cgi/tech/1197710566/646
だろう。

832 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 11:20:26 ]
テストするならTestFrameとかにすべし

833 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 12:55:58 ]
>>831
よくみつけてきたな

834 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 03:57:38 ]
相変わらず質問スレは気持ち悪いな

835 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 17:58:19 ]
import java.util.*;
import javax.swing.*;
public class NewJFrame2 extends javax.swing.JFrame {
List<String> dummyList = new ArrayList<String>();
JList jList;
public NewJFrame2() {
setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE);
JScrollPane jScrollPane = new JScrollPane();
jList = new JList();
jScrollPane.setViewportView(jList);
getContentPane().add(jScrollPane, java.awt.BorderLayout.CENTER);
for ( int i=0; i<300; i++ ) {
StringBuilder sb = new StringBuilder();
int max = (int)(Math.random() * 100 + 1);
//int max = 20;
for ( int j=0; j<max; j++ ) sb.append("A");
dummyList.add(sb.toString() + " " + i);
}
jList.setModel(new AbstractListModel() {
public int getSize() { return dummyList.size(); }
public Object getElementAt(int index) {
return dummyList.get(index);
}
});
pack();
}
public static void main(String args[]) {
new NewJFrame2().setVisible(true);
}
}

836 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 18:01:42 ]
JListのカーソルキーによるスクロールことで謎があるので投げてみる。

>>835のプログラムなんだけど、単純にJListの中に300個のダミーデータを入れている。

カーソルキーで下にスクロールしていき、数十行進んだら、こんどは上に10行くらい
スクロール。
そしたらまたカーソルキーで下に移動。
すると、選択されてる項目が一瞬で画面の下までジャンプしてしまう。
このプログラムで、maxを20とか一定の値にした場合はジャンプしない。
JListの各セルの文字列長をランダムに変えたものを入れるとこの現象が起きる。
こういう仕様なのかもしれないけど、一瞬で選択位置が飛ぶと、
目線がそれてしまうので操作感がよくない。
maxを固定したときのように動作してほしい。
なんとかする方法ないかなぁ?

837 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 19:57:24 ]
>>836
解決法でないのだが、「ジャンプ」の条件について。
固定長かどうかではなく、Viewport の外に描画域があるかないか、ではないのか、と。

固定長で横スクロールが出るようにしたときは「ジャンプ」するし、
固定長でなくても、横スクロールが出ないときは「ジャンプ」しない。

JScrollPane で横スクロールを非表示にしても、見えない部分があるときは「ジャンプ」する。



838 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:05:46 ]
フレームの横サイズを水平スクロールバーが出なくなるまで広げてやればジャンプはしないな。
しかしちょっと設定をいじくったぐらいでは解決しそうない。
オーバーライドして一部の機能を殺すとか。

839 名前:デフォルトの名無しさん [2008/01/10(木) 18:27:36 ]
↓このバグだと思うよ。7で直ってるらしい。
bugs.sun.com/view_bug.do?bug_id=6568906
bugs.sun.com/view_bug.do?bug_id=6510999

840 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 18:57:44 ]
バージョンアップを待つのが一番楽そうだね

841 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 19:27:17 ]
よく見つけてくるな。すげーよ。

842 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:33:46 ]
有名なバグだぞ。
JListに512個要素突っ込むとバグるとか放置されてるし。

843 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:03:23 ]
>>842
2000個いれてみたけど、なにかバグあんの?

844 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:52:30 ]
512個入れて、一番したのアイテム選択してCTRL+B

これで、すべてのアイテムが2個ずつになって1024個になるというステキなバグ

845 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:06:27 ]
1から10000までの数字を全部掛けたときに
末尾に並ぶ0の個数を求めるのをJavaでおながいします


846 名前:デフォルトの名無しさん [2008/01/10(木) 23:10:36 ]
それはSwingに関係あるのか?

847 名前:デフォルトの名無しさん [2008/01/10(木) 23:16:39 ]
>>844
バグが出なかったんだけど
他になんか条件ないの?



848 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:17:55 ]
>>845

class Test{
static void main () {
cnt5 = 0;
for (int i = 1;i <= 10000; i++)
if(i % 5 == 0)
cnt5++;
System.out.println("count" + cnt5);
}
}

849 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:22:25 ]
ああ、5から5ずつ足してくから10000/5=2000か?

850 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:48:27 ]
10を素因数分解して2*5。んで、2は大量に有るから、5だけ数えれば良い、と。

851 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:51:27 ]
どの道>>848は間違ってるわな

852 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:07:08 ]
>>850
i%25 とか i%125 も数えなきゃだめじゃね?

853 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:07:36 ]
どのみちグズグズっぽいんだが。

854 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:15:22 ]
スレチだからまぁ。妖精現実を引っ張ってお茶を濁すべ
つ ttp://deztec.jp/x/05/faireal/faireal-26-index.html

855 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:19:54 ]
いかにロジカルに解くかが課題じゃなけりゃ BigDecimal で階乗求めて数えた方が早い。
実用に問題ないレベルならシンプル記述に徹するのも美学。

856 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:48:09 ]
80-20の法則な。今丁度勉強中。

857 名前:848 mailto:sage [2008/01/11(金) 01:29:37 ]
直した。
class Test{
static void main () {
int cnt5 = 0, n;
for (int i = 5;i <= 10000; i += 5) {
n = i;
while (n % 5 == 0) {
cnt5++;
n /= 5;
}
}
System.out.println("count" + cnt5);
}
}



858 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:39:18 ]
だからどのへんがAWT/Swingに関係あるんだよと

859 名前:デフォルトの名無しさん [2008/01/11(金) 01:57:27 ]
839だけど、このバグは初めて知った。
>>有名なバグだぞ。
にしては、バグ登録日があまり昔ではないが?

>>842
>>844
そんなバグはありえない。
まず、JList、JListのsuperクラスにCTRL+Bなんてデフォルトのキーバインドはない。
さらに、ListModelへ項目の追加、削除が可能であることを
JListは知りようがないから、JListがListModelに項目を追加することはできない。
(ComboBoxModelのMutableComboBoxみたいなインタフェイスはない。)

そもそも、登録もされていないキーバインドが実行されるなら、
JListでなく、JComponentのバグだし。

JListがListModelに項目を追加する唯一の方法は、
ListModelをDefaultListModelへダウンキャストすることだけど、
Swingのソースコードにダウンキャストするような箇所はない。

さて、どうやったら、ソースに書かれていないことを
JListが実行するのだろう?


860 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:06:00 ]
256発あてるとバキュラを破壊できるんだぜ

861 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:13:52 ]
Observer や Composite 型の設計だと本体クラスでそう書かれてないからライブラリのバグじゃねーとは
断言できないんだけどな。実行時のリスナやら集約の親子まで調べてやらないと。

862 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:22:05 ]
ちょっと尻切れトンボだった。
JLabel クラスが無罪であることを得々と説いてもあんまし意味なくね? という話 (実装者乙、でなければ)。

863 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:17:13 ]
JEditorPane とか、せめて W3C の DOM で xhtml + CSS になってくれりゃ
XSL で処理できるからデータを利用しやすいんじゃがのう。

864 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 18:20:01 ]
自分でやれば良いだろそれくらい。

865 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 18:50:17 ]
Lobo Browserに投資する企業はいないのかねぇ

866 名前:デフォルトの名無しさん [2008/01/17(木) 19:01:08 ]
>>865
ブラウザを使うのがPCだけしかない考えてるなら、考え直した方がいい。

867 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:04:52 ]
Swing の HTML 機能も携帯のフルブラウザにすら追い越されて久しいわけだが。



868 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:21:49 ]
>>867
一緒にしてるしwwwアホか?

869 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:27:01 ]
シンクライアントに必要なだけだし携帯とかいらんな

870 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:30:49 ]
>>868
むしろあの HTMLEditorKit 系をおまいがどこで活用できてるのか知りたい。

871 名前:デフォルトの名無しさん [2008/01/17(木) 19:31:39 ]
ブラウザをJavaでやる必要があるのか?

872 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:42:23 ]
普通にあるぞ。例えばヘルプ機能とかの生産性があがる。
JDICだとXSS対策が必要だろうけど、こっちは不要。

873 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 19:56:22 ]
うん、ヘルプは俺も使う。だがどうしてもその Sandbox から出してやれんw

874 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:06:38 ]
バカばっかだな

875 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:09:36 ]
Sandboxなフルブラウザは作れると思うが。
Rhinoにその手のインタフェースを与えなきゃいいだけだ。

876 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:22:15 ]
フルブラウザという言葉自体胡散臭い

877 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:25:26 ]
頭の悪い煽りがやたら入るスレだなw



878 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:30:43 ]
たまに客がどこで見つけたか知らないが 「Swing でもブラウザみたいなこと
できるんでしょ?」 と言い出す事もあるが、あれを見せるとさすがに黙る。

879 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:34:02 ]
つ Flying Saucer

880 名前: mailto:sage [2008/01/17(木) 20:39:33 ]
Swing の HTMLEditorKitは文字通りEditorのためでブラウザみたいに表示onlyではないからね。
でも日本語とかIMEのこととか考えてないよな、あのHTMLEditorKitは。表示だけならいいけど。

881 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:46:38 ]
4.01準拠マダー?

882 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:57:24 ]
JavaがC++より優れている事を示す
絶好の材料だと思うんだけどなあ<ブラウザ

883 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:15:59 ]
標準ライブラリの有無で言語の優劣を決めるのか?

884 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:23:11 ]
実際問題、ライブラリとIDEが言語仕様の優劣を余裕で帳消しにするからね。
D言語1.0がまったく普及しない原因がそれと言われてるし。

885 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:29:11 ]
C++の失敗もそうだね
標準ライブラリがしっかりしてれば
Javaは生まれなかったかも知れない

886 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:30:48 ]
Perl嫌いだけどこれだけ流行ってしまったのは
CPANのおかげと言っても過言ではない死ね

887 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:36:14 ]
>>883 の中では SmallTalk が世界を救うようです。



888 名前:デフォルトの名無しさん [2008/01/18(金) 03:53:19 ]
java c++ d を同列に扱う馬鹿がおる

889 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 08:12:32 ]
>>888
人を否定するなら代替の主張を出してからにしたら?

890 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:17:41 ]
なにいってんだ?

891 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:29:51 ]
同列だろ。言語仕様は実装とは違うレイヤーにある。

892 名前:デフォルトの名無しさん [2008/01/18(金) 19:37:12 ]
いいかげんスレ違いだろ
次の話題どうぞ
↓↓↓

893 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:38:57 ]
JMFって商用可能ですか?

894 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:55:06 ]
スレ違い

895 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:11:16 ]
どうかんがえてもここだろ。自治厨とか懐かしすぎ。

896 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:52:29 ]
JMFがここだって

897 名前:デフォルトの名無しさん [2008/01/18(金) 21:04:19 ]
じゃあJOGLはここでいい?



898 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:36:21 ]
じゃあ、SDL for javaもここだな。

>>865の脳内ではメディア再生ライブラリがGUIツールキットなんだよ。

899 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:51:43 ]
普通の考えじゃん。頭おかしいんじゃね?

900 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:57:52 ]
JOGLはこっちじゃない?
pc11.2ch.net/test/read.cgi/tech/1033703640/

901 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:25:19 ]
JOGLとJava3Dはまったくの別物だぞ・・・
むしろGLCanvasとかGLJPanelとかAWTとSwingの外部コンポーネントと考えれるからこっちだろと

シンプルに描画だけのOpenGLの実装だからユーザーに全ての描画を任せるタイプで
フルスタックで重いJava3Dとはかなり違う

902 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:44:31 ]
JOGLはOpenGLスレで良いらしいぞ

903 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:32:48 ]
OpenGL自体の知識はOpenGLスレが本筋
でもGLCanvasの挙動とかどうかんがえてもむこうの範疇ではないと思うんだが

904 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:49:50 ]
JMFの話題についてけないゴミなんだろうな

905 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 02:38:13 ]
スレチ

906 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:52:45 ]
Java標準拡張のメディア再生フレームワークのどこがスレ違いなんだかw

907 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:57:23 ]
スレタイ嫁アホ



908 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:58:04 ]
誰も答えられる奴がいないんだろう。フヌケばかりだしw

909 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:00:19 ]
自己紹介乙

910 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:06:22 ]
>>909
フヌケw

911 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:09:12 ]
頭の弱い自治厨が沸いてるみたいだけど、前からJMFの話題は出てるから。

912 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:17:48 ]
スレタイの読めない盲目がわいてるからスルーしろ

913 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:20:32 ]
JMF涙目www

914 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:24:53 ]
>>893
ライセンス読むと良いよ。
たしかRuntimeと同じ特例が適用されてたと思う。

915 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 17:18:55 ]
そういえばJava Media APIのスレってないんだな。
JMFとJOGLは需要ありそうというか隔離しないと他で暴れるバカが出てきそうだけど。

JAIは実際に使ってるの見たことないな。

Java Media APIスレ立てたら誘導用くらいには機能するかね?

916 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:02:09 ]
>>915
JMFはあってもよさそうなもんだなぁ…
JOGLは…どの程度使われてるんだろ…?

917 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:18:28 ]
ちなみにJava Media APIsはこんだけある


・Java Media Framework (JMF)
・Java Sound API
・Java 3D
・Java Binding for OpenGL(JOGL)
・Java Advanced Imaging(JAI)
・Java Image I/O
・Java 2D
・Java Speech API
・Java Telephony API(JTAPI)


JMFとJava Advanced Imaging、Java Image I/O
、Java 2DはAWT/Swingコンポーネント関係ないなら分けた方が良いと思うんだけどな。



918 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:23:03 ]
使われてる割合JOGL>JMF
知名度JMF>JOGL
日本語リソースの多さJMF>JOGL

じゃない?
javaでゲームつくるとなるとJOGLは欠かせないけど、なきゃないでJava2Dで十分って感じ。
ゲ制のJavaでゲームつくるスレが落ちたからJOGL聞く場所がないんだよ。

919 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:31:48 ]
>>918
javaでゲームつくるとなるとJOGLがほしい、ってのはわかるんだけど…
そもそもPC向けゲームをつくるのにjavaを選ぶ理由がないよなぁとか思うわけですよ?
その手のゲームって結構あるものなの?

920 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:32:44 ]
コードに手を入れず入出力フォーマット増やしたいときに使うよ > JAI
まぁバグも多いけど。

921 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:32:58 ]
JOGLはOpenGLスレでもいいんじゃない
ところでJMFとJOGLって比較するもんなのか…?

922 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:42:12 ]
別に比較したいわけじゃなくてスレたてるかどーすっかって話だろ。
需要的に考えると全部まとめて Java Media API スレとかでもいい気がするな。

923 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:48:58 ]
ぐだぐだ言ってないでスレ立てればいいだろ

924 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:57:23 ]
JOGLは2.0はサポートするけど1.3で拡張からコアに入ったAPIは混同するという理由で1.3で追加されたAPIはサポートされてないから迂闊にOpenGLスレいけないんだよ。

あとjavaでゲームつくるってのはかなり居る。
日本でもググレば出てくるし、海外はJOGL,JInput,JOALはセットでゲームつくるときに使う。
ただ、リソースは海外の方が多い。
だから日本語のリソースがないから英語読めないと何も出来ネ!ってなる。

俺も需要的にJava Media APIsで統一してスレ立てても良いと思うんだが・・・誘導・隔離用にw
IIOとかJava soundはアプリケーションプログラマが直接いじる所って少ないしさ。

925 名前:デフォルトの名無しさん [2008/01/25(金) 20:08:13 ]
JOGLって将来的に標準に入るって可能性ありますかね?

926 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:22:48 ]
クライアント向けのJava標準拡張は全てが滅茶苦茶将来性がある。
根拠はJava 7に登場のJava Kernel、JAM、JavaFXあたり。これらは要チェック。

Java Sound本、最近でたね。つい衝動買いしたけど、まだ読んでなかったり。

927 名前:デフォルトの名無しさん [2008/01/25(金) 20:29:26 ]
工学社ってだけでなんか敬遠してたんだけど実際どうなんだろう・・・



928 名前:デフォルトの名無しさん [2008/01/25(金) 23:12:41 ]
JOGLに将来性ある事は否定しないけど、まだ3年ぐらい先の話だろう。
つまり人柱。日本語のページも全然ないし。
あまり勧めたくはないけど、もしゲームで、かつwindowsなら、C#じゃないか?

929 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:26:44 ]
あんな重いの話にならん。
1コア丸々使ってる箱○なら別だが

930 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:12:41 ]
【JMF】Java Media APIs【JOGL】
ttp://pc11.2ch.net/test/read.cgi/tech/1201346803/l50

スレ立てられなかったのでスレ立て依頼出してたのが立った。
今後はこちらでどうぞ。

スレタイには一番使われそうなJMFとJOGLを追加しといた。
ほかテンプレあれば書いて。

Java Media APIsはDesktop Javaの一部なんでJava SE以外のエディションやAndroidは関連スレから除外しといた。
ネイティブ依存なSWTも同様。

931 名前:デフォルトの名無しさん [2008/02/06(水) 00:48:21 ]
で、いい加減そろそろ、JAIのメモリリークは直ったのか?

932 名前:デフォルトの名無しさん [2008/02/07(木) 21:21:18 ]
複数の Component の描画の順序(重なり具合)を任意に変えるには、

親コンテナ.remove(comp) / 親コンテナ.add(comp, index) もしくは
getComponentZOrder(comp) / setComponentZOrder(comp, index)

の組み合わせしか方法はありませんか?

Component のほうが、自立的に一歩前進、とか、一歩後退、みたいな仕掛け、ありませんかね…?

たとえば、大、小の円がそれぞれ component だったとして、
それを、drag で、重ねたときに、◎になるようにするしたいんですが。
(2つに限らず、3つ、4つでもいけるように)

getComponents してループさせて入れ替え、しかないでしょうか。

933 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:49:59 ]
JLayerdPaneを増やして載っけるとか。



934 名前:932 [2008/02/07(木) 22:13:16 ]
>>933
おぉ、JLayeredPane、忘れてましたw
duke 君のデモソースはチェックしたのに、なにしてんだ>自分

そういう Pane がある、ということは裏を返すと Container/Component
には、あまり気の利いた順序変更の手段はないんですかね。

ひきつづき、つっこみ・ご意見お待ちしております。

935 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:38:09 ]
実際のところ重なりの順序を動的に変えたいことってあるの?
それが必要なパターンが想像できないんだが。

936 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:52:22 ]
CardLayoutでもいいんじゃね?

937 名前:932 [2008/02/07(木) 23:03:27 ]
レス、どうもです。

>>935
ビジネスアプリケーションじゃなくて、えと・・・
ゲームでキャラが重なる、みたいなヤツを思い浮かべてください。

>>936
CardLayoutは、ノーチェックでした。
リファレンスをチェックしてきますノシ



938 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:06:39 ]
>>937
ゲームのようなやつならSwingつかわずにJava2D等で描画したほうがいいよ
速度的にもメリットが薄い

939 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:41:33 ]
SwingよりJava2DじゃなくてSwingよりAWTでJava2Dじゃね?
Java2DよりJOGLの方がry

940 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:43:46 ]
Java2D って Swing じゃないのか?

941 名前:932 [2008/02/07(木) 23:46:41 ]
>>936
CardLayout、あとは自分で動作とか確認しますが、リファレンス曰く、
「コンテナ内の各コンポーネントをカードとして扱います。一度に 1 枚のカードだけを表示し…」
う、1枚では困るぅ〜。

>>938
Java2D にそんなに詳しくないのですが、
ゲームのキャラでなく、(バーチャル環境の)アバターみたいのヤツを
前後(奥行き)に操作する、といったような例だとどうでしょうか。
イメージのまま取り回すのは管理が大変かなぁ、とビビッているのですが…。
設計次第ですかねぇ。
速度の要望はそんなにシビアでないです。

942 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:11:39 ]
>>940
違うAWT、Swing,Java2Dは同じ層にあるUser InterFace Toolkits。
AWTはAWT,SwingはSwing,Java2DはJava MediaのAPI。
そもそもAWTは重量WindowToolkitでSwingはJava2Dを使った軽量WindowToolkitだろ。
Java2Dは2D描画ライブラリ。
javadoc嫁。

943 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:23:42 ]
>>939
JOGLいいけど、テクスチャを単純に表示するのが目的ならそこまで必要ないと思う
プラットフォームによってパッケージが違うのもやっかいだし、Line引くときたぶんはまる

Java2Dはαブレンディングがまともに実装されていないのがきついかな
おかげでゲームで使うときはJOGL必須だ

>>941
その動かすキャラクターの動く範囲は?
Window内をじゆうじざいにということでないのなら、
その描画はJava2Dによる重ね合わせのほうが難易度は低いと思う

944 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:38:19 ]
αブレンドなぁ。結局Java2Dだとハードウェアアクセラレータ効かないんだよな。
JOGL1.1ならcom.sun.opengl.util.j2dが追加されたから
BufferStrategyと同じ感覚で使えるんだけどcom.sunパッケージは嫌い?

945 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:07:08 ]
レイヤードペインの話題が見えたので便乗

1.JFrameのgetLayeredPane()に直接JLabelとか貼り付けて遊んでた。
2.この状態で、ポップアップメニュー出したら、表示されなかった。
3.マウスをずるずる動かして、見えないメニューの上を通過させるとメニューが表示された。

※メニューが「パッ」と全部表示されるんじゃなくて、
マウスが乗っかったメニューアイテムが1つずつ表示される。

4.JLabelを乗せるレイヤーを変えても問題は解決しなかった。

そもそも1.の使い方がナンセンスなのか。
レイヤードペインとポップアップは気をつける何かがあるのか。
誰か知ってる人がいたら教えてください。

946 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:07:33 ]
混ぜるな危険じゃない?

947 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 08:21:43 ]
ポップアップってどっかのレイヤーの上に描画されるんだっけ?
GlassPane?




948 名前:デフォルトの名無しさん [2008/02/08(金) 09:58:10 ]
おはようございます。932,941でございます。
とりあえず、LayeredPane を導入してみますデス。

もう一個、教えてくんです・・・。
contains(int x, int y) メソッドって、
リスナーにしなくても mouseEntered なとき(Component 上に
マウスカーソルがあると)、勝手に呼ばれるようですが、
それでよいです??? Documented な仕様ですか?

override して使わないほうがよさそうですよね。override しちゃだめ?
だったら final にして〜〜。

949 名前:デフォルトの名無しさん [2008/02/08(金) 18:15:56 ]
>>947
描画される順番の問題。
GlassPaneは自分で描画しない限り何もない。
GlassPaneでイベント握り潰せば結果的にGUIをブロックできる。

950 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:21:08 ]
>>947
layeredPane の POPUP_LAYER じゃない?

951 名前:945 mailto:sage [2008/02/09(土) 00:25:29 ]
追記

JLabelにアニメーションGIFを表示させた場合、
絵が書き換わるたびに、マウスずらしで表示させた
ポップアップメニューが消されたw

・JLabelに文字を表示させた場合
・普通にコンテンツペインにJLabelを置いた場合

この状態での実験も。。。今度やってみる

952 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:06:14 ]
どうしてもバグければ JPopupMenu#setLightWeightPopupEnabled を false にしてみる手も

953 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:47:18 ]
バグ-ける

954 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:59:19 ]
その活用形はおかしい
バグ-かろう
バグ-かった
バグ-くない
バグ-い
バグ-ければ

955 名前:948 [2008/02/09(土) 13:01:03 ]
昨日、速攻、JLayeredPane 組み入れました。

気がついたのは、

より上位の Layer のコンポーネントが、より下位のコンポーネントを
完全に覆い隠すと(感覚的にいうと lower.getBounds() < upper.getBounds())
のとき下位のコンポーネントが描画されない(消える)

つーことがありました。
理屈としては、そのほうが、高速化が図れるのかもしれないけど、
上位の矩形のイメージが透明化されてるときちょっと困るんだけどなぁ。

956 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:38:19 ]
>>955
上位レイヤのコンポーネントでsetOpaque(false)でどう?


957 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:41:41 ]
setOpaque(false) してる?



958 名前:948 [2008/02/09(土) 15:38:21 ]
>>956,957
レス、どうもです。
setOpaque() してると思うんですが、今日は、職場でないので
確認できないっす。火曜日にチェックします!
みなさんは休出っすか?

959 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:41:04 ]
>>958 は 3 回くらい死んでも良いと思う

960 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:30:57 ]
つーか自宅にPCないんか

961 名前:945 mailto:sage [2008/02/10(日) 03:09:13 ]
おいおい、会社で趣味プログラミングかよw

それはともかく、>>952さんありがとうございます。
ポップアップでまくりですよ。

そして、実験の報告。

>・JLabelに文字を表示させた場合

結果:×
レイヤードペインに文字ばっかりのJLabelを乗せてみた。
文字の後ろにメニューがでた。文字の隙間からメニューが見えてるw
マウス動かすと文字の前に来るあたりの挙動は一緒。

>・普通にコンテンツペインにJLabelを置いた場合

結果:○

当たり前か。

962 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:28:37 ]
現在TransferHandlerを用いてJTreeにコピーアンドペーストの機能を付加しています。
同様のアクションをJPopupMenuにも加えたいのですが、どのようにすればよいでしょうか?
CTRL C, CTRL Vではうまくいくのですが、JPopupMenuからアクションを行うと、ソースが変わってしまいだめなようなのです。
TransferHandlerのcopyのアクションのコードを見てみると、アクションソースがJComponentのインスタンスでなければ弾いているのが原因のようです。
そこで
// a:TransferHandlerのアクション
private Action createAnotherSourceAction(final Action a,final Object src){
 return new AbstractAction(){
  public void actionPerformed(ActionEvent e) {
   e.setSource(src);
    a.actionPerformed(e);
   }
  };
}
こんな感じで新たに生成してやるとうまくいくのですが、わざわざ作り直すのは抵抗があって・・・
何か打開策がありましたらご教授ください。

963 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:16:03 ]
>>962
アクションが操作対象となるJTreeのインスタンスを持てばいいだけじゃないのか?

964 名前:962 mailto:sage [2008/02/15(金) 09:33:09 ]
聞いておきながら遅くなってしまってすみません。
JComponentのインスタンスでなければ弾いているので、そもそもアクションまで起こっていないんです。
CopyActionくらい自分で実装して、>>963さんのおっしゃるように対応したコンポーネントのインスタンスを持たせていた方がいいかもしれないですね。
ありがとうございました。

965 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:27:45 ]
例えばリストにTransferHandlerを設定するとき、COPYなのかMOVEなのかCUTなのか判定させたいときどのようにすればよいのでしょうか?
それを実装するコンポーネントでどのようなアクションを取ったかを調べられれば問題ないのですが、それがMouse系のリスナーではスマートに調べられなくて困っています。
教えください。

966 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:36:04 ]
勘違いしていました。
何十回か氏んできます。

967 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:38:09 ]
GUIのデザイナはなかなか決定的なものがないようなのですが、
メジャーどころだとNetbeans付属のものやVisual Editorがありますよね。
ほかにもJformDesignerや、jvilderなどがあるようです。

みなさん、GUI開発にはどんなツールをお使いですか?



968 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:48:00 ]
テキストエディタで手書きしてまつ・・・

969 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:51:42 ]
jiglooがなかなかおすすめ。
慣れないうちは思うようにデザインできないけど慣れたらかなり使いやすいかも

970 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:54:49 ]
私はVisual Editor。でも、ちょっとコンポーネント置いただけですぐ
1000行ぐらいいっちゃうのがちょっとアレですが。

jiglooは冗長にならないように書けます?

971 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:28:06 ]
Visual EditorってGroupLayoutサポートしてましたっけ?
あれ使えばそんなに冗長にはならないですよ
個人的に一つ一つのコンポーネントのプロパティ設定で勝手にブロックで囲んでくれてるのが見やすくて好きです。

972 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:50:00 ]
残念、Visual EditorにはGroupLayoutのサポートはまだないみたいです。
他のデザイナを試してみることにしましょう。Jiglooか、もうNetbeansかな。

EclipseのプラグインでWindowBuilderというのもこれに対応しているようですが、
日本で使ってる人があまりいなさそう・・・

973 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:39:26 ]
ソースコード生成するんじゃなくてXAML式に
書けるGUIデザイナが欲しすぎる。

974 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:14:14 ]
リファクタリングとかソースとの動機が取れなくなりそうだ

975 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:54:12 ]
一般ブラウザ並みに JTextPane 強化して HTML ベースで GUI 組めるようにしたほうが
何かと合理的。

976 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:02:31 ]
それはねーよ
細かいイベント等制御するためのSwingなんじゃねーか
HTMLベースでいいのならWEBアプリにするだろ

977 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:11:07 ]
onmouseover などからイベントリスナ呼びゃいい話でしょ。必要なら追加すりゃいいし。
Web 開発の資産やスキル転用できるし、単純にブラウザコンポーネントとしても転用も可能。
まじめに考えてるわけではないのでカスタムコンポーネントの追加方法なんか考慮する
必要はあるが、そんな頭から否定されるほど悪い話ではないと思うが。



978 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:27:11 ]
そんなの全く考えたことなかったから結構新鮮だわw
まぁ今の環境で満足だし、そこまで外部化してしまわなくてもいい気もするなぁー

979 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:43:06 ]
GUIコンポーネントは宣言的に置くようにしてロジックは別にしたいってことでしょ
JavaFXがやろうとしてるんじゃないかな

ただXMLベースじゃないみたいだけど

980 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:49:05 ]
そこまでWeb開発の資産やスキルを転用したいのなら、
スタンドアロンアプリでTomcat動して、UIはブラウザ、ってすればいいんじゃね?

981 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:09:12 ]
アプレットや Web Start とかで使えねんじゃ。

982 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:14:29 ]
XULを再発明したいのか

983 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:37:25 ]
JSP や JDBC を再発明と言う?
別に XUL の Java 実装でも良いけど。

984 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:46:16 ]
あ、いやこの話はそろそろやめる。

985 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:19:48 ]
>>977
scriptのIDEサポートとかJavaのほかに別言語を覚えないといけないとか
そもそもブラウザによって違いがあるというのに・・・

ボタンクリック等のイベント程度でいいのなら別にかまわんとおもうけど

986 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:36:38 ]
XMLは長ったらしすぎるので
すっきりとロジックと融合したGUIが宣言ベースでかけるというのが
売りなのでしょう。
ただ、いまいち方向性が分からないというのは・・・。

987 名前:デフォルトの名無しさん [2008/02/24(日) 21:57:42 ]
SWTスレとマルチで失礼します。

クライアント側のJavaで、RTF文章を何らかの形で表示(編集できなくてもOKです)させたいのですが、
JEditorPaneはあまりにも古すぎてJREに同梱されているLICENSE_ja.rtfすらマトモに読めない、という
情けないことになっています。他に何らかの代替/回避方法はないのでしょうか?



988 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 11:01:37 ]
RTFをパースして使えるコンポーネントに流し込むところを自作する

989 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 11:06:57 ]
うふふw鬼ww

990 名前:987 mailto:sage [2008/02/26(火) 10:29:05 ]
>>988
>>989
いや、マジメな話、(ライブラリ等を使うかは別にして)今のところ、ググって引っかかるのはそのアプローチしかないみたい。
もう少し簡単な方法がないかと思って質問してみたのですがね(笑

991 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:43:02 ]
SWT なら OLE でハメ込めるんじゃなかったっけ?

992 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:48:04 ]
いまどきそれだけのためにSWT使うってのもなぁ

993 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:57:15 ]
非常に抽象的な質問で申し訳ないのですが、スクロール可能なコンポーネントを作る際、Scrollableを実装するだけではだめなのでしょうか?
単純に実装してJScrollPaneにのっけてやるだけでは、実装したメソッドのうち、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の二つは呼び出されるのですが、肝心の
getPreferredScrollableViewportSize()
が呼び出されないのです。
どうしてでしょうか?

994 名前:デフォルトの名無しさん [2008/02/28(木) 03:04:21 ]
みんなBoxLayoutはつかってないのか?
ほとんどこれ1本でやってるんだけど。

995 名前:デフォルトの名無しさん [2008/02/28(木) 03:21:59 ]
> 993
getPreferredSize()はどう実装している?

996 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 08:45:59 ]
>>995
すみません。寝ぼけてたようで、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の判定で必ずtrueがかえってしまうようになってしまってました。

というわけでスレ汚してしまったのでお詫びに次スレ建ててきました・・・が、タイトル間違えてしまいました。
本当にすみません。板まで汚してしまったみたいです。

pc11.2ch.net/test/read.cgi/tech/1204155623/

997 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:48:07 ]
1レス埋めて去る。



998 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:54:53 ]
ところで次スレは上の見すったやつ使うの?
せっかくスレタイ変えたのに

999 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:24:19 ]
っと、気づいたらもう999かよ

1000 名前:デフォルトの名無しさん [2008/03/01(土) 19:25:58 ]
上野でいいじゃん
細かいこと気にするなよ

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<252KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef