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


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

Java標準低速GUI 6 AWT/Swing



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

239 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 00:04:29 ]
偉そうな>>238がズバリの回答を待つとしよう
重要なヒントや答えまででてるのにこれ以上何を言うのか楽しみだ

240 名前:デフォルトの名無しさん [2007/11/02(金) 00:19:49 ]
ボタンはJButtonにしたら普通の大きさになったんですが
肝心のラベルがボタンを押しても出てきません

ただそれがやりたいだけなのに何故なんでしょうか?
正直どなたか全文を書いていただけないでしょうか?


241 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:33:33 ]
ヒント200%だしてるのにそれを無視して全部おしえるなんてこの板ではあんまりありえん

答えだけがほしければ宿題スレへどうぞ

242 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:52:16 ]
>正直どなたか全文を書いていただけないでしょうか?

つ 練炭

243 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:59:48 ]
>>240
勘違いすんな。ここはくだすれでもないし初心者スレでもない。

244 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 03:04:48 ]
public class Practice extends JFrame {
 JPanel labelsPanel;
 public Practice (){
  JButton appendLabelButton = new JButton ("ラベルを追加");
  appendLabelButton.addActionListener (new ActionListener(){
   public void actionPerformed(ActionEvent event){appendLabel();}});
  JPanel buttonPanel = new JPanel();
  buttonPanel.setLayout(new FlowLayout());
  buttonPanel.add(appendLabelButton);
  labelsPanel = new JPanel();
  labelsPanel.setLayout(new FlowLayout());
  labelsPanel.setPreferredSize(new Dimension(400, 400));
  add(buttonPanel, BorderLayout.NORTH);
  add(labelsPanel, BorderLayout.CENTER);
 }
 void appendLabel(){
  JLabel helloLabel = new JLabel ("Hello");
  helloLabel.setBorder(BorderFactory.createLineBorder(Color.white, 1));
  helloLabel.setHorizontalAlignment(JLabel.CENTER);
  helloLabel.setPreferredSize(new Dimension(80,30));
  labelsPanel.add(helloLabel);
  labelsPanel.revalidate();
 }
 public static void main (String[]args){
  SwingUtilities.invokeLater(new Runnable(){
   public void run(){
    Practice frame = new Practice ();
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    frame.pack();frame.setVisible(true);
   }
  });
 }}

245 名前:244 mailto:sage [2007/11/02(金) 03:06:18 ]
>>228
こんな感じでいいのか?
今度から宿題は宿題スレいってくれな?

246 名前:デフォルトの名無しさん [2007/11/02(金) 04:17:09 ]
>>24
超マジレスに笑ったw
でもこれがさらっと書けない職業プログラマが多いんだよな・・・

247 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:21:14 ]
自演乙



248 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:37:07 ]
口だけの奴が多い中 >>244 はまともだな

249 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:53:50 ]
というか研究のGUIってなんだw
何を研究したらあんなソースになるのか知りたいw

250 名前:デフォルトの名無しさん [2007/11/02(金) 10:19:13 ]
>>228
実行して出てきたGUIにワロタ。センターに足す動けばいい的例。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame {
public Test() {
JButton button = new JButton("Add Label");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
add(new JLabel("Hello, world!"));
getContentPane().validate();
}
});
add(button, BorderLayout.SOUTH);
setSize(100, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test();
}
});
}
}


251 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 11:34:19 ]
>>246
インナークラスとかAWTイベントディスパッチスレッドとかしらないで
GUI扱おうとしてぼろぼろになる例はよくみるね
特にスレッド周りがぼろぼろくさい

基本を勉強せずOJTという名の下に無理やり投入される場合そうなりやすい
デバッグ時には動いていてもたまに動かないとか厄介なバグいれこむのがうまい連中がね

252 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:38:14 ]
>>200
証明書の有効期限切れてるよ

253 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:58:53 ]
>>252
200で言及済

次回以降、安定版のリリースのときには署名タイムスタンプを使うことにするよ。


254 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 13:41:02 ]
windowsのJFileChooserとかJOptionPaneでキャンセルが"取消し"って表記されるのがウザい…
windows標準みたいに"キャンセル"って書くにはどうすればいいだろ…

255 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 13:44:43 ]
よくそんなん気づいたな

256 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:20:13 ]
UIManager.put("FileChooser.cancelButtonText", "キャンセル");
UIManager.put("OptionPane.cancelButtonText", "キャンセル");

