Java標準低速GUI 6 AWT/Swing
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/09/26(水) 20:51:18しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 5 (前スレ)
http://pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
0252デフォルトの名無しさん
2007/11/03(土) 12:38:14証明書の有効期限切れてるよ
0253デフォルトの名無しさん
2007/11/03(土) 13:58:53200で言及済
次回以降、安定版のリリースのときには署名タイムスタンプを使うことにするよ。
0254デフォルトの名無しさん
2007/11/04(日) 13:41:02windows標準みたいに"キャンセル"って書くにはどうすればいいだろ…
0255デフォルトの名無しさん
2007/11/04(日) 13:44:430256デフォルトの名無しさん
2007/11/04(日) 14:20:13UIManager.put("OptionPane.cancelButtonText", "キャンセル");
0257デフォルトの名無しさん
2007/11/04(日) 14:25:19いつも思うのですが、そのようなフィールドやプロパティの名前はどうやって調べているのでしょう。
ソースを見るしかないのでしょうか?
0258デフォルトの名無しさん
2007/11/04(日) 14:38:37ttp://homepage1.nifty.com/algafield/UIDF.html
0259デフォルトの名無しさん
2007/11/04(日) 14:59:07ありがとうございます。
0260254
2007/11/04(日) 15:35:25ありがとう。
これで見た目ほとんどwindowsっぽくなった。
FileChooserの複数選択をwindowsみたいにドラッグでびやーって範囲広げてその中全選択とかやってみたいけど、
さすがにこれはキツいな。
0261デフォルトの名無しさん
2007/11/04(日) 16:10:38機能がほとんどないけど、それで足りるのならね
0262デフォルトの名無しさん
2007/11/04(日) 16:26:51MacはAWTは普通だけど、Swingの方がしょぼ過ぎる。
Desktop Java Technology Today TS-3160
ttp://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3160&yr=2007&track=2
ここを見ると、Future Platform FeaturesにNative FileChooserってあるから、そのうち改善されると思うけど。
0263デフォルトの名無しさん
2007/11/04(日) 22:26:28URL url = Hoge.class.getResource("../resources/book.gif");
2.
URL url = ClassLoader.getSystemClassLoader().getResource("../resources/book.gif");
このような2つのコードでリソースを取得しています。
1をHogeクラスで使用するとちゃんとURLが返ってきますが、Hogeのインスタンスであるインナークラスから呼び出すとnullが返ってきます。
しかし2のようにシステムクラスローダから呼び出すと、Hogeからの場合もHoge中のインナークラスからも呼び出すことができます。
そこで質問なのですが、
Q1.インナークラスからの相対パスは、そのインナークラスの属するクラスからの相対パスとは異なるのか(上でいうHogeのインスタンスのインナークラスとHogeクラスの関係)
Q2.上の実行を、eclipseで行うと結果が逆になる(2がうまくいかず、1がうまくいく)のですがその理由。
答えづらい質問ですみません。もしよろしければ教えてください。
0264デフォルトの名無しさん
2007/11/04(日) 23:44:44どうせリソースは決まった場所におくでそ
0265デフォルトの名無しさん
2007/11/04(日) 23:51:10なんだかそこらへん結構複雑そうですし・・
分りました。以後リソース読み込みは絶対指定にします。
ありがとうございました!!
0266デフォルトの名無しさん
2007/11/08(木) 01:13:350267デフォルトの名無しさん
2007/11/09(金) 12:10:05何かいい方法ないですかねぇ
0268デフォルトの名無しさん
2007/11/09(金) 12:14:15panel.setLayout(new BorderLayout());
panel.add(new JLabel("本文"));
panel.add(new JCheckBox("次からこのメッセージを表示しない"), BorderLayout.SOUTH);
JOptionPane.showMessageDialog(parent, panel);
0269デフォルトの名無しさん
2007/11/09(金) 12:35:18おー、早いレスありがと〜。
0270デフォルトの名無しさん
2007/11/09(金) 23:36:58いまからSwingアプリケーションつくるからなんかお題くれ
条件はネット接続しないこと
開発環境はJDK6u3、NetBeans6.0
0271デフォルトの名無しさん
2007/11/09(金) 23:44:52Jazzの自動作曲。高品質の楽譜の表示と印刷。
0273デフォルトの名無しさん
2007/11/09(金) 23:50:42swingはあくまでもguiのフレームワークに過ぎないから、
swingでアプリケーションを作るって言っても範囲が広すぎるんじゃないかな?
guiでアプリ作るけど何か無いかなって言うようなものだから、もう少し幅を狭めないと。
0274デフォルトの名無しさん
2007/11/09(金) 23:51:07ドロー系お絵書きソフト、SVGでの読み書き可能なものを、OSSで。
0275デフォルトの名無しさん
2007/11/09(金) 23:51:49少しジャンルは違うがヤマハの「初音みく」とか言うの良さそうじゃないか?
0276デフォルトの名無しさん
2007/11/09(金) 23:51:560277270
2007/11/09(金) 23:54:59HotJavaとか初めて聞いたし
Java暦1年半ですがなにか?
0278デフォルトの名無しさん
2007/11/10(土) 00:00:39・・・Swing関係ないかw
0279デフォルトの名無しさん
2007/11/10(土) 00:01:59JEditorPaneで原型はすぐに作れるね。
>>277
ttp://java.sun.com/products/archive/hotjava/index.html
>>275
もちろん既にみくみくしてるぜ。
付属のVSTiプラグインをJavaから使おうとかもしているけど中々時間が取れない。
0280デフォルトの名無しさん
2007/11/10(土) 00:02:19Javaじゃないが、それの本命はinkspaceだろうな。
0281デフォルトの名無しさん
2007/11/10(土) 00:04:380282デフォルトの名無しさん
2007/11/10(土) 00:09:38何かオンリーワンな機能をつけたドローイングかペインティングアプリケーションとかいいんじゃないか?
0283デフォルトの名無しさん
2007/11/10(土) 00:16:53俺が作ってるのもそれだけどw
0284デフォルトの名無しさん
2007/11/10(土) 01:37:420285デフォルトの名無しさん
2007/11/10(土) 01:38:470286デフォルトの名無しさん
2007/11/10(土) 02:27:50Swingと関係なくないか?
あとPDFオープンするのに環境依存コード書くはめになるのもちょっと嫌かな
0287デフォルトの名無しさん
2007/11/10(土) 02:31:130288デフォルトの名無しさん
2007/11/10(土) 03:03:23JFileChooserおそくてかなわんわ
0289デフォルトの名無しさん
2007/11/10(土) 03:56:17だな。死ぬほど遅い。いくつかlazyになるように書き直した。
0290デフォルトの名無しさん
2007/11/10(土) 10:20:210291デフォルトの名無しさん
2007/11/10(土) 12:52:450292デフォルトの名無しさん
2007/11/10(土) 13:47:36金もできたので聞きたいとおもう。GUIつくるだけなら、JBuilderっていい?
無料版はつかったことあるけど、有料版は良いの?
0293デフォルトの名無しさん
2007/11/10(土) 13:59:21SwingベースからEclipseベースになった
少なくとも昔のJBuilderはこつをつかまないと
しらないうちにボーランドのコンポーネント使って汚染されて
他の環境で手軽にコンパイルできなくなるのが欠点だった
あとJBuilderはGUI作成においてNetBeansぬいたことはないよ
GUI使う、使わない以前に開発効率考えるとIDE使わないのは論外だと思う
0294デフォルトの名無しさん
2007/11/10(土) 14:00:46NetBeansでいいんじゃね?
0295デフォルトの名無しさん
2007/11/10(土) 14:12:00NetBeansの方が上なんだ。じゃあそうするよ。
IDE使わないと論外か。。じゃあ、買ってみるよ。
ありがとう。
0296デフォルトの名無しさん
2007/11/10(土) 14:37:010297デフォルトの名無しさん
2007/11/10(土) 15:19:430298デフォルトの名無しさん
2007/11/10(土) 17:06:09まだUbuntu使ってないの?
0299デフォルトの名無しさん
2007/11/10(土) 17:27:590300デフォルトの名無しさん
2007/11/10(土) 17:35:40でも V2C はIDE使ってないらしいね
0301デフォルトの名無しさん
2007/11/10(土) 18:02:480302デフォルトの名無しさん
2007/11/10(土) 18:21:57ソフトウェア=IDEがGUI部を隠蔽しててわずらわしい
規模によりけりじゃないかなぁ。
0303デフォルトの名無しさん
2007/11/10(土) 18:32:02まぁ、groupLayoutは自前でコードかくきにはならないけど
0304デフォルトの名無しさん
2007/11/10(土) 19:39:51横長じゃなくて縦長のボタンやラベルを使いたいのだけど。
0305デフォルトの名無しさん
2007/11/10(土) 20:43:28new JButton("<html>縦<br>書<br>き<br>ボ<br>タ<br>ン");
0306デフォルトの名無しさん
2007/11/10(土) 20:51:00そうだよね。補完とかリファクタリングとか使用状況検索とか便利だよね。
GroupLayoutは最初は便利だと思ったけど、弄ってるといきなり位置が
すっ飛んだりして、いまいち使いづらい。よく出来てるとは思うんだけど。
エディタをもっと分かりやすくすれば良さそうだけど、どうすればいいのやら。
最近は、従来のものを組み合わせた方が思ったようにできていいなと思ってる。
>>304
その発想はなかったw
0307デフォルトの名無しさん
2007/11/10(土) 20:52:04その発想もなかったw
0308デフォルトの名無しさん
2007/11/12(月) 14:58:060309デフォルトの名無しさん
2007/11/12(月) 17:34:14国外のL&Fを今日一つためしてみたんだが、ダブルバイトが全滅。
ttp://regis.risp.pl/
まあ、外観に変化つけるときってフォントいじるから当然かな。
L&Fを自分でこさえるのは手間かかりすぎてそこまで時間とれないし、
MetalのOceanで負けとくのが今のとこ勝ちなのか。orz
0310デフォルトの名無しさん
2007/11/12(月) 17:46:490311デフォルトの名無しさん
2007/11/12(月) 21:05:59おおっ!
なんかすごそうだけど、まださっぱりわからん。
Java SE 6 Update N Early Access Programてのを落としてくればいいのかな。
これそのうちJDKに正式採用されるのかしら?
0312デフォルトの名無しさん
2007/11/12(月) 21:11:420313デフォルトの名無しさん
2007/11/12(月) 21:18:140314デフォルトの名無しさん
2007/11/12(月) 21:23:09Javaアプリケーションが普及してないってことか。
0315デフォルトの名無しさん
2007/11/12(月) 21:39:08アイコンはともかくボタン全体が画像で作られているのはどうも。
融通効かないし。
ボタンが数個しかないアプリとか、ゲームとかならそういうのも良いかと思うけど。
0316デフォルトの名無しさん
2007/11/12(月) 22:45:12作ってみた
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);}}
0317デフォルトの名無しさん
2007/11/12(月) 23:11:37NetBeans5.5.1使ってるんですが、GUIビルダーで質問です
JFrameフォームでフレームをつくり、
別途JPanelフォームでパネルを複数つくります。
アプリケーション起動後に、パネルを好きなタイミングで、フレームにadd()したいのですが、
SwingLayoutの影響でうまくいきません。
なにか特別なやり方があるのでしょうか?
それともGUIビルダーでは不可能なのでしょうか。
0318デフォルトの名無しさん
2007/11/12(月) 23:46:28g2.dispose();
なんだけど、これはpaintComponent()をオーバーライドしたときとか、
Graphicsオブジェクトを使ったあとはかならず実行したほうが良いの?
今までそうしてこなかったのだけど、APIリファレンスみると、
したほうが良いような感じなんだけど、いまいちわかりにくい日本語。
0319デフォルトの名無しさん
2007/11/12(月) 23:54:29OverrideしなくてもpaintComponentは呼ばれるだろうし
0320デフォルトの名無しさん
2007/11/12(月) 23:56:01Graphics#disposeでグラフィックコンテクストを開放しないといけないのは自分でそれを確保したとき。
他人が確保したものを許可無く勝手に開放するのは行儀が悪い行い。
paintComponent()をオーバーライドしたときに開放するとかはどこに書いてあったの?
0321デフォルトの名無しさん
2007/11/13(火) 00:08:10dispose
public abstract void dispose()このグラフィックスコンテキストを破棄して、使用中のシステムリソースがあればそれを解放します。
Graphics オブジェクトを dispose の呼び出し後に使用することはできません。
Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
ガベージコレクタのファイナライズプロセスも同じシステムリソースを破棄しますが、関連するリソースを手動で解放することが推奨されます。
つまり、長期間に渡って完了まで実行されない可能性があるファイナライズプロセスに依存するよりも、
このメソッドを呼び出してリソースを手動で解放してください。
コンポーネントの paint メソッドと update メソッドに引数として提供される Graphics オブジェクトは、
こうしたメソッドが復帰したときにシステムによって自動的に解放されます。
効率性を確保するには、Graphics オブジェクトがコンポーネントまたはほかの Graphics オブジェクトから直接作成された場合だけ、
そのオブジェクトを使って終了したときに dispose を呼び出すようにプログラミングしなければなりません。
-----------------------------------
ということらしいんだが、dispose()不要のような必要なような、ケースバイケースのような
説明に読めたのよ。スマソ。
0322316
2007/11/13(火) 00:12:45その g2 は g の単なるキャストじゃなくて、 g.create() で生成したものだから。
放っておいても害はないけど、解放するべきなんじゃない?
0323デフォルトの名無しさん
2007/11/13(火) 00:15:10>こうしたメソッドが復帰したときにシステムによって自動的に解放されます。
Graphics g = createGraphics();
//--->呼び出し
paintComponent(g);
//<---復帰
g.dispose();
こういうことでしょ。きっちり書いてるじゃん。
0324デフォルトの名無しさん
2007/11/13(火) 00:17:35いやだからさ、おかしいなんていってないよ。
g.dispose()と書かれたソースを今までみなかったのだけど、
開放しといたほうがいいのかななどと思ったの。
0325デフォルトの名無しさん
2007/11/13(火) 00:18:32> Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
0326デフォルトの名無しさん
2007/11/13(火) 00:22:01paintComponentについては暗黙の了解?
説明としては抜けてる。ソース嫁といわれりゃあっそう。
0327デフォルトの名無しさん
2007/11/13(火) 00:34:39paintComponentについてはJComponentのドキュメントを読めば理解できるかと。
0328デフォルトの名無しさん
2007/11/13(火) 00:36:15それ勘違いしてるぞ
ファイナライザとか関係ない
0329デフォルトの名無しさん
2007/11/13(火) 00:42:260330デフォルトの名無しさん
2007/11/13(火) 00:43:160331デフォルトの名無しさん
2007/11/13(火) 01:08:35Nimbusはイメージを使わずに、すべてJava2Dで書かれてるから、解像度に依存しないのがいいよね。
0332デフォルトの名無しさん
2007/11/13(火) 01:13:28動作確認してみた。いいね!
やり方もエレガントだと思う。
アイコンもついてたら完璧かも。
0333デフォルトの名無しさん
2007/11/13(火) 01:25:17うん。
作ってるアプリが終盤で、外観の体裁ととのえてるとこなんだけど、
今無理してL&Fいじくるより、Nimbusが標準になるまで待ったほうがトクだろうなぁ。
L&Fを自分で作ったりカスタマイズしてももすぐに時代遅れになるしね。
Metalも出てきた当時はけっこうクールに見えたし。
L&Fは服きせかえるみたいに使い捨てていきたい。
0334デフォルトの名無しさん
2007/11/13(火) 01:46:39自前でgraphicsを生成した場合必須
ファイナライズの話はFileのIOをcloseしないというのと同じ話
そしてかってに呼び出し側でcloseしたらあかんだろというのと同じ
0335デフォルトの名無しさん
2007/11/13(火) 20:01:22> Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
いっぱい作成できると、なんとなく、うれしいジャン?
とりあえず、「多数の Graphics オブジェクトを作成する可能性があります」の誤訳に一票
0336デフォルトの名無しさん
2007/11/13(火) 20:14:10invokeLaterはinvokeLater間違えてAWTのSystem Queueに送ったことあるorz
MIDPのGraphicsにdisposeがなくてどうやってメモリ空けようか悩んだことがあるorz
Nimbusのマルチバイト化けは直ったらしいがあれ重くないか?スケーラブルなLaF目指してるんだろうけど・・・。
ただでさえ、未だにjavaは重いという迷信が信じられてるからなぁ。
0337デフォルトの名無しさん
2007/11/13(火) 20:18:53ファイル多いとファイルリストの取得とは別の何かで重くなってる印象が・・
0338デフォルトの名無しさん
2007/11/13(火) 22:27:10JavaSE6u2からすごいことになった
どうすればあそこまで悪化できるのかと
0339デフォルトの名無しさん
2007/11/13(火) 22:52:07今はソース見れるんだから自分で調べられるよ
0340デフォルトの名無しさん
2007/11/13(火) 23:51:12jdk6がOpenJDKベースになるのはまだ先。
0341デフォルトの名無しさん
2007/11/14(水) 00:16:14そういう意味じゃないだろ
0342デフォルトの名無しさん
2007/11/14(水) 03:38:43今までひどすぎるとまでは感じなかったんだが、そんなにたくさんのファイルリストを
出すという局面に遭遇してないだけだったりする。
100個くらいリストが出ててもなんともないと思うんだが、いくつくらいだとひどいことになるの?
0343デフォルトの名無しさん
2007/11/14(水) 07:17:29なんか共通したミスでもあるんだろうか?
0344デフォルトの名無しさん
2007/11/14(水) 07:27:120345デフォルトの名無しさん
2007/11/14(水) 09:30:487年後サクサク動くニンバスみて、軽いけどもう古いよなこのLaFとかいってるような気がすれ
0346デフォルトの名無しさん
2007/11/14(水) 09:32:310347デフォルトの名無しさん
2007/11/14(水) 09:47:09そんでこれいつからリリースされるのかな。
0348デフォルトの名無しさん
2007/11/14(水) 12:36:16u2以降は1個の表示でもすごい遅い
u1まではさくさく
まぁ遅いといわれたり直ったりエンバグ繰り返してるのがJFileChooserだから・・・
0349デフォルトの名無しさん
2007/11/14(水) 16:43:440350デフォルトの名無しさん
2007/11/14(水) 17:18:38一時的にどけておくといいかも。
0351デフォルトの名無しさん
2007/11/14(水) 19:29:57■ このスレッドは過去ログ倉庫に格納されています