07/11/22 12:44:57
>>443
マニュアル読んで判断したならいいでしょ
あとvalueChangedってメソッド名だけ出しても普通の人はわからんと思うよ
446:デフォルトの名無しさん
07/11/22 15:08:37
下手にJTreeのvalueChangedいじったらパフォーマンス落ちね?
447:デフォルトの名無しさん
07/11/22 15:31:17
上手にいじれば良い
448:デフォルトの名無しさん
07/11/22 19:38:15
それが出来るならこんなところで確認してないと思うが?
まあ、ドキュメント読めば分かることだが。
449:デフォルトの名無しさん
07/11/22 23:58:16
JFrameの下部にStatusBarを取り付けようとしています。
単純にBorderLayout.SOUTHで問題はないのですが、BorderLayout.SOUTHに当たる領域は後々別に使用するかもしれないので、完全に別領域として下部に取り付けたいのです。
イメージ的にはsetJMenuBar()と同じような感じです。
どのような実装がよいでしょうか?
450:デフォルトの名無しさん
07/11/23 00:10:09
JPanel に BorderLayout をセットして JFrame の CENTER に置く
JFrame の SOUTH をステータスバーのために使って、
JPanel の SOUTH を後々別に使用するときのために取っておく
451:デフォルトの名無しさん
07/11/23 00:13:45
そのようにした場合、ステータスバーをセットするJFrameのCENTERにコンポーネントを加えたいときにわざわざそのJPanelを取得後貼り付けないといけないので避けたいです。
他にはないでしょうか?
452:デフォルトの名無しさん
07/11/23 00:25:57
>JFrameのCENTERにコンポーネントを加えたいときにわざわざそのJPanelを取得
いや、最初から、JFrame じゃなくて JPanel の CENTER に入れればいいじゃん。
わざわざ取得っていうか、JPanel 作ったときにそれをフィールドに持っとけばいいだけでそ?
本当にどうしても JMenuBar のように振舞わせたくて他に方法がないというなら、出来ることは出来るけどちょっと面倒い。
JRootPane の中の layeredPane と glassPane と、layeredPane の中の contentPane と JMenuBar (と自分の statusBar) をレイアウトするレイアウトマネージャを書いて、JRootPane のレイアウトマネージャをそれで置き換える。
453:デフォルトの名無しさん
07/11/23 00:27:53
Windowsに限定しちゃうかも知れないけど、
%USERPROFILE%\Local Settings\Application Data
↑のディレクトリの中に変なGUID名のディレクトリが作られてて
中を見るとJ2SDK5.0のインストーラみたいなのが入ってる。
うちの環境にはJDK6も入ってるけど、5系だけゴミ?があるので気になります。
これって削除しちゃっていいのかな?
454:デフォルトの名無しさん
07/11/23 00:34:12
>>452
そうなのですが、どうしてもメニューバーのように扱いたかったので・・
やはりかなり面倒なことになるようですね。
丁寧に教えていただきありがとうございました。
455:デフォルトの名無しさん
07/11/23 00:40:36
ボーダーレイアウトでいいだろ
面倒ではないだろと
456:453
07/11/23 00:44:03
質問・相談スレに書くつもりが誤爆してました。
こちらはクローズします。ごめんよぅ。
457:デフォルトの名無しさん
07/11/25 00:15:06
質問相談スレで聞いたところ、こちらで聞いたほうが良いと教えていただい
たので質問させていただきます。
現在、携帯電話でいうフレーム撮影機能をPC上でJAVAを用い、作りたいと考え
ております。USBカメラから動画キャプチャを行い撮影ボタンを押すとその時の
静止画がJPEGで保存するところまでは作ったのですが、写真フレーム(gif)を
動画上に表示する方法がわかりません。API集の方も探してみたのですが、見つ
けることができませんでした。誰か方法について教えてもらえませんでしょう
か??よろしくお願いします
初心者でして簡単なソースなどつけていただけると助かります。
458:デフォルトの名無しさん
07/11/25 00:18:56
一番簡単なのは
・ImageのロードにはImageIOを使う
・JLabelを貼り付けてそれにImageをセットする
ネットで初心者かどうかってのは意味ない文章だからやめたほうがいい
知っているか知らないかだけだから
459:デフォルトの名無しさん
07/11/25 00:23:38
JMF使ってる?
460:デフォルトの名無しさん
07/11/25 00:23:49
動画を描画するコンポーネントのpaintComonent(...)をオーバーライドして
super呼んだ後に、drawImage(...)でOKじゃね?
461:デフォルトの名無しさん
07/11/25 00:35:49
いや
>USBカメラから動画キャプチャを行い撮影ボタンを押すとその時の
>静止画がJPEGで保存するところまでは作った
ここにJMF使ってるならJMF流儀の動画の描画の仕方があるから動画のキャプチャをどうやってるかでやり方が決まる。
462:デフォルトの名無しさん
07/11/25 01:30:58
JMFをつかっています。
キャプチャ部分となりますと
new Timer(100, new ActionListener(){
try {
player = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));
} catch(Exception e){
System.out.println(e);
System.exit(1);
}
player.start();
ここになりますでしょうか。
ご教授よろしくお願いします
463:デフォルトの名無しさん
07/11/25 02:44:57
>写真フレーム(gif)を動画上に表示する
これがやりたいんだよね?
ならEffect実装してProcessorからTrackControl取り出してTrackControl#setCodecChain(Codec[])で実装したEffectセットしてやれば良い。
んでProcessor#getVisualComponent()で取得したビジュアルコンポーネントを適当に張り付ければ良い。
あとはJMFのページのチュートリアルとかサンプルコード読んで。
464:デフォルトの名無しさん
07/11/27 20:21:48
日本語を入力時、「確定はされていない文字列入力状態中」(Windowsでは文字の下に破線が引いてある状態)を調べる方法はありますか?
465:デフォルトの名無しさん
07/11/27 20:22:47
ImmGetCompositionString
466:デフォルトの名無しさん
07/11/27 20:23:19
ごめん、ここJavaだったorz
467:デフォルトの名無しさん
07/11/27 20:34:01
Component に addInputMethodListener を仕掛けておけば取れるみたい?
468:464
07/11/27 20:44:22
>>467
InputMethodEvent#getCommittedCharacterCount()
で判別できそうですね。
ありがとうございました!
469:デフォルトの名無しさん
07/11/29 15:28:42
Java Web Startのアプリで、jnlpファイルの中で
<security>
<all-permissions/>
</security>
を設定していて、jarにはオレオレ証明書でサインしている。
確かにファイルアクセスなど自由にできるから、
この設定は有効化されているはずなんだが、
Point p = MouseInfo.getPointerInfo().getLocation();
で
Exception in thread "AWT-EventQueue-0"
java.security.AccessControlException: access denied (java.awt.AWTPermission watchMousePointer)
が出るのって、これはどういうことなんだろ。
JWSで動かさなければこのエラーは出ないんだが。
470:デフォルトの名無しさん
07/11/30 14:03:31
>>469
JWSのバグでね?
そのクラス1.5からのやつだからもしかしたら・・・
471:デフォルトの名無しさん
07/12/01 00:09:26
frameにタブだけ貼り付けたの作ると、
初めに、タブのタイトル部分に選択状態みたいなのが行くんだけど、
それをタブに貼ってある、jCheckBoxに初めから行くようにしたいんだけど、
windowsのアプリはそうなるようなんで。
どうやったら出来ますか?
472:デフォルトの名無しさん
07/12/01 00:49:32
フォーカスのトラバーサルいじるAPI群なかったけ?
473:デフォルトの名無しさん
07/12/01 00:54:40
初期状態ってことならオープン時にフォーカスセットしてあげれば?
474:471
07/12/01 01:19:46
jCheckBox.requestFocusInWindow();
よく分からないけど、setVisible(true)した後しかフォーカスがいかないな…
475:デフォルトの名無しさん
07/12/01 01:19:51
>>471
つrequestFocusInWindow()
俺はタブはいつもsetFocusable(false)するなぁ。
476:デフォルトの名無しさん
07/12/01 01:26:01
>>474
つaddAncestorListener()
ancestorAddedでrequestFocusInWindow呼んでみそ
477:デフォルトの名無しさん
07/12/01 01:27:34
ふつーにオープン時でいいとおも
478:デフォルトの名無しさん
07/12/01 01:28:59
>>477
それだとタブで切り替えたときにフォーカスが移らないってことだとおも
479:471
07/12/01 01:59:35
>>476
おーサンクスサンクス。
これで完璧だわ。AncestorAdapterは何故かないんだな
480:デフォルトの名無しさん
07/12/01 02:59:55
アダプタクラスは実装するメソッド数が少ないか
そのインターフェースの多くが実装される可能性が高いリスナーは
利便性が低いからアダプタクラス用意しないって方針だよ。
481:デフォルトの名無しさん
07/12/01 10:36:16
JPopupMenuの使い方なのですが、ポップアップメニューの対象によってメニュー内容を変えたい場合、一般的にどのような方法を取るのがよろしいでしょうか?
単純に対象を毎回チェックしてその対象に必要なメニューを構成する、というのはどうも気持ちが悪くて・・
482:デフォルトの名無しさん
07/12/01 12:02:52
リスナーのフィールドにして遅延生成すればいいだけじゃない?
483:デフォルトの名無しさん
07/12/01 12:35:03
対象の種類ごとにJPopupMenuを予め作っておく・・・・のはムダが多いか
484:481
07/12/01 12:48:32
>>482
遅延生成とはどういうことを指すのでしょう
やはり表示毎に必要なメニューを生成という意味でしょうか?
>>483
例えば対象の種類にあらゆる属性があり、その属性ごとに必要なメニューがある場合、その組み合わせをあらかじめ作っておくのは好ましくないかと・・
485:デフォルトの名無しさん
07/12/01 12:55:47
じゃあ、すべての項目を含めたJPopupMenuを1個用意しておいて、各JMenuItemのsetVisibleを切り替えるとか
486:デフォルトの名無しさん
07/12/01 14:24:05
>>478
そういう意味だったのか
あの日本語からはそこまで理解できなかったよ
487:デフォルトの名無しさん
07/12/01 14:28:15
>>481
表示される項目が全て画面に収まるのならすべていれる。
そして選択可能不可能で調整したほうがいいんじゃない?
コンポーネントによってメニューがかわるより、メニューは同じで選択可能か不可能かのほうが
ユーザーに優しいとおもわれる。
この選択肢は下のほうにあるとか上のほうにあるとかコンポーネントごとにかわっていたら厄介だ。
488:デフォルトの名無しさん
07/12/01 15:01:14
JFrameの上には、とりえあえずJPanel置くべきですか?
489:デフォルトの名無しさん
07/12/01 15:04:11
packの仕組みをしっているのならおいたほうがいい
そうでなくともパネルに機能単位でのせていったほうが楽になるかな
グループレイアウトを使うのなら場合によってはなくてもいいかも
490:481
07/12/01 15:52:06
>>485
>>487
とりあえず全部登録しておくのが楽なようですね。
場合によってsetVisible、setEnabledで使い分けようと思います。
ご意見ありがとうございました。
491:デフォルトの名無しさん
07/12/01 18:02:09
>>480
そうなんだ~。まぁ、よく使うなら自分でAdapter作ればいいしね~。
492:デフォルトの名無しさん
07/12/02 18:44:49
LinuxのSwing上でトラックポイントのセンターボタンでスクロールしたときに
コンテキストメニューが開いちゃうんだけど、心当たりがある人いる?
JavaはSunの1.6.0_03
493:デフォルトの名無しさん
07/12/02 19:12:28
これかな?
URLリンク(sdc.sun.co.jp)
>・Windows では、マウスボタン 2 マウス UP でメニューがポップアップする
>・Motif では、マウスボタン 3 マウス DOWN でメニューがポップアップする
494:デフォルトの名無しさん
07/12/02 21:54:41
以下の挙動で、困っています。
JNLPでデスクトップにショートカットアイコンを作成し、
そのアイコンに何らかのファイル(何でもいい)をドラッグアンドドロップすると、
「このアプリケーションは起動できません」「詳細」「了解」というダイアログが表示される。
ここで「詳細」ボタンを押すと、次のような情報が表示される。
※C:\Users\hoge\Desktop\新しいテキスト ドキュメント.txt をドラッグアンドドロップした場合。
InvalidArgumentException[ 無効な引数が指定されました: {C:\Users\hoge\Desktop\新しいテキスト ドキュメント.txt, C:\Users\hoge\AppData\Local\Temp\javaws12 }]
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
で、問題なのは、ここで、ドラッグアンドドロップしたファイルが、
何の断りもなく、いきなり 削除 されてしまう、ということなのです。
この不具合は、あらゆる全てのJNLPアプリで、全てのOSで再現しました。
こうした挙動を防ぐような、何らかの対策をすることは可能でしょうか?
495:デフォルトの名無しさん
07/12/03 00:20:49
>>494
MacOSX Leopardでやろうとしましたが再現しませんでした。
何よりファイルにDnDができない。
URLリンク(bugreport.sun.com)
で報告してください。
報告時は具体的な再現方法と再現環境を書いておくのが吉です。
ありとあらゆる、というのはちょっと曖昧すぎます。
496:デフォルトの名無しさん
07/12/03 01:24:26
ごめん、たしかに、MacOSでは試していない。
あと、64bit用のJREやSolarisでも試せていない。
こちらで試したのは、Windows Vista, Windows XP SP2, UbuntuLinux(7.04)の上で、
1.4.2_16,1.6.0_03,1.6.0_10-ea(いずれも32bit用)。
ここまでやって、いずれの環境でも再現した。
いま、Java7でも試そうとしているところ。
Javaキャッシュビューアで、インストール済みのJNLPアプリについて
「選択されたメニューのショートカットを作成」または、
右クリックメニューで「ショートカットの作成」で、
ショートカットがデスクトップにすることができる。
そうして作られたショートカットに、
ユーザが何かのファイルを放り込むと、
そのファイルが勝手に削除されてしまう、ということ。
ユーザがデスクトップ上のメモ帳のショートカットにファイルをDnDして
開こうとして、まちがって隣のJNLPアプリのショートカットにドロップしたところ、
そのファイルが勝手に削除されてしまう、という感じ。
> 何よりファイルにDnDができない。
たぶん、そういう挙動が正常なのだと思う。
497:デフォルトの名無しさん
07/12/04 11:36:46
質問です。JButtonがアイコンであるGIFファイルの縦横サイズより結構大きくなってしまうのですが、コンパクトにする方法は無いでしょうか?
498:デフォルトの名無しさん
07/12/04 12:06:32
>>497
JButtonのjavadocを隅から隅まで読んで
しかるのちにボーダーのマージンを設定したらいいよ
499:デフォルトの名無しさん
07/12/05 14:21:41
>>498
497です。できました。ありがとうございます。
500:デフォルトの名無しさん
07/12/06 02:03:22
JFrameでgetContentPane()をしなくてもよくなったは、いつからですか?
自動的に転送されるようになったってのを読んだのですが。
501:デフォルトの名無しさん
07/12/06 02:06:17
5.0
502:デフォルトの名無しさん
07/12/06 02:10:45
即レスthx
503:デフォルトの名無しさん
07/12/07 22:41:46
シューティングを作りたいと思ってます
メイン画面とスコア画面があって、
それぞれJPanelを継承したクラスを作ってMainPanel,SubPanelと作ろうと思ってるんですが、
この方法は値の受け渡しが面倒くさくなったり、重くなったりしますか?
普通はひとつのゲームは大体1パネルですかね?
504:デフォルトの名無しさん
07/12/07 22:43:16
普通はゲームにSwingなんて使わなくないか?
ましてシューティングで・・・
505:デフォルトの名無しさん
07/12/07 22:45:12
Javaの勉強もかねて作ってます
最近はSwingもだいぶ早くなったと聞いたんですが...
506:デフォルトの名無しさん
07/12/07 22:51:48
ゲームなら、Frameに直接描けばいいと思う。
BufferStrategyを使うのも良し。
507:デフォルトの名無しさん
07/12/07 22:52:23
400x300で24fpsくらいで試してみるといいよ。
Swingはシングルスレッドだから、パッシブ連打でも問題ないはず
508:デフォルトの名無しさん
07/12/07 23:00:08
パッシブ連打とは?
509:503
07/12/07 23:01:39
Frameに直接書くってことはpaintComponentメソッド内に
メイン画面用とスコア画面用の描画処理が混在してるってことですよね?
そうすると片方の画面の背景だけ変更するなどの処理とかがややこしくはならないですか?
パネルで分けるとコードがすっきりする気がするんですが
510:デフォルトの名無しさん
07/12/07 23:05:41
パッシブ・レンダリング=描画イベントによる受動的なレンダリング(repaint())
アクティブ・レンダリング=自発的に描画を実行するレンダリング(Toolkit.sync(), BufferedStrategy)
511:デフォルトの名無しさん
07/12/08 00:30:40
>>503
つまりWindowシステム普及前のゲームプログラミングが難しかったと思ってる?
んなことないよ
練習がてらというのならSwingつかってもいいけどメリットはあんまないとおもうよ
JLabelのアイコン指定でキャラ表示とかSwingというフレームワークで
描画や再移動とかそういうことでしょ?
途中でもっといいものを、もっと本格的なものを、となって挫折しそう
あとpaintComponentではゲームのレンダリングの処理はいれないことね
512:デフォルトの名無しさん
07/12/08 00:31:36
さらに付け加えるとパッシブレンダリングはいわゆるトリプルバッファを使わないといけないから注意ね
ダブルバッファじゃダメ
513:503
07/12/08 00:51:35
全体的な流れとしては、レンダリング(描画?)は各オブジェクト(敵、弾)のクラスのdrawメソッド(メソッド名は自由?)などで行い、
paintComponentはそれを呼び出すだけ。で、必要に応じてrepaint()を行うとpaintComponentが再描画されるという感じでしょうか?
514:デフォルトの名無しさん
07/12/08 00:59:58
paintのタイミングは自前のrepaintだけじゃないからそれはやっちゃだめ
ウインドウの重なり具合とかOSが画面をいきなりリフレッシュしたりとかあるから
各オブジェクトにdrawのインターフェースを実装させるという考え方はあってる
レンダリングは自前でAというバッファへしてるとすると、
その間描画はBというバッファからイベントでフロントへ描画させる
Aのレンダリングが終わったらAとBをいれかえて、次のフレームの描画はBへ行う
バックバッファへのレンダリングとフロントへのレンダリングが重なる場合もあるという考え方ね
515:503
07/12/08 01:09:30
ダブルバッファがいまいち理解できてないのでもうちょっと勉強してみます。
答えてくださった方どうもありがとうございました
516:デフォルトの名無しさん
07/12/08 01:16:16
本当はJavaでゲーム作成というスレがあったんだけど最近おちちゃったんだよな
ゲーム製作板とかいろいろと斜め読みしてみるといいかも
517:デフォルトの名無しさん
07/12/08 03:09:19
Javaでゲームってのはなかなか前衛的でおもしろいと思うんだが、
如何せんパフォーマンスが悪いのが致命的なんだよな。
いくら努力しても、一定以上FPSが上がらんとなるとどうしても敬遠したくなる。
518:デフォルトの名無しさん
07/12/08 06:27:05
勉強として作るプログラムも題材の選び方はかなり重要だよ。
努力するほど深まって発展していく題材と、
底の浅いところですぐに打ち止めになるのがある。
519:デフォルトの名無しさん
07/12/08 08:27:04
勉強の段階なら、何を作っても勉強になる。
520:デフォルトの名無しさん
07/12/08 08:28:32
Javaでエロゲぐらいなら作れそうじゃね?
521:デフォルトの名無しさん
07/12/08 09:47:04
アクションだろうがパズルだろうがなんでもできるんじゃないの。
ブロック崩しやテトリスくらいなら楽勝。
ゲーム専用機であるようなハデなアクションゲームを作りたいならお門違い。
522:デフォルトの名無しさん
07/12/08 09:49:46
あと速く動かしたいなら画面小さくすればいいんだよ。256 * 192とか。w
昔のアーケードゲームの解像度はせいぜいその程度だったしさ。
523:デフォルトの名無しさん
07/12/08 11:36:49
シューティングやアクションはともかくとして
リアルタイムシミュレーションとか向いてると思うけどな>java
スレッド周りとか楽々作れるし
524:デフォルトの名無しさん
07/12/08 12:55:52
ゲ制作板で話せ
525:デフォルトの名無しさん
07/12/08 14:32:05
>>517
まじていってるの?
526:デフォルトの名無しさん
07/12/08 14:33:14
リアルタイムのアクションものも余裕で出来るよ
IntelCore2/2GHzでJavaで動かすとCネイティブだと1.6GHzくらいの速度になるけど
それが問題になることはまずあるまい
527:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/10 01:23:46
↑の様な構成で作りたいんですけど、うまくいきません。
ようするにSubPanelのインスタンスからMainPanelのインスタンスへ
アクセスするにはどうすればよいのでしょうか?
MainFrameでMainPanelのインスタンスをpublicでstaticにしたりいろいろやったのですが、
うまくいかないのでどなたか教えてください。
529:デフォルトの名無しさん
07/12/10 01:47:12
>>528
SubPanelにボタンのaddActionListenerを委譲して
MainFrameからやりたいことを教えてあげればいいんじゃないの?
530:528
07/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:デフォルトの名無しさん
07/12/10 10:02:09
MainPanelはPaintComponentをオーバーライドしないといけない気がする…
532:531
07/12/10 10:06:52
やっぱ要らないか
533:デフォルトの名無しさん
07/12/10 10:45:47
>>530
設計方針とか変更不可のクラス等の制約条件とかが分からないけど
手っ取り早くやるならMainPanelとSubPanelの親子関係がそのままなのを前提に
b.addActionListener((MainPanel)getParent());
534:デフォルトの名無しさん
07/12/10 11:19:28
俺なら
SubPanel#addColorChangeActionListener(listener){b.addActionListener(listener);}
を作る方を選ぶかな。
535:デフォルトの名無しさん
07/12/10 12:32:25
これってSwingの話ですらなくて言語の基本の話だろ?
なんでstaticがでてきたりするんだ?
まずは言語の勉強からやりなおしたほうがいいんじゃないかい?
536:デフォルトの名無しさん
07/12/10 12:51:30
たぶんMainFrameやMainPanelのインスタンスをSubPanelで参照する方法が分からなくて、
b.addActionListener(frame.mp);}}ってやってもコンパイルできなくて、
b.addActionListener(MainFrame.mp);みたいにできるようにクラス変数にしちゃったんだと推測。
プログラムの設計と実装の仕方を良い参考書や良いソースを見ながら勉強した方がいいと思う。
537:530
07/12/11 00:36:38
>>536
正にその通りです
>>533
getParent()なんてのがあったんですね
どうもありがとうございました
538:デフォルトの名無しさん
07/12/11 13:58:13
>>530のコードを見る限り
getParent()は使わないほうがいいな
独立性が失われるのにListenner使ったりとかありえん
まず言語の基本の勉強からしたほうがいい
近道しようとしても無駄だと思う
ここ本当に基本中の基本だから
539:503
07/12/11 17:52:44
>>538
すいませんご指摘ありがとうございます
SubPanelのコンストラクタでgetParent()しても、その時点ではMainPanelの子にはなってないということですよね
>独立性が失われるのにListenner使ったりとかありえん
これはimplements ActionListenerのことですかね アダプタクラスというのを使ったほうがいいということでしょうか
一応基礎はやったつもりでいたんですが、今回GUI使うことでぜんぜん理解できていないことに気づいてそれだけでもよかったです
もう来ません ありがとうございました。
540:デフォルトの名無しさん
07/12/11 18:53:25
もうきませんって捨て台詞・・・はもうきこえてないか
インスタンスの参照を渡せばいいだけでしょ?
それができないってことはJavaの勉強1週間程度しかしてないということかな?
541:530
07/12/12 00:36:46
ながながとスレ違いすいません
勉強はJavaの入門書を一通り読んだんですが(スレッドくらいまで。デザインパターンは全く)、ちゃんとは理解できてなかったようです。
参照を渡すといいましても>>530のコードだと難しくないですか?
コンストラクタでいろいろやってるのも悪いんですかね
本当にこれで最後にしますんで、
MainPanelとSubPanelが連動していて(Subのボタンを押すとMainの内容を変更したりする)場合、
どんなコードになりますか?親切な方おねがいします
542:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/12 02:44:04
そもそも設計の段階で間違えてるんじゃないか?
544:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/12 13:06:00
>>544
アクションイベントだけならそうだろうけど
GUIってそれ以外のプロパティの変更とかふつうはやるものだし
546:デフォルトの名無しさん
07/12/12 13:35:41
main panelをある構造に従って作るようにして、sub panelでその構造を変化させたらいいんじゃないの?
547:デフォルトの名無しさん
07/12/12 13:44:05
そこまでの設計が出来ていればこんな質問はせんだろうと。
ActionListennerをMainPanelで実装している時点で複数のイベント対応がおわっとるわけで。
548:デフォルトの名無しさん
07/12/12 15:31:50
>312でも書かれてるけど、Synthって流行らないのかなー。
スキンがXMLファイルと画像で済むならたくさん配布されてそうなのに、
どうして一個も見つからないんだろう・・・
549:デフォルトの名無しさん
07/12/12 15:37:42
まず最初の一個を>>548が作って布教
550:デフォルトの名無しさん
07/12/12 15:41:15
つ Nimbus
551:デフォルトの名無しさん
07/12/12 15:48:27
よーし作っちゃうぞー
Synth Studioにちょっと期待。
URLリンク(weblogs.java.net)
>550
Nimbusもいいと思うんだけど、とにかく数が出ないことにはなんとも多様性が少なすぎます。
552:デフォルトの名無しさん
07/12/12 16:38:29
スキンを色々着せ替えたい人ってどんなアプリ作ってんの?
着せ替えできることを売りにしてるアプリで俺が最初に思い出すのがCDプレイヤー。
553:デフォルトの名無しさん
07/12/12 17:03:49
NetBeansで気分転換にLAFかえるとかは5.0のころ流行ったなぁ
参考:
URLリンク(d.hatena.ne.jp)
Substanceは6.0では動かないくさいけど
554:デフォルトの名無しさん
07/12/12 17:10:21
ウィンドウをキャプチャし、JPGで保存するようなプログラムを作成中です。
手法、使用APIなどご教授お願いします。
555:デフォルトの名無しさん
07/12/12 17:18:24
>>554
なぜここで聞く?質問スレ行った方がいいんじゃないか?
556:デフォルトの名無しさん
07/12/12 17:37:28
キャプチャに関してはRobotがAWTパッケージに入ってるからかな?
って感じでもないか。
知ってたらBufferedImageを保存するには?って聞くだろうし、それはスレ違いか。
557:デフォルトの名無しさん
07/12/12 17:44:29
>>553
そういう感じのLAFがカッコイイと思う人もいるんだろうけど・・・
ブログのスキンとは求められてるものが違うんでね?
558:デフォルトの名無しさん
07/12/12 18:39:42
Nimbusってjava LAFの置き換えなんだろうか?
それとも共存するんだろうか?
NimbusってSynthで全部自前でやってるせいか少し重いからイマイチなんだが。
559:デフォルトの名無しさん
07/12/12 19:16:20
重いかな?
というか、エンジン部分が決まっているので
むしろこれからのチューニングに期待できるんだけど。
Nimbusが出てきてからSubstanceへの興味はだいぶ薄れちゃったな・・・
V2Cは、6u10に入ってるNimbusで綺麗に動くので最近はNimbusで見てる。
素のMetalやOceanよりしっくりきてる。
普通に見れて、プラットフォーム共通の見栄えってのは重要でしょう。
Metalは、お世辞にも見栄えがいいとはいえなかったから・・・・(派手だけど)
560:デフォルトの名無しさん
07/12/12 19:25:21
見た目のこと言い出すと宗教戦争になりそう。
561:デフォルトの名無しさん
07/12/12 19:26:24
SynthってXMLと画像をjarに詰めて配布するの?
jarをインデックス付き無圧縮で配布すれば多少早いかもね。
もしくはSynthをコンパイル可能にするとか。
562:デフォルトの名無しさん
07/12/12 19:26:41
ぶっちゃけSystemLAFがデフォになってくれるのが一番いいかも
NetBeansもそれでシェアを一気に伸ばしたし
563:デフォルトの名無しさん
07/12/12 20:07:13
見た目なんて飾りです。えらい人にはそれが分からんのです。
ていうかクロスプラットフォームの実現性としてはjavaLAFがデフォの方が良いけど、
ユーザビリティが落ちるので天秤ってところか・・・。
564:デフォルトの名無しさん
07/12/12 20:40:36
LAFを変更したらレイアウトが微妙に崩れてデザインが台無しとかけっこうある。
部品をカスタマイズしてたりするとなおさら。
で、いくつもLAFがインストールされていても、事実上使えないものが出てくる。
そんなLaFしか実現できないのなら、LAF一つで統一してほしいところだな。
565:デフォルトの名無しさん
07/12/12 21:25:54
>>564
推奨サイズを使って設定してくれるならずれることはほとんどないはずだけど?
今まで大量にSwingアプリ作ったがLAFかえて問題が出る場合ってのはほとんどないよ。
むしろWinネイティブより楽。
566:デフォルトの名無しさん
07/12/12 21:35:29
>>565
推奨サイズって何?
カスタムコンポーネントなしのアプリしか作ったことないんじゃないの?
567:デフォルトの名無しさん
07/12/12 21:45:28
本気で言ってんのかコイツ
568:デフォルトの名無しさん
07/12/12 22:04:47
Swing使いが推奨サイズを知らないとは思えんが・・・・
569:デフォルトの名無しさん
07/12/12 22:18:38
きっと日本語ではなく preferredSize といえば通じるよっ。
570:デフォルトの名無しさん
07/12/12 22:47:58
生憎日本の会社で働いたことがないので。日本語のAPI docもたまに
見るけど気付かなかったよ。どこかに便利なサイズの表でもあるのかと思った。
571:デフォルトの名無しさん
07/12/12 23:23:41
今日もJava釣り君元気だな
572:デフォルトの名無しさん
07/12/13 00:25:17
>>570
つまり、preferredSizeを和訳できなかったわけだな。中国の会社の人?
573:デフォルトの名無しさん
07/12/13 02:30:49
インドだろう常考
574:564
07/12/13 02:58:31
>>564
もちろんそうしてるよ。JDK1.0のころからある普通のレイアウトマネージャを組み合わせてレイアウトしてる。
そりゃテキストエディタのようにツールバーとメニュー、オプション選択とOK/NOボタンしかないとか、
その程度なら問題ないだろうけど、複雑になるとたいがい問題でると思うけどな。
ただしまったく使えなくなるほど、ひどいことになるのは少ない。
レイアウトデザインには急所があってさ、絶対はずせないところってのがいくつかある。
そこがずれると一気にしまりがなくなってださくなるとこが。
そういうとこが狂うと、やめてよっていいたくなる。
LAFに応じて位置とサイズを調整するようなコードを書くとか、無難なデザインを適用する事はできると思う。
でもそういうのってなんか違うと思うんだよね。
575:デフォルトの名無しさん
07/12/13 03:27:33
ボケたか自演か?
576:564
07/12/13 03:52:46
>>575
>>565-573までは俺じゃないから。
罵りあって遊びたいならマ板にでも逝けよ。
577:デフォルトの名無しさん
07/12/13 08:46:37
推奨サイズを知らないバカと自分のレスにレス付けてるボケがいるスレはここですか?
578:デフォルトの名無しさん
07/12/13 11:04:12
レイアウトが崩れる例ってのを、出してみてよ
簡単なのでいいから
579:デフォルトの名無しさん
07/12/13 11:45:14
複雑になると問題が出るっていってるのに簡単なのでいいからっていうツッコミ、気の毒だな。
580:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/13 12:04:33
>>578
もう一つ例をあげると、Motifのメニュー操作法と、Windows,Metalの操作法は異なる。
これは使ってみればすぐに分かると思うけど。
それから、JSliderBarの操作法ね。Metalと残りのWindows,Motifでは振る舞いが異なる。
これもわかりにくいかもしれないけど使ってみれば分かると思う。
LaFは見かけ上の外観を変更するだけのはずなのに、操作体系にまで干渉したらまずいと思うんだけど。
582:デフォルトの名無しさん
07/12/13 12:57:22
ルック&フィールのフィールって何か分かってるか?
583:デフォルトの名無しさん
07/12/13 13:05:42
>>581
LaFはLook & Feelの略だよ。外見を変更するだけじゃない。
584:デフォルトの名無しさん
07/12/13 13:14:14
>>580
すまん、やってみたが、レイアウトは崩れないっぽいんだが…
なんか俺間違ってるのかも試練から
どこがどう崩れたのか教えて欲しい
585:デフォルトの名無しさん
07/12/13 13:31:58
>>582
単純思考のくせに傲慢そうなやつだな。w
feelは手触りだから、操作体系が異なるのは仕様のうちだとでもいいたいのか?w
しかしそれでは良くない場合のほうが多いんだよな。
アプリに無意味な混乱を与えるくらいならLAFをユーザに選択させないほうが俺は良いと思うけどね。
ボタンが数個しかついてないようなアプリならまーすきにすればだけど。
586:デフォルトの名無しさん
07/12/13 13:36:10
>>584
画像はいらないから、コードをコピペしてみて。
環境の違いもあるだろうし。
587:デフォルトの名無しさん
07/12/13 13:37:38
コードつーかソースね
588:デフォルトの名無しさん
07/12/13 13:48:37
Look and Feelのfeelには気分や雰囲気の意味もあって、必ずしも操作法を指すともいえないけどな。
589:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/13 14:56:01
あ、ちなみにこっちの環境はWin2KのJDK1.6.0_03
593:デフォルトの名無しさん
07/12/13 15:04:42
いつまで続くのこれ?
594:デフォルトの名無しさん
07/12/13 16:03:04
b.setBorder(null);
でどうよ?
595:デフォルトの名無しさん
07/12/13 16:32:49
>>594
その手があったかw
596:デフォルトの名無しさん
07/12/13 17:18:47
ボタンに限ったことじゃないだろうに・・・
597:デフォルトの名無しさん
07/12/13 19:13:03
たまたまMotif用の回避策があっただけのことでしょ。w
LAF別に癖があって共通の振る舞いをしないのはかわらない。
598:デフォルトの名無しさん
07/12/13 19:50:38
どう見てもコンポーネントの表示を制御し切れてないヘタレというだけで
レイアウト云々は関係ないと思うのだが
599:デフォルトの名無しさん
07/12/13 20:05:15
JButtonとかはサイズが指定してあると、Metal→Motifに変えたときにほんと崩れるよね。
普通にテキスト指定してJButton作っただけじゃ、OKとキャンセルボタンのサイズが違いすぎるから
キャンセルボタンにあわせるようにしてるんだけど、Motifはおかしいよ・・・
600:デフォルトの名無しさん
07/12/13 20:58:53
まだ続くの?
601:デフォルトの名無しさん
07/12/13 21:08:14
Swingの話題だから別にいつまでも続いてもいいだろ
602:デフォルトの名無しさん
07/12/13 21:25:37
そういやMotifだとマウスホイールも効かないよな。
そんな中途半端なのいれなきゃいいのに。
603:デフォルトの名無しさん
07/12/13 21:28:15
SystemLAFならLinuxとかでもWin並みのFeelが得られるの?
Win, Mac以外はLAFは何でもいいと思ってるのでお勧め教えて。
604:デフォルトの名無しさん
07/12/13 21:35:08
>>598で結論出たじゃん。
605:デフォルトの名無しさん
07/12/13 21:36:12
Linux では gtk使えるなら gtkじゃね?
606:デフォルトの名無しさん
07/12/13 21:39:41
>>598
ことLAFに関しては>>597でFAだと思うが。
切り替えて不都合がでるLAFがある時点で不完全なシステムだな。
607:デフォルトの名無しさん
07/12/13 21:40:05
正直Javaアプリ作ってもWinでしか使わないんだよね。
APIのバランスがいいし、今更.NET覚えるのはしんどいって理由で。
*nixやmacの挙動を調べるにはどうしたらいいんだろう。
LinuxならcoLinuxとか?
608:デフォルトの名無しさん
07/12/13 21:45:53
それ用にマシン用意するか、もってる人にテストを頼む以外なんかある?
609:デフォルトの名無しさん
07/12/13 21:46:51
Macごときに会社が金出すわけ無いじゃん。jk。
610:デフォルトの名無しさん
07/12/13 21:50:45
アップルに俺様の会社がMacでも動くアプリを作ってやったから、テスト用にMacを献上したまえといってみるとか。
611:デフォルトの名無しさん
07/12/13 21:54:18
Macごときに金ださんという会社は、JavaだろうがMacで動かす必要はないってことじゃね?
612:デフォルトの名無しさん
07/12/13 22:01:26
Macごときで動作しないなんてレポートが来られても困るし、
JavaクライアントでもMacは未対応ってことにしとけばいいか
613:デフォルトの名無しさん
07/12/13 22:22:42
そこはアップルの実装の問題だが、どうにも屑すぎる。
特に文字列処理。これはjavaに限った事じゃないけど。
614:デフォルトの名無しさん
07/12/13 22:34:26
たとえば文字列処理でどんなことが起きるの?
615:デフォルトの名無しさん
07/12/13 22:45:06
ワイド文字いい加減とか
616:デフォルトの名無しさん
07/12/13 23:38:24
仕事なら必要な範囲のアーキテクチャだけ動作保証するだけだし
趣味ならそもそも動作保証なんてしないから問題ないだろ…
617:デフォルトの名無しさん
07/12/14 02:37:15
趣味で作っても、友達がMac持ってることあるから問題あるだろ。
618:デフォルトの名無しさん
07/12/14 02:41:59
aho
619:デフォルトの名無しさん
07/12/14 15:36:51
例えば、undo,redo(WindowsだとCtrl+z,Ctrl+y)とかのデフォルトの
キーバインディングがOS毎に違ったりする場合、
LAF変更毎にjavax.swing.InputMapとかも変更すべきでしょうか?
javax.swing.plaf配下のUI委譲を見ても、そんなコードは見あたりませんが。
620:デフォルトの名無しさん
07/12/14 18:21:15
>>614
Unicode正規化まわりじゃないの?
621:デフォルトの名無しさん
07/12/15 12:54:25
LAF変えるたびに、それ固有の修正を施すなんてかなり馬鹿らしい話
これからいくらでも増えてくるだろうし
622:デフォルトの名無しさん
07/12/15 16:35:41
MacのredoのショートカットキーがWindowsと異なる
(Ctrl+Shift+zだったかな)ことを最近知って、
さらに「Motifだとマウスホイールも効かないよな」っていうのを見て、
ふと疑問に思った。
マルチプラットフォーム対応のソフト作ってる場合って、
やっぱり、そんなことも考慮する必要があるんだろうな。
LAF毎に固有の修正を施すなんてかなり馬鹿らしい話っていうのは同感なんですが。
ふだん当たり前にできてることができないって結構ストレスになるから。
623:デフォルトの名無しさん
07/12/15 16:44:56
キー設定とかは外部設定に追い出しておいてプラットフォームごとに
切り替わるようにするくらいは必須だろうねぇ。
うっかりMac環境でメニューバーにまでショートカット付けて怒られた俺。
(個別のメニューには付けてもいいが、根っこのバー上には付かないのがMac)
624:デフォルトの名無しさん
07/12/15 17:27:21
>キー設定とかは外部設定に追い出しておいてプラットフォームごとに
>切り替わるようにするくらいは必須だろうねぇ。
やっぱり、サーバーサイドより面倒ですね。
>うっかりMac環境でメニューバーにまでショートカット付けて怒られた俺。
怒られるほどのことではない。
というか、個人的には、そのほうが便利になってる気さえしますが。
余計な文字列がデザイン的にウザイってことなんですかね。
よくそういうどーでもいいディテールに拘る人いますし。
特に官公庁に。
>(個別のメニューには付けてもいいが、根っこのバー上には付かないのがMac)
へー。Macさわったことないから、全然知らなかった。
エミュレータでも買って、ちょっと弄ってみようかな。
625:デフォルトの名無しさん
07/12/15 17:45:03
そういえばMacのマウスはシングルボタンが基本だよね。
Winでは右クリでポップアップメニューが出る操作がよくあるけど、あれMacではどうなるの?
626:デフォルトの名無しさん
07/12/15 17:57:07
ふるーい mac だと ctrl + クリックでやってた記憶が……
ポップアップメニュー出す操作か、だけなら、
java.awt.event.MouseEvent#isPopupTrigger() みればわかるはず。
627:デフォルトの名無しさん
07/12/15 17:58:32
何も考えたくなかったらMetalで固定ってことかな。
628:デフォルトの名無しさん
07/12/15 18:14:39
macはボタン長押しでコンテキストメニューじゃなかった?
今のmacはマウスホイール付いてた気がする。
小さな玉が・・・。
629:デフォルトの名無しさん
07/12/15 18:22:21
シングルボタンの場合は、Ctrl押しながらクリック。
2ボタンマウスを繋いだ場合は普通に右クリックできる。
Mighty Mouseも見た目はシングルだが、右よりの部分を押すと副ボタンと
して扱える(デフォルトだと両方主ボタンになってるのはAppleの意地か?)
630:デフォルトの名無しさん
07/12/15 18:24:04
ノート型のMacだと、指を2本パッドに置いてクリックすると右クリック相当
だな。指2本でパッド上を滑らせるとスクロールとかも面白い。
631:デフォルトの名無しさん
07/12/15 18:28:50
MacのOS9時代まで使ってたけど、ctrl + クリックだったよ~
まぁどうでもいいか。
632:デフォルトの名無しさん
07/12/15 18:41:56
理想的にはLaF毎に諸々切り替えるべきなんだけど…
結局どこまでサポート範囲にするかってだけだとな気がする.
ぶっちゃけMotifとかは切り捨てても誰も困らないと思うぞ
633:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/15 18:52:14
>ぶっちゃけMotifとかは切り捨てても誰も困らないと思うぞ
同感。Motifは単にSunの意地。
クライアントLinuxも趣味にはいいけど、
個人的にはサポートしたくない。
でも、数ヶ月前に21:00台のNHKのニュースで出てた、
どこか忘れたけど、ITじゃない大手企業の普通の職場で
SunのワークステーションでXが写ってた。
マジで使ってんの?って思ったけど。
635:デフォルトの名無しさん
07/12/15 19:19:05
ソラリスのMotifはそれなりにさまになってる感じもあるけど
Winでみるとダサイ・・・ってまったく同じMotifというわけでもなくMotif風というべきか。
636:デフォルトの名無しさん
07/12/15 19:25:33
MacでCtrl+クリックで右クリということは、WinでCtrl+左クリに機能を割り当てていると、
Macでは困ったことになる・・・のだろうな・・・
637:デフォルトの名無しさん
07/12/15 19:28:20
実機が手元にないから、あれだけど。
SolarisのMotifは、Sunのハードの色のグレーと紫と一緒になって、
初めて調和する感じがする。
だから、他のハードで単体でMotifのLAFだけを見るとかっこ悪さしか感じない。
638:デフォルトの名無しさん
07/12/15 19:43:52
LAFというか視覚デザイン系は深入りすると底なし沼だからなぁ・・・・
3Dソフトも今はなき?シリコングラフィックのあの癖のある筐体でみるのと、
DOS/Vの筐体でみるのではやっぱ違ってみえるよねw
639:デフォルトの名無しさん
07/12/15 19:44:18
いろいろ考えるとInputMapはFactoryクラスとかで一括管理すべきなんだろうなと思ってきた。
640:デフォルトの名無しさん
07/12/15 19:44:55
そういえばJTableはCtrl+左クリで複数選択機能があったはずだけど、Macだとどうなるんだっけ。
641:デフォルトの名無しさん
07/12/15 19:49:16
>シリコングラフィックのあの癖のある筐体でみるのと、
>DOS/Vの筐体でみるのではやっぱ違ってみえるよねw
それはありますねー。
Sunのマシンにsunの4つつながったロゴがないだけでも、
Motifは別物に見えそうだし。
データセンターでMacのハードやUIがあったりしたら、
違和感ありそうだし。。。
642:デフォルトの名無しさん
07/12/15 23:39:08
>>619
質問 ↓のコードでもmacとwindowsで兼用できなかったの??
KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
643:デフォルトの名無しさん
07/12/16 02:36:30
619です。
>質問 ↓のコードでもmacとwindowsで兼用できなかったの??
>KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
Toolkit#getMenuShortcutKeyMask()メソッドは初めて知りました。
ありがとうございます。
興味本位で聞いただけです。
実際にやってみていない。というかmac環境がないので。試せません。。
URLリンク(tinyurl.com)のあたりをざっとみると、
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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/16 03:36:27
Mac OS XではCommand+Cとかになるからね。
getMenuShortcutKeyMaskの戻り値はEvent.META_MASKになる。
CommandキーはWindowsだとWindowsキー。
646:デフォルトの名無しさん
07/12/16 17:50:37
619です。
macの結果を教えてくださりありがとうございます。
macのショートカットキー一覧を見ると
「コマンド + C →「編集」メニュー コピー」と記載されているので、
つまり、getMenuShortcutKeyMask()を使用できそうということでしょうか。
ところで、macにはWindowsでいう「やり直し(Ctrl+Y)」
(元に戻すのを戻す?)は、ないのでしょうか。
私の言っている「Ctrl+Shift+Z」ショートカットキーは誤りですか?
たびたびすみませんが、時間がありましたら教えてください。
647:デフォルトの名無しさん
07/12/16 18:11:03
HIG(Human Interface Guidelines)
URLリンク(developer.apple.com)
Keyboard Shortcuts
URLリンク(developer.apple.com)
テキストエディット(メモ帳・ワードパッド)
GarageBand(作曲)
Pages(ワープロ)
Keynote(プレゼン)
Numbers(スプレッドシート)
BathyScaphe(2ちゃんねるブラウザ)
で見たら、「やり直す」はCommand+Shift+Zだった。
648:デフォルトの名無しさん
07/12/16 18:17:26
ちょっと古いけど
URLリンク(developer.apple.com)
やり直しはShift+Command+Zだね。
649:デフォルトの名無しさん
07/12/16 18:36:01
うお、Leopardでは「取り消す(cmd+Z)」と「やり直す(shift+cmd+z)」に変わったんだね。
プレビューではファイルメニューに、最後に保存した状態に戻す「元に戻す」があったりする。
650:デフォルトの名無しさん
07/12/16 20:20:32
>647さん
>648さん
>649さん
ありがとうございます。
URLリンク(developer.apple.com)
の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:デフォルトの名無しさん
07/12/16 21:00:00
Swing標準のキーバインドってなかったっけ?
あったらそれで良いと思う。
あれはLAFで決まるんだっけ?
652:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/16 21:48:11
>>633
654:_
07/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:デフォルトの名無しさん
07/12/19 15:17:46
いくつか突っ込みどころがあるから最初からやり直した方が早い。
656:デフォルトの名無しさん
07/12/20 03:59:56
最初からやり直すというか、紙の上で状態遷移を考えた方がいい。
自分の言ってる矛盾に気付けるから。
657:デフォルトの名無しさん
07/12/20 08:13:43
>Combo1でaかbが選択された場合はCombo2が有効で
>Combo2でcかdが選択された場合はCombo2が無効になるようにしたいのですが
下のCombo2はCombo1の間違えだよね?
658:デフォルトの名無しさん
07/12/20 08:46:01
Combo1の間違えでした.
Combo1の状態に応じてCombo2の有効,無効が変化する
物をつくりたいんですが教えていただけないでしょうか
659:デフォルトの名無しさん
07/12/20 09:23:02
combo2.setVisible(false);
これでは駄目なの?
660:_
07/12/20 11:53:34
上のやり方だとaを選ぶとCombo2は有効になるんですがaを選んだ後にcに変更すると
Combo2は無効にならずに有効のままになってしまいます.
同じようにcを選ぶと無効になるんですがその後にaを選ぶと無効のままになってしまいます.
最初の選択では上手くいくんですが選択を変更すると変化してくれないんです。
661:デフォルトの名無しさん
07/12/20 12:45:54
まず、そもそもCombo1ActionPerformedメソッドが実行されてるのかどうかを確かめるんだ。
実行されてるなら、そのときCombo1.getSelectedItem()の値が実際は何になっているのかを確かめるんだ。
662:_
07/12/20 13:07:41
Combo1でaを選ぶとCombo1ActionPerformedメソッドが実行されてCombo1.getSelectedItem()の値は
aになっているんですがその後にCombo1でcを選んでもCombo1ActionPerformedメソッドが実行されてません
続けて選んだ場合にもCombo1ActionPerformedメソッドが実行されるようにするにはどうすればよいのでしょうか?
663:デフォルトの名無しさん
07/12/20 13:44:37
>>662
実行されてないのをSystem.out.println文で確認した?
664:_
07/12/20 16:00:32
確認しました
コンボボックスを変更してもActionPerformedにいってくれないようです
665:デフォルトの名無しさん
07/12/20 17:13:44
ActionListenerをやめて、ListDataListenerでComboBoxModelの変更を捕らえてみたらどう
666:デフォルトの名無しさん
07/12/20 19:48:40
おい、おまいら。
SwingApplicationFramework使ってますか?
667:デフォルトの名無しさん
07/12/20 19:57:08
使ってません。
あれって便利なの?
668:デフォルトの名無しさん
07/12/20 20:00:15
使ってみようと、Netbeansでプロジェクトを作った。
でも、どうするものかいまいちピンときていない。
Actionの管理をしてくれるのはいいんだけどちょっと縛りがきついなぁと感じた。
IDE無しでは複雑過ぎる気がする。
669:デフォルトの名無しさん
07/12/20 20:57:09
IDEなしでの比較だとアクションイベントを書くのはフレームワーク使ったほうが楽
アプリケーションの起動時と終了時に処理が書けるようになるとかはまぁあればあったでいいという程度
ただアノテーションつかってそれの名称を文字列で記述ってのは実行時エラーの可能性が増えるから
静的言語としてはどうかなぁというのが多い
Web方面のフレームワークもだけどね
Springとか最新版ですら1.4とか過去の互換性のために文字列を使うことが多すぎ
enumきっちりつかってくれよと思うことは多いかな
670:デフォルトの名無しさん
07/12/21 00:39:19
IDEなしということはGUIエディタも使わずにSwingのアプリを作るってこと?
本で紹介するサンプルコードならともかく、本格的なもの作るなら論外だと思えるけど。
671:デフォルトの名無しさん
07/12/21 00:42:07
別に普通に行われてることですが
672:デフォルトの名無しさん
07/12/21 00:42:42
そりゃお気の毒
673:デフォルトの名無しさん
07/12/21 00:47:11
本格的なものを作るならフォームエディタなんて使わないと思うが。
674:デフォルトの名無しさん
07/12/21 00:58:40
>>670
逆じゃないの?
675:デフォルトの名無しさん
07/12/21 01:00:16
IDEサポートなしと読めばいいじゃない。
676:デフォルトの名無しさん
07/12/21 01:02:26
>>673-674
はいはいwノシ
677:デフォルトの名無しさん
07/12/21 01:04:17
最近Javaから離れて久しいが、GroupLayoutはツールなしで使うのは
辛いと聞いたことがあるな。
678:デフォルトの名無しさん
07/12/21 07:36:04
670にとって本格的なものってのは
テキストフィールド2つにボタンひとつ。
679:デフォルトの名無しさん
07/12/21 08:34:45
IDEなしじゃ何もできないって人は、素のHTMLをいじれない人と「使えない」って点で似てる
680:デフォルトの名無しさん
07/12/21 11:03:39
ここでは何もできない人の話はしてないね。
681:デフォルトの名無しさん
07/12/21 11:05:03
>>678の煽りの程度の低さに絶望した
もっとまともな指摘があるのかと思った。
682:デフォルトの名無しさん
07/12/21 11:10:10
仕事でレイアウトマネージャって使っています?
683:デフォルトの名無しさん
07/12/21 11:12:54
使うよ
684:デフォルトの名無しさん
07/12/21 11:45:21
やっぱ普通使うよね
絶対座標ばっかだ・・・
685:デフォルトの名無しさん
07/12/21 12:29:53
>>679
効率よく出来るかどうかだから。
仕事ならDreamWeaverとか使わないでHTML生成してるアホはいらんね。
ペイントあればフォトショップ等いらないでしょ?とか
テキストエディタでPDF作れるでしょ?といってるのとかわらんな。
>>684
せめてNetBeansに付属の伝統のAbsoluteLayout使ってね。
Nullはだめだぞ。
686:デフォルトの名無しさん
07/12/21 12:52:28
親切な香具師だな。
土を手で耕したいという土民なんかほっとけばいいのに。w
687:デフォルトの名無しさん
07/12/21 12:57:29
なんかバカがいるな。
688:デフォルトの名無しさん
07/12/21 13:33:04
仕事ではGridBagLayoutが基本かな・・・
NetbeansのGridBagLayoutのエディタが無いと仕事にならんね・・・・
もうちょっと進化してくれても恨まないけど・・・・
複数のレイアウトマネージャを組み合わせて、
がちっと作り込むのは実はむしろ趣味のほうだったりする。
それでも、GridBag,Groupを手で書くのは調整くらいはできても、まぁ正直無理。
689:デフォルトの名無しさん
07/12/21 13:37:50
レイアウトマネージャの組み合わせはわりと普通に使う
ただ、GropuLayoutがでてしまったおかげでほとんどそれ1本でいけるようになっちまった
690:デフォルトの名無しさん
07/12/21 13:47:57
GropuLayoutはいいよね。使いたい。
でもそのためにはJavaのバージョンを6にしないとだめなんだよなー
まだ1.4だしなー
先は長いな・・・
691:デフォルトの名無しさん
07/12/21 13:50:37
GropuLayout
692:デフォルトの名無しさん
07/12/21 13:58:22
パッケージが違っていいのなら1.4から使えた希ガス。
5.0からだったかな?
来年登場予定のJavaSE7がでると1.4は保守されなくなるから。
保守契約結んでいるなら5.0以上でも動くようにしていったほうがいいね。
693:デフォルトの名無しさん
07/12/21 16:55:49
1.4はとっくにEOL。jdk7が出てから死ぬのは1.4.2
694:デフォルトの名無しさん
07/12/21 19:39:20
GroupLayoutが出たときにEclipseからNetBeansに乗り換えようかなと考えたけど
GroupLayoutが、考え方が非常に明快な上に
頭で考えたことを素直に反映できる優秀なレイアウトだったので、やめた
695:デフォルトの名無しさん
07/12/21 19:40:22
なんじゃそりゃ
696:デフォルトの名無しさん
07/12/21 19:45:29
難読化
697:デフォルトの名無しさん
07/12/21 19:50:41
IDEなしじゃGUIも扱えない奴ってどうなん?
JTableとかテキストフィールドで再現してそう
698:デフォルトの名無しさん
07/12/21 19:56:51
それはないだろ
699:デフォルトの名無しさん
07/12/21 20:16:43
無知の自覚がない無知は無知のまま放置がベスト
700:デフォルトの名無しさん
07/12/21 21:17:20
>>670
GUIエディタは便利だけど、業務アプリでそういうのでサックリ作っちゃうと
後々火を吹くから俺のPjでは使わない。
>>685
イタイな
701:デフォルトの名無しさん
07/12/21 21:46:14
GroupLayoutってさ、vGroupとかhGroupとか使ってコンポーネントのレイアウトを決めるわけだけど、
なんか冗長な記述だよな。これは仕方ないのか?
702:デフォルトの名無しさん
07/12/21 21:46:20
>>700
GUIに頼らずにどこまでできるかで、決定的な差が出る場面ってあるからね。
このスレではアマチュアが多いのか、あまり良く分かってない人が多いようだけど。
703:デフォルトの名無しさん
07/12/21 22:05:17
>>700
えぢたを使って火を噴くって例えばどんなの?
704:デフォルトの名無しさん
07/12/21 22:21:03
ロジックを画面実装で埋め込ませなければ大丈夫じゃないか?
ウチではハンドラをあとからインジェクションする仕組みで使ってるが・・・
705:デフォルトの名無しさん
07/12/21 22:24:13
>>704
確かにそうだね。
完全にGUI担当者がデザイナと化してくれれば問題はないよね。
あとは、GUI担当者が皆一様の作法を身につけてくれることが重要かな。
そのためにもGUIデザインのためのフレームワークみたいなものは欲しいね。
706:デフォルトの名無しさん
07/12/21 22:27:10
SwingApplicationFramework
707:デフォルトの名無しさん
07/12/21 23:59:58
デザイン関係ない
708:デフォルトの名無しさん
07/12/22 06:26:42
GUIエディタ使って火噴くって、どんだけ低レベルなんだよ
709:デフォルトの名無しさん
07/12/22 07:39:23
>>708
おまえ程低くないと思うよ。
710:デフォルトの名無しさん
07/12/22 08:06:29
煽りあいしかできないのか。ちょっとは期待してたんだが。
711:デフォルトの名無しさん
07/12/22 12:13:06
>>706
それはどっちかというとGUIアプリの処理手順をフレームワーク化してるよね
ちょっとわかりにくいかもだけど、俺がいいたいのは、「GUIデザイン」部分のフレームワーク。
そういうのがあったらいいなぁなんてオモタわけ。
うーん伝わらないか。。。
712:デフォルトの名無しさん
07/12/22 12:45:00
>>700をはじめとして釣りがまざってるので注意
713:デフォルトの名無しさん
07/12/22 15:44:41
IDEがないと何も出来ません><ってやつが大勢を得る事なんてないから黙ってようね
714:デフォルトの名無しさん
07/12/22 16:01:58
原因不明のバグが出たらとりあえず全部調べるんじゃね
715:デフォルトの名無しさん
07/12/22 16:22:38
IDEていうかGUIビルダみたいなRADのこと言ってんだろ湧いて来る厨は。
716:デフォルトの名無しさん
07/12/22 16:26:24
せいぜいメインウィンドウのメニューや、そこから辿れる設定ダイアログまでだな。
3ペインアプリとかは手書きじゃないと満足いくものはできないだろ
717:デフォルトの名無しさん
07/12/22 16:32:42
3ペインなら今手書きで作ってるが・・・。
718:デフォルトの名無しさん
07/12/22 18:37:38
GUIエディタ使うってのは、業務アプリの画面とかダイアログだろ。
719:デフォルトの名無しさん
07/12/22 18:39:31
IDEじゃ何もできません><ってやつは使い物にならんよなぁ。
ツール使えばすぐできることを、なんだかんだいいながら手書きでやるんだけど、無駄に時間かかるし古い機能しか使ってなかったり。
720:デフォルトの名無しさん
07/12/22 18:46:41
>>718
なるほどね。業務アプリって画面びっしりコントロールをつけるからなw
721:デフォルトの名無しさん
07/12/22 19:00:30
>>719
まともなコードが書けるかどうかが重要であって、
IDEの使用経験の有無は大した問題じゃない気がする
IDE使ったことない奴には使い方を教えてやるだけで済むが、
プログラミングのセンスがない奴はいくら教えてもどうにもならん
722:デフォルトの名無しさん
07/12/22 19:10:38
もういいからVB使っとけよ。
723:デフォルトの名無しさん
07/12/22 19:11:51
VBにSwingってあるの?
724:デフォルトの名無しさん
07/12/22 19:15:21
>>721
でもIDEの慣れの差はやはり大きい
NetBeansを長年使ってきた人はさくさくつくれるけど、
Eclipseしか触ってこなかった人は開発効率が悪い
1,2年たつと違うんだろうけどね
725:デフォルトの名無しさん
07/12/22 19:17:27
>>724
結局それがいいたかっただけか。
マジレスしなくてよかった。
726:デフォルトの名無しさん
07/12/22 19:19:44
>>725
俺今日はじめて書きこんだんけど
727:デフォルトの名無しさん
07/12/22 20:00:38
業務アプリだと、こんな感じで入力項目があるからな。
URLリンク(www.epson.jp)
ツール使わずにやるのは非効率極まりない。
728:デフォルトの名無しさん
07/12/22 20:45:36
>>727
俺が仕事で作ってる業務アプリは、こんなもんじゃねーぞ・・・
タブで分かれて細かい設定項目が山のようにある。
あんなの手書きしてたら気が狂うわ。
729:デフォルトの名無しさん
07/12/22 20:48:02
普通に100個ぐらいコンポーネントあるよね
730:デフォルトの名無しさん
07/12/22 21:12:10
まだ言い合ってるのか。お前らも飽きないな
731:デフォルトの名無しさん
07/12/22 21:22:46
業務アプリじゃJTableやJTreeはめったに登場しないしな
そういう人らは使えばいいんじゃない?
732:デフォルトの名無しさん
07/12/22 21:24:25
JTableは使用しまくりだよ
733:デフォルトの名無しさん
07/12/22 21:32:13
>>731
JTable使いまくりだけど・・・
検索結果を大量に表示したりせんの?
まあ、めったにJTreeは使わんけど。
734:デフォルトの名無しさん
07/12/22 22:44:43
テーブルがでてこないアプリってあるか?
ツリーはあんまりないけど
735:デフォルトの名無しさん
07/12/22 22:53:20
個人開発だけどツリーの方がよく使う。JTableはスプレッドシートだから業務アプリでよく使うんじゃない?
736:デフォルトの名無しさん
07/12/23 01:19:09
アプリ毎で性格違うんだから、自分の携わったプロジェクトの経験だけあげてもしかたない。
でも、部品の利用のされ方ってのは興味深いな。
アプリで使われてる場面がどれくらいあるのか、
JTableなんかのレンダラとかもどうされてるか気になる。
デフォルトで行ける場面ってどれくらいあるのかとか。
Swingのデフォルト部品って、あと一味足りないみたいなとこあるからなぁ。
というか、特にJTableに感じるんだけど。
(表の真ん中にスクロールバー付けたいなぁ、とか)
737:
07/12/23 03:03:49
Swingでキャッチされない例外が起きてもプログラムは終了しませんよね。
エクリプスとかで走らせてるとoutputに表示されるけど、コマンドプロンプトから走らせるとキャッチされない例外が起きてるのが分かりません。
これを知るにはどうしたらいいのですか?
検出してログをとるなり、メッセージダイアログを表示するなりしたいんです。
738:デフォルトの名無しさん
07/12/23 05:31:30
sun.awt.exception.handler で検索汁
739:デフォルトの名無しさん
07/12/23 11:06:01
throwsして無けりゃなんか表示するとおもう
740:デフォルトの名無しさん
07/12/23 11:13:30
>>736
> 表の真ん中にスクロールバー付けたいなぁ
それは一味も二味も違うだろ w
それができるテーブルコントロールなんて他の言語でも見たこと無いけど。
まあ、俺なら二つのテーブルを並べて、スクロールを同期させるかな。
741:デフォルトの名無しさん
07/12/23 11:42:12
>>738
どうもありがとうございます!
>>739
jarにしてダブルクリックで起動したりもするので、windowsだと何も表示されないのです。
742:デフォルトの名無しさん
07/12/23 16:28:19
>>741
java -jar file.jar
と「ファイル名を指定して実行(R)..」すれば
例外は全部コンソールに表示される
743:デフォルトの名無しさん
07/12/23 19:40:17
というか例外はアプリケーションのどっかの層で拾って
ユーザーにGUIで見せて後は処理続けるかどうかは状況次第っていうように組むもんだが。
System.errにテキストコンポーネント突っ込んでやると楽。
744:デフォルトの名無しさん
07/12/24 00:02:41
>>743
その、「アプリケーションのどっか」にこないから問題っていってるんじゃねぇの?
738で解決するようだけど。
745:デフォルトの名無しさん
07/12/24 01:58:17
例外の対応は場所によって個別対応するしかないよ。
問題ない例外なのかそうでないのかは単純に判断できないし。
運用時ならテキストファイルにログを書き出しておいてそこをメールで添付させるように促すとか
画面のスナップショットを自動でとってdesktopに自動でbmp作ってそれを添付させるとか
まぁいろんな方法があるわな。
746:デフォルトの名無しさん
07/12/24 14:15:13
NetBeans6.0ってJTable使うのにほとんどの場合面倒な設定を直書きしなくてよくなったのな。
新機能であまり取り上げられていないけどこれはすごいな。
747:デフォルトの名無しさん
07/12/25 14:46:26
SwingでPopup形式でJPanelとかJTableとかを表示したいのですが、どう書けばよいでしょうか?
748:デフォルトの名無しさん
07/12/25 15:34:33
複雑なロジックの入ったものならポップアップよりダイアログにするほうがいいけど、ポップアップじゃないとダメ?
JDialogを普通に使うほうがいい場合もあると思うけど。
JPopupMenuは想定される素の状態だとメニューバーと同じくアクションボタンを並べるものだけど
例によって自由にカスタマイズできるので継承するといいかも。
749:デフォルトの名無しさん
07/12/25 15:41:53
>>748
JFrameの上に出せるWindowなら何でも良いというくらいの意味だったんですが、Dialogでやろうと思います。
JPopupMenuがカスタマイズできるとは知りませんでした。ありがとうございます。
750:デフォルトの名無しさん
07/12/26 00:00:31
Swing Application Framework でメニューバーとかツールバーを実装する場合の作法を教えてちょ。
751:デフォルトの名無しさん
07/12/26 00:26:58
>>750
NetBeansでデスクトップアプリケーションで作ると
メインフレームがメニューとか作られるから参考にするとよろし
752:デフォルトの名無しさん
07/12/26 00:29:32
>>751
サンクス。
いつもEclipseばっかり使ってたもんで、NetBeansには疎いんですが、
機能的には遜色ないですかね?
Eclipseでいうところの「呼び出し階層を開く」とかそういうのはありますかね?よく使う機能なので。
753:デフォルトの名無しさん
07/12/26 01:25:27
宣言をしてる場所にとんだりする機能?
CTRL+クリックでとぶよ
キー操作だけだとどこだったかはわすれたけどEclipseと同じキー設定もあったような気がする
乗換えとかじゃなくて参考に出来ればよいと考えるといいかも
でも、GUIアプリ開発とWebアプリ開発が目的なら乗り換えるほうが楽だと思う
Swing Application Framework対応していて、@Actionとかぜんぶやってくれるよ
754:デフォルトの名無しさん
07/12/26 08:37:12
>>753
そっちの機能じゃなくて、選択したメソッドがどこから呼び出されているかを一覧する機能。
かなり重宝してる機能なのであったらいいんだけど。
755:デフォルトの名無しさん
07/12/26 13:14:07
呼び出し元なら普通に昔からあるけど。
756:デフォルトの名無しさん
07/12/27 00:09:33
あるオブジェクトをある場所に移動させていきたい時に、
オブジェクトのxとyを少しづつ変化させているんですけど、どうやるのがベターですかね?
オブジェクトはいろんな場所に発生するので、
if (x > 行き先X) {
757:デフォルトの名無しさん
07/12/27 00:10:11
すいません 途中でした。
続き
if (x > 行き先X) {
758:デフォルトの名無しさん
07/12/27 00:13:28
すいません 途中でした。
続き
if (x > 行き先X) {
x -= 5;
} else {
x += 5;
}
if (y > 行き先Y) {
y -= 5;
} else {
y += 5;
}
こうやってるんですけど、こうするとxかyのどちらかが行き先に到達した場合に、
ぷるぷる震えた感じになっちゃうんですけど、なにかうまい方法ありますかね?
759:デフォルトの名無しさん
07/12/27 00:13:37
それはSwingの問題なのか??
760:デフォルトの名無しさん
07/12/27 00:15:21
単に行き先Xや行き先Yが5の倍数じゃないんじゃね?
761:758
07/12/27 00:18:36
>>760
そうですちょうど倍数じゃないときで、移動距離を1にしたくない場合、
どういうロジックが考えられますか?
762:デフォルトの名無しさん
07/12/27 00:34:37
>>761
それぐらい、自分で考えろよ・・・・
つかスレ違い。
763:デフォルトの名無しさん
07/12/27 00:40:10
Math.abs() 絶対値
差が5に満たない場合
差の分だけ移動
既に目的地に到達してたら チェックはしない。
移動距離の5は定数にしようかな
思った事を書いてみた。
俺は寝る、がんばれ。
764:758
07/12/27 00:41:06
そうですか
表示上の問題だと思ったんでここで聞いたんですが・・・
xflagとyflagを作って、&で到達チェックするとか考えたんですけど、
スマートじゃないんですよね
たとえばどんなのが考えられますかね?
765:758
07/12/27 00:43:12
>>763
ありがとうございます
とても参考になりました
766:デフォルトの名無しさん
07/12/27 00:45:01
>どういうロジックが考えられますか?
って自分で聞いてるぐらいだからSwingの問題じゃなくてアルゴリズムの問題だろ。
767:デフォルトの名無しさん
07/12/27 00:51:43
そうですね
javaのスレッドで聞いたほうが良かったですね
答えてくれた方ありがとうございました。
768:デフォルトの名無しさん
07/12/27 01:03:08
java関係ないし
問題の切り分けに注意しないと間違ったスレでは歓迎されないぞ
769:デフォルトの名無しさん
07/12/27 01:14:11
そうですか
初心者スレッドで聞けばよかったですか
いえばただの簡単なアルゴリズムの問題なのですが、
ここなら同じようなことをやっている人がいるかなと思ったんで、
ここで聞いたほうが早いかなと思ってしまいました。
770:デフォルトの名無しさん
07/12/27 01:17:26
初心者は初心者らしく初心者スレで聞こうな。
まあ、その前にこの程度のロジックは自分で考えられないと、
なにを作るにしても困ると思うぞ。
771:デフォルトの名無しさん
07/12/27 01:33:38
というか普通に高校の物理の問題じゃないかこれ?
そこまでのアルゴリズムじゃないけど。
772:デフォルトの名無しさん
07/12/27 01:36:47
物理?!
どう見ても小学生の算数レベルだろ。
773:758
07/12/27 01:39:19
強引にやろうと思えばできると思うんですが、
スマートにできないんですよね(馬鹿なんで)。
完璧を目指すのはキリがないと思うんですが、
ある程度きれいなコードが知りたいんですよ。
スレリンク(tech板)
ここに移動したんで良かったらいいサンプルコードお教えください。
774:デフォルトの名無しさん
07/12/27 01:43:05
>>769
>ここで聞いたほうが早いかなと思ってしまいました。
こんなのを自分で考えられないとしたら先は長い気がするが…
まぁ地道にがんばれ!
775:デフォルトの名無しさん
07/12/27 02:06:16
ベーマガとか初心者向き雑誌がないと大変なのかなーとかおもっちまった
こういうの当時の小学生は普通に作ってたもんね
776:デフォルトの名無しさん
07/12/27 02:18:59
HSP使ってる連中も普通に作ってるぞ。
というかゲームにSwing使ってるの?
777:デフォルトの名無しさん
07/12/27 02:20:55
Java2Dを使うことはあるかもしれないが、Swingはあんまつかわないだろうね
ただ、ここAWTと合流したからJava2D等も含むといえば含む
本気でやるならJOGLだろうけど
778:デフォルトの名無しさん
07/12/27 02:26:13
本当だ!!
いつの間にかスレタイにAWTが入ってた!!
779:デフォルトの名無しさん
07/12/27 02:32:45
JOGLの正式版が出たときプレイアブルな2DデモとGLCanvasに描画するJMFのレンダラを組んだけど
いまじゃJOGLはjava2Dとパイプラインが統合されてんだよね。
OpenGLの関数使いたいわけじゃないなら-DオプションでOpenGL使うようにした方が楽かね?
それならわざわざ2D描画に3Dtoolkit使う必要ないし。
バグさえ消えれば。
780:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/27 07:13:18
まぁ、とりあえず読みなさい。
URLリンク(java.sun.com)
782:780
07/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:デフォルトの名無しさん
07/12/27 08:37:43
Timer#stop()を呼べば止まると分かっているのなら、
後は変数のスコープの問題。
ローカル変数timerをクラスAのインスタンス変数にして、
こんなメソッドを作って
public void stopTimer(){
timer.stop();
}
これをactionPerformed()内の適切な位置で呼べばいい。
ところでこのサンプルコード、Timerでやってる処理がi++だけなんだが、
これは単純化したサンプルコードなだけだよね?
ホントのコードでは、ちゃんとGUIスレッドですべき処理をしてるんだよね?
784:デフォルトの名無しさん
07/12/27 08:53:05
ああうまくいきました
GUIスレッドですべき処理というのがいまいちわかんないんですが、
ある条件でaのエフェクトを起こすみたいな感じなんですよ
とにかくこれで寝れます どうもありがとうございました
785:デフォルトの名無しさん
07/12/27 10:45:15
ボタンのイベント中にタイマーの時間が来たり、その逆も有ったりするって意味じゃね。
786:デフォルトの名無しさん
07/12/27 12:26:40
>>783
swing.TimerはEDTでactionPerformed呼ぶからそのへんは大丈夫と思
787:デフォルトの名無しさん
07/12/27 13:29:19
>>779
Java2Dだとαブレンディング/テストとか足りないものが多いから
2DであってもOpenGL使わざるを得ないのが現実
>>785が正解
あと注意すべきところはSwingTimerは定期処理にはいいけど、
長時間の流れがある処理には向かないというのもおぼえておくとよろし
あくまでも一定時間ごとにアクションイベントを発生させるだけ
詳しく見てないけどSwingFrameworkでjavax.swing.Timerも扱えるんかな?
788:デフォルトの名無しさん
07/12/27 22:23:18
Javaで動画を再生しようと思っているのですが(Macも含める)
・JMFだとMacで再生出来ない。
・QuickTime for JavaだとLinuxで再生出来ない。
という認識はあっていますでしょうか?
789:デフォルトの名無しさん
07/12/27 22:41:37
JMFのクロスプラットフォーム版を含めるなら間違ってる。
というかこれくらい人に聞かずとも分かるだろ。
790:デフォルトの名無しさん
07/12/28 00:08:21
>>789
URLリンク(www.animoids.com)
「JMF_2_1_1_mac.zip」の部分から、
もしかしてMac用がどこかで配布されているのかと勘違いしてしまいました。
791:デフォルトの名無しさん
07/12/28 03:27:55
検索するとそこヒットするんだよね。
JMFはjava動かすスペックと動画デコードするスペックを
ダブルで要求するからネイティブ版でもいろいろすると重いぞ。
単純なラッパーだからwin版はバグだらけだし。
792:デフォルトの名無しさん
07/12/28 08:46:22
>>790
こんなの見つけたぞ
URLリンク(www.sra.co.jp)
793:デフォルトの名無しさん
07/12/28 15:55:29
2004年から更新してないとか心配なんだけど、
なんでどこも投資して開発を続けないんだろう
794:デフォルトの名無しさん
07/12/28 16:06:51
こんなところでじゅんを見る事になるとは・・・。
795:デフォルトの名無しさん
07/12/30 16:40:20
JFileChooserにおいて、ダイアログ表示時のデフォルトの名前を指定するにはどうすればよいでしょうか?
796:デフォルトの名無しさん
07/12/30 16:55:09
setSelectedFile() で指定してから表示
797:デフォルトの名無しさん
07/12/30 16:57:49
JFileChooser#setSelectedFile(File)
798:デフォルトの名無しさん
07/12/30 17:14:41
ありがとうございました!
799:デフォルトの名無しさん
07/12/31 00:16:16
NetBeans入れたら超もっさり動作でがっかりした。
結局今はEclipseにもどりますた。
SwingアプリがSWTアプリみたいに比較的ストレスなく動いてくれる日はマダ来ないのかね。
800:デフォルトの名無しさん
07/12/31 00:25:30
もっさりとかストレスなく動くとかってのは主観的なものだから、
>>799の気分次第で明日にでも来るし、永遠に来ない事もありうる
801:デフォルトの名無しさん
07/12/31 00:57:01
>>799
マシンのスペックはいかほどで?
802:デフォルトの名無しさん
07/12/31 00:58:07
JavaはマイナーCPUに冷たいだろうし
マイナーGPUにも冷たいのかもしれんね
803:デフォルトの名無しさん
07/12/31 01:02:44
CやC++なら温かいともいえないんじゃね?
804:デフォルトの名無しさん
07/12/31 01:16:32
>>802
Java使ってるSWTもマイナーCPUやマイナーGPUに冷たいって事に?
805:デフォルトの名無しさん
07/12/31 01:17:10
>>802
SPARCにも冷たいって事に?
806:デフォルトの名無しさん
07/12/31 01:20:05
>>804はスルーするが、>>805は許せん。
807:デフォルトの名無しさん
07/12/31 01:42:32
今時はお世辞にもメジャーとは言い難い。
808:デフォルトの名無しさん
07/12/31 14:16:14
いまさらSPARCもねえだろ
809:デフォルトの名無しさん
07/12/31 15:29:10
金にいとめをつけずWinで最速のマシンもってくれば、Javaでもかなり高速動作するんじゃないの。
810:デフォルトの名無しさん
07/12/31 15:33:56
既存のコンポーネントにアクションを付加したい場合どのような手段を取るのが比較的単純に済むでしょうか?
例えば、JTreeでCtrl+Fで検索のアクションをさせたい場合などです。
811:デフォルトの名無しさん
07/12/31 17:44:54
>>810
適当なコンポーネントの ActionMap と InputMap に登録すればいいだろ。
812:デフォルトの名無しさん
07/12/31 18:07:49
JFileChooserののろさにガックリ
813:デフォルトの名無しさん
07/12/31 18:15:44
>>368 あたりで話題になってる不具合のせいかも?
814:>>810
07/12/31 18:36:09
InputMapを知りませんでした。
こんな簡単に実現できるなんてSwingは本当にすごいですね。
ありがとうございました。
815:デフォルトの名無しさん
08/01/01 02:16:39
>>799
いつものネガティブキャンペーン乙
6.0だとEclipseのほうが軽いとかってありえんだろ
SWTはスレ違いだからそっちでやってくれ
816:デフォルトの名無しさん
08/01/01 02:28:13
今更釣られるアホは寝てろ
817:デフォルトの名無しさん
08/01/01 08:17:29
たしかに起動に関してはnetbeansめっちゃ遅いよな
818:デフォルトの名無しさん
08/01/02 02:11:59
何もプラグイン入れなければ、Eclipseは軽いね。
819:デフォルトの名無しさん
08/01/02 02:17:51
Java EE フルセット入れた Eclipse のもっさりと不安定さはすさまじいものがある。
sysdeo の Tomcat プラグインと JSP, XML の構造化エディタ程度ならめちゃめちゃ軽い。
必要なものを選択できる人間だけが楽できる。
820:デフォルトの名無しさん
08/01/02 03:15:40
>>819
インストールしてもプラグイン無効にすればいいんじゃね?
821:デフォルトの名無しさん
08/01/02 22:26:40
swingのコピペを調べてたんだが。
CTRL+X -> CTRL+V で「切り取り -> 貼り付け」した時に、
貼り付け後に、余計なオブジェクトを削除するための後処理はexportDoneでいいんだろうか?
なぜか、CTRL+Xを押した瞬間に、exportDoneが実行されちゃうんだ。
exportDoneの説明には、
>データのエクスポート後に呼び出されます。このメソッドは、アクションが MOVE の場合に転送されたデータを削除します。
>MOVE はこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActions には MOVE が含まれません。
どっちやねんw
822:821
08/01/02 22:28:33
今のところ、対処方法が分らないので、exportDoneの中では何もせず、
importDoneの中で、貼り付け操作完了後に、
自分で削除操作を実行しようかなと思ってる。
823:821
08/01/03 00:34:28
なにをバカなことを!
切り取りの標準的な操作は、切り取りと同時に削除だろうが!
エクスプローラの動作が特殊なんだ!
新年早々はずかしぃぃぃぃぃぃぃぃぃぃぃぃ!!!!!!!!!!
824:デフォルトの名無しさん
08/01/03 03:16:52
エクスプローラの動作は、CUTというよりPREPARE-MOVEだからな。
825:デフォルトの名無しさん
08/01/05 20:53:44
>>817
終了はめっちゃ速いのだが。
826:デフォルトの名無しさん
08/01/06 23:23:28
jdk1.6.0u3
import java.awt.Frame;
これってバグなの?
827:デフォルトの名無しさん
08/01/06 23:33:55
___ ━┓
/ ―\ ┏┛
/ノ (●)\ ・
. | (●) ⌒)\
. | (__ノ ̄ |
\ /
\ _ノ
/´ `\
| |
| |
___ ━┓
/ ― \ ┏┛
/ (●) \ヽ ・
/ (⌒ (●) /
/  ̄ヽ__) /
. /´ ___/
| \
| |
828:デフォルトの名無しさん
08/01/06 23:49:08
>>827
分かる人にはこれだけで分かる
829:デフォルトの名無しさん
08/01/06 23:53:32
>>827
>>828
バグってたのは俺のほうだったw
*.class 削除したらコンパイル通ったよww
830:デフォルトの名無しさん
08/01/07 00:55:29
どういう環境だよ・・・
831:デフォルトの名無しさん
08/01/07 01:26:16
>>830
スレリンク(tech板:646番)
だろう。
832:デフォルトの名無しさん
08/01/07 11:20:26
テストするならTestFrameとかにすべし
833:デフォルトの名無しさん
08/01/07 12:55:58
>>831
よくみつけてきたな
834:デフォルトの名無しさん
08/01/09 03:57:38
相変わらず質問スレは気持ち悪いな
835:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/01/09 18:01:42
JListのカーソルキーによるスクロールことで謎があるので投げてみる。
>>835のプログラムなんだけど、単純にJListの中に300個のダミーデータを入れている。
カーソルキーで下にスクロールしていき、数十行進んだら、こんどは上に10行くらい
スクロール。
そしたらまたカーソルキーで下に移動。
すると、選択されてる項目が一瞬で画面の下までジャンプしてしまう。
このプログラムで、maxを20とか一定の値にした場合はジャンプしない。
JListの各セルの文字列長をランダムに変えたものを入れるとこの現象が起きる。
こういう仕様なのかもしれないけど、一瞬で選択位置が飛ぶと、
目線がそれてしまうので操作感がよくない。
maxを固定したときのように動作してほしい。
なんとかする方法ないかなぁ?
837:デフォルトの名無しさん
08/01/09 19:57:24
>>836
解決法でないのだが、「ジャンプ」の条件について。
固定長かどうかではなく、Viewport の外に描画域があるかないか、ではないのか、と。
固定長で横スクロールが出るようにしたときは「ジャンプ」するし、
固定長でなくても、横スクロールが出ないときは「ジャンプ」しない。
JScrollPane で横スクロールを非表示にしても、見えない部分があるときは「ジャンプ」する。
838:デフォルトの名無しさん
08/01/10 16:05:46
フレームの横サイズを水平スクロールバーが出なくなるまで広げてやればジャンプはしないな。
しかしちょっと設定をいじくったぐらいでは解決しそうない。
オーバーライドして一部の機能を殺すとか。
839:デフォルトの名無しさん
08/01/10 18:27:36
↓このバグだと思うよ。7で直ってるらしい。
URLリンク(bugs.sun.com)
URLリンク(bugs.sun.com)
840:デフォルトの名無しさん
08/01/10 18:57:44
バージョンアップを待つのが一番楽そうだね