257 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:25:19 ]
すごい・・・
いつも思うのですが、そのようなフィールドやプロパティの名前はどうやって調べているのでしょう。
ソースを見るしかないのでしょうか?



258 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:38:37 ]
このへんとか
ttp://homepage1.nifty.com/algafield/UIDF.html

259 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:59:07 ]
こういうの探してました!
ありがとうございます。

260 名前:254 mailto:sage [2007/11/04(日) 15:35:25 ]
>>256
ありがとう。
これで見た目ほとんどwindowsっぽくなった。
FileChooserの複数選択をwindowsみたいにドラッグでびやーって範囲広げてその中全選択とかやってみたいけど、
さすがにこれはキツいな。


261 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 16:10:38 ]
単純なファイル選択ダイアログならAWTのほうつかうといいよ
機能がほとんどないけど、それで足りるのならね

262 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 16:26:51 ]
ファイルダイアログだけど、WindowsのAWTはなんか見た目がしょぼくない?
Macは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ってあるから、そのうち改善されると思うけど。

263 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 22:26:28 ]
1.
URL 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がうまくいく)のですがその理由。

答えづらい質問ですみません。もしよろしければ教えてください。

264 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 23:44:44 ]
相対やめたほうがいいでよ
どうせリソースは決まった場所におくでそ

265 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 23:51:10 ]
確かにそうですよね。
なんだかそこらへん結構複雑そうですし・・
分りました。以後リソース読み込みは絶対指定にします。

ありがとうございました!!

266 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 01:13:35 ]
今更だがV2Cすげー

267 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 12:10:05 ]
JOptionPaneに、「次からこのメッセージを表示しない」とかチェックボックス付けたいんですけど、
何かいい方法ないですかねぇ



268 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 12:14:15 ]
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JLabel("本文"));
panel.add(new JCheckBox("次からこのメッセージを表示しない"), BorderLayout.SOUTH);
JOptionPane.showMessageDialog(parent, panel);

269 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 12:35:18 ]
>>268
おー、早いレスありがと〜。

270 名前:デフォルトの名無しさん [2007/11/09(金) 23:36:58 ]

いまからSwingアプリケーションつくるからなんかお題くれ
条件はネット接続しないこと
 
開発環境はJDK6u3、NetBeans6.0
 

271 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:44:52 ]
>>270
Jazzの自動作曲。高品質の楽譜の表示と印刷。

272 名前:270 mailto:sage [2007/11/09(金) 23:45:27 ]
>>271
勘弁してくれ

273 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:50:42 ]
swing jazzじゃなくてもいいんだが…

swingはあくまでもguiのフレームワークに過ぎないから、
swingでアプリケーションを作るって言っても範囲が広すぎるんじゃないかな?
guiでアプリ作るけど何か無いかなって言うようなものだから、もう少し幅を狭めないと。

274 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:51:07 ]
>>270
ドロー系お絵書きソフト、SVGでの読み書き可能なものを、OSSで。


275 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:51:49 ]
>>271
少しジャンルは違うがヤマハの「初音みく」とか言うの良さそうじゃないか?

276 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:51:56 ]
じゃあ懐かしのブラウザ HotJava を今の技術で作って

277 名前:270 mailto:sage [2007/11/09(金) 23:54:59 ]
SVGとか仕様しらねー
HotJavaとか初めて聞いたし

Java暦1年半ですがなにか?



278 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:00:39 ]
クリップボードアプリケーションとか。
・・・Swing関係ないかw

279 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:01:59 ]
>>276
JEditorPaneで原型はすぐに作れるね。

>>277
ttp://java.sun.com/products/archive/hotjava/index.html

>>275
もちろん既にみくみくしてるぜ。
付属のVSTiプラグインをJavaから使おうとかもしているけど中々時間が取れない。

280 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:02:19 ]
>>274
Javaじゃないが、それの本命はinkspaceだろうな。

281 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:04:38 ]
swingの勉強がてらに作るならお絵描きアプリくらいが適当なのかも

282 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:09:38 ]
ローカルファイル閲覧専用とかはアレだし、ブラウザはネット接続って点で270の要求を満たしてないかも。
何かオンリーワンな機能をつけたドローイングかペインティングアプリケーションとかいいんじゃないか?

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
今はソース見れるんだから自分で調べられるよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<252KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef