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
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 ] コードつーかソースね