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
283 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:16:53 ] linerみたいな画像ビューア 俺が作ってるのもそれだけどw
284 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:37:42 ] 作りたいの作ればとしか・・・
285 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:38:47 ] PDFの背景を初音ミクにかえるアプリつくるわ
286 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 02:27:50 ] >>285 Swingと関係なくないか? あとPDFオープンするのに環境依存コード書くはめになるのもちょっと嫌かな
287 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 02:31:13 ] まあ、きもちいいネタだ。
288 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 03:03:23 ] はやくu4こねーかなぁ JFileChooserおそくてかなわんわ
289 名前:デフォルトの名無しさん [2007/11/10(土) 03:56:17 ] >>288 だな。死ぬほど遅い。いくつかlazyになるように書き直した。
290 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 10:20:21 ] u4 で直ることになってるの?
291 名前:デフォルトの名無しさん [2007/11/10(土) 12:52:45 ] まだin progressの状態。
292 名前:デフォルトの名無しさん [2007/11/10(土) 13:47:36 ] 今まで、エディタとプロンプトでしこしこがんばってきたんだけど 金もできたので聞きたいとおもう。GUIつくるだけなら、JBuilderっていい? 無料版はつかったことあるけど、有料版は良いの?
293 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:59:21 ] 今のJBuilderは昔とぜんぜん違うぞ SwingベースからEclipseベースになった 少なくとも昔のJBuilderはこつをつかまないと しらないうちにボーランドのコンポーネント使って汚染されて 他の環境で手軽にコンパイルできなくなるのが欠点だった あとJBuilderはGUI作成においてNetBeansぬいたことはないよ GUI使う、使わない以前に開発効率考えるとIDE使わないのは論外だと思う
294 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 14:00:46 ] >>292 NetBeansでいいんじゃね?
295 名前:デフォルトの名無しさん [2007/11/10(土) 14:12:00 ] >>293-294 thx NetBeansの方が上なんだ。じゃあそうするよ。 IDE使わないと論外か。。じゃあ、買ってみるよ。 ありがとう。
296 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 14:37:01 ] NetBeansは無料のIDEだぞ
297 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 15:19:43 ] 最近はOSしか買わなくなったなぁ。
298 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:06:09 ] >>297 まだUbuntu使ってないの?
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 の設計目的を満たしています。