[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 14:05 / Filesize : 117 KB / Number-of Response : 486
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Java低速GUI Swing 9



1 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 23:13:39 ]
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 8
pc12.2ch.net/test/read.cgi/tech/1227234261/
Java低速GUI Swing 7
pc11.2ch.net/test/read.cgi/tech/1204155623/
Java低速GUI Swing 6
pc11.2ch.net/test/read.cgi/tech/1190807478/
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

185 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 12:58:02 ]
で、おまいら GUI コンポーネント組み立てて行く時は上位の JPanel あたりから組み立てる派か
末端の JButton, JTextField あたりから組み立てる派かどっちよ?

186 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 15:03:13 ]
iTextの質問ってここでよい?

187 名前:デフォルトの名無しさん [2010/02/20(土) 11:12:02 ]
iTextの質問ってここでよい? age

188 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 11:38:01 ]
質問うp

189 名前:デフォルトの名無しさん [2010/02/20(土) 21:18:02 ]
Swing アプリ使ってるとたまに再描画がクソ重くなるんで調べてたら、ときどき
javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).getCapabilities(null).isAccelerated()
これが false になってるのがわかりました。起動直後は true で、サクサク動きます。

これを防ぐ方法は無いでしょうか?

javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).setAccelerationPriority(1.0f)
としてみましたが、やっぱりしばらく使ってると同じ状態になってしまいました。

環境は以下のとおりです。
Java 6u18
Windows XP 32bit
NVIDIA GeForce Go 6600 VRAM 128 MB

190 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:53:51 ]
SwingかJava2Dの使い方間違えてるかVRAMのデータが使えない状態にあるんだろう。
とりあえずjavaのオプションからDirectXとOpenGLのバージョンとソースすべてうp。

191 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 23:46:18 ]
>>190
問題のアプリは主に jEdit (www.jedit.org) です。
V2C でも似たような問題があるようですが、実行中に問題が発生するというわけじゃなさそうです。
v2c.s50.xrea.com/manual/win.html#problem

DirectX のバージョンは 9.0c です。

javaw.exe 起動時に -Dsun.java2d.opengl=true すればこの問題は起こらないんですが、
ときどき他のウィンドウと干渉してゴミが表示されたりします。これを回避するために
できれば OpenGL は使わないで済ませたいのですが、方法が見つからない状態です。

192 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:30:51 ]
ソフト使うだけは板違い。

193 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:16:58 ]
>>189
これ?
bugs.sun.com/bugdatabase/view_bug.do?bug_id=6921654
取り敢えず他のオプションも試してみれば。
www.ea.u-tokai.ac.jp/~sakata/jdk6/docs/ja/technotes/guides/2d/flags.html

OpenGLはOpenGLで問題あるみたいだけど。
bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723523
とか。

何にしてもスレ違いですね。



194 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 00:20:02 ]
>>193
ありがとうございます。

リンクしていただいたバグは VRAM 上のイメージとメインメモリ上のイメージとで
動作が異なると言うことで、速度低下だけが問題になっている >189 の問題とは違うもの
みたいです。

translaccel と ddforcevram がそれっぽいなぁと思って試してみたんですが、やっぱり
しばらく使ってると問題が発生してしまいました。

ソースコードに問題があるのなら修正に挑戦する気はあるのですが、再現させる手段が
さっぱりなのでどこに手を付けていいものかさっぱりな状態です。

他に同じ症状の情報が見当たらないので、やっぱり環境に大きく依存する問題なのかも
しれません。

195 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:33:28 ]
beansbinding\u306eObservableListImpl.fireElementChanged(int)
ってどこからも呼ばれないの?

196 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:35:00 ]
修正
beansbinding の org.jdesktop.observablecollections.ObservableCollections.ObservableListImpl.fireElementChanged(int)

197 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 20:15:56 ]
PCの構成とドライバのバージョンうp

198 名前:デフォルトの名無しさん [2010/02/28(日) 04:50:07 ]
まじでおまえらSwingで何つくってんだ?
ゲームのマップエディタ適当にSwingで適当につくろうとして久々触ったけど
相変わらず糞だなぁ、、いつまともになるんだろこれ。。

199 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 06:00:24 ]
どこが糞なのか何がまともなのか理想を語りたいらしい。

200 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 06:27:00 ]
こんな夜中に語りだすのか?…

201 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 09:15:14 ]
糞なら使うなよ
適正な言語も選べないのか

202 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 21:58:51 ]
マップエディタの実装が糞なだけでswing関係なかったりしてw
cとかで組めるならjni使えばいい話し出し。

203 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 22:43:23 ]
ここでjni出してくるのはどうかと思う



204 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 02:33:21 ]
javaからwin32apiは使えないからな。

205 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 03:32:54 ]
つかえまsが

206 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 04:57:50 ]
Swing に対する唯一の不満は、Win32 用の L&F が
ネイティブのそれと微妙に違っててイラっとすることくらいなんだけど
操作感覚にダイレクトに突き刺さってくるので困る。

SWT の作りは大嫌いだし(いまどきイベントループとか)
全般的な命名も好きになれないし(Shell って名前をアレに使うなよ)
体感速度に差があるとも思えないんだけど、
この部分だけが引っかかってしまう。

自分で作るんなら Swing なんだが
使うんだったら SWT みたいな。

207 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:35:13 ]
そういうヲレクラス作ればいいだけじゃ?

208 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:39:34 ]
J/DirectなんてJ#にすら見捨てられたよな

209 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:01:08 ]
Browser と半透明ウィンドウのためだけに SWT 使うとる。

210 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:19:17 ]
AWTUtilだっけ?あれとJDICでよくね?

211 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:08:39 ]
JWebPaneってどうなったん? WebKitつかってるとかいう

212 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 02:13:19 ]
SwingWTという、SWTをSwing APIでラップしたものがある。
swingwt.sourceforge.net/
2005年頃に使ったときは、微妙な互換性不足が残念だった覚えがあるが、
今ならよくなってるかもしれない。試してみたら?

213 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:08:54 ]
>>206
いまどきイベントループ、って
どんな言語でもイベントループなんじゃないの?



214 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:11:48 ]
たしかにイベントループを表に出していない Swing の方が異端だな。

215 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 09:11:25 ]
どうもイベント廻りの挙動がおかしいと調べてみたら呼び出し先のライブラリで
イベントループしてました、なんて事にさっきまでハマってたところ。
元々イベントループなんざシングルタスク言語やノンプリエンプティブな環境向けの手法だお。
Java のようなマルチスレッド環境では使わないに越したことはない。green thread 時代に
yield() 駆使してた悪夢がよみがえる。

216 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 21:58:42 ]
最近、日曜プログラムでSwing始めました。
仕事ではCOBOLとかC言語が多かったのでJavaはかじった程度の知識しかありません。

ところで、コンポーネントのリスナークラスとか追加するときって、無名クラス使うのが
一般的なんですか?(本とか読むとそれが多いと書いてあったので)

個人的には画面系のプログラムも作ったこともなかったので、よく分からないんですが、
コンポーネントの生成や属性の設定の中に、ロジックが入ってくる様に思えて
なんか違和感を感じるんで、今は無意味でもクラスに名前を書いて内部クラスにしてます。

でも、無名内部クラスにするが一般的なら、それになれとかないとなぁと思い質問しました。

217 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:03:15 ]
画面系を作ったこともないんですよね?
どういう違和感を感じるんですか。

218 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:07:05 ]
>>216
アプリケーションと画面を同一クラスとして作っていると
そんな感じになってしまうかもしれない。


219 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:13:36 ]
>>217
ちゃんと勉強するとなるとかなり大変なんで初心者・初級者用のgui教本は全てそんなもんですよ。
分離しようとすると結局コード量が多くなるんでもしちゃんとguiやるならIDEないと無理でしょうね。

220 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:14:45 ]
>>216ね。

221 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:40:14 ]
>>216
分かりやすい・自然だと思う方を採用したらいいんじゃないでしょうか。
無名クラスの場合は引数以外に定義された環境の情報にアクセスできるメリットと、
切り分けても命名に困る(〜ボタン押したときの処理、以上の名前が思いつかない)
ことが多数なので、私自身は無名クラスで書くことが多いです。

良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。

222 名前:デフォルトの名無しさん [2010/03/07(日) 00:10:01 ]
javaのjTextAreaから日本語文字を[ctrl+c]でコピーして
テラパッドなどのテキストエディタに[ctrl+v]でペーストした時に
日本語が文字化けしてしまいます。防ぐ方法はありますか。
【Java】 1.6.0_17-b04 (Sun Microsystems Inc.)
【OS】 Windows XP 5.1 (x86)

223 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:00:27 ]
pc12.2ch.net/test/read.cgi/tech/1236529563/
文字コード総合スレ part5
pc12.2ch.net/test/read.cgi/tech/1153008301/
こんなエディタ・統合開発環境はいやだ  2種類目



224 名前:222 [2010/03/07(日) 01:10:43 ]
>>223 はは、文字コードスレにいってみます。

225 名前:216 mailto:sage [2010/03/07(日) 03:16:14 ]
>>217、218、219、221 コメント有難うございます。

コンポーネントを作る際、例えば以下の様なものがあるとするじゃないですか。
1.btnS11 = new JButton("Save");
2.btnS11.setFont(new Font("Monospace",Font.BOLD,14));
3.btnS11.addActionListener(new ActionListener {public void actionPerformed(ActionEvent e) {Saveロジック(処理)}})
4.pnl1.add(btnS11);
ってな順になるのかと思いますが、それをコンポーネント分繰り返して
「1.生成2.属性設定3.ロジック4.貼付 1.生成2.属性設定3.ロジック4.貼付…」
みたいな感じで書いてます。
「1、2、4」は画面の見栄えの部分で、「3」はリスナーを追加する行為は画面の見栄え
リスナークラス内は「ロジック」になって、画面定義とロジックが混ざる感覚になる。
「リスナーを有名の他クラスにして、外に飛ばしてやれば、それが除外されるので画面定義だけの部分になってくれる。」
ので、しっくり感が出てます。
(なんか説明、へただなぁ…。)

226 名前:216 mailto:sage [2010/03/07(日) 03:44:09 ]
>>221
221さんが行っているメリットは、無名クラスではなく、内部クラスのメリットだと思います。
一応、外だしの有名クラスにするときも、元のクラスの内部クラスにはして、フィールドとか
までは、利用してます。

結局、無名クラスの場合のメリットとしては
「べつにクラス化しても、結局一ヶ所しかから呼ばれないから意味ない」
「そんなクラスにわざわざ名前つけるのもバカらしい」
「コード見るときに、あっち行ったりこっち行ったりするのも分かりにくい」
のでまとめて書く。ってことかなと思ってます。
(無名クラスの場合のメリットというよりか、外だしにしたクラスのデメリットですが…)

>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
命名規則を何となく決めて置けば、まぁ、なんとかしのげます。
MyBtnS11ActionAdapter 見たいなこのボタンのこのリスナーってなクラス名にしてます。
(よい名前かは置いといて…、ってか、BtnS11って、命名なんやねんってツッコミ入りそうですけど)

227 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 03:53:58 ]
先ずはguiアプリを実際に作ってから半年後にまた考えてみても遅くないでしょうね。

228 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:42:33 ]
>>216
ビジネスロジックは別クラスに実装して、
無名リスナーはUIとビジネスロジックのアダプタとして実装している。
こんな感じ。

JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
  getSomeLogic().doLogic();
});

getHogeLogic()とdoLogic()の中身は想像で補ってくれ。

ビジネスロジックは、UIと粗結合であるべき、フレームワーク非依存であるべき、
というのが信条なので、SwingのAPIが混ざったクラスにビジネスロジックを書きたくない。
イベント処理にXXXListenerが必要というのはSwingの都合でしかないので、
そういう事情はSwingのUIクラスの中だけで隠蔽したい。

以上のような理由から、上記の作り方をしている。

次の課題として、UIオブジェクトとビジネスロジックオブジェクトのバインディングについて
考える必要があるけど、
そこは、ハードコーディングするなり、上位のオブジェクトからsetしてもらうなり、
DIコンテナでインジェクションするなり、好きな方法をどうぞ。
お薦めはDIコンテナだが、不慣れなら他の方法でもいい。

229 名前:228 mailto:sage [2010/03/07(日) 08:44:34 ]
ぐあぁコード間違えた。こうだ。
JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
 public void actionPerformed(ActionEvent e){
  getSomeLogic().doLogic();
 }
});

230 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:49:11 ]
>無名クラスではなく、内部クラスのメリットだと思います。
書いててそう思ったんですが、まあ多分通じると思ってそのままに・・

コンポーネント名+イベント名 な命名しか思いつかない場合、
自分だったら無名内部クラスで片付けてますね。
でもまあその辺りは個人の感覚次第で
何が正しいってわけでもないはず。
(特この件にかんしては明確にどっちが優劣ってのはない。)

「そういう書き方もある」ことを抑えてて、
そういうコード見て面食らう事がないのであれば
別にどっちで書いてもいいと思うんですよ。
vi も Emacs も優れたエディタなんです。

231 名前:216 mailto:sage [2010/03/07(日) 18:05:59 ]
あぁぁぁぁ。(なんか自分に腹立ってます)

>>230
自分が無知なので広く意見を伺いたく質問したつもりなのに
変な噛みつき方してすみませんでした。

コメント有難うございました。

232 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 20:35:15 ]
>>226
>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
は、名前が思いつくようなクラスは再利用性があるクラスだから、
「名前が思いつくかどうか」自体が、内部クラスにするかどうかの
そこそこ良い基準になるということを言ったんだと思った。

ちょっと思っただけ。

233 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 21:44:27 ]
やってれば分かるが普通は>>228にいきつく。今のswingはここらで止まってる。



234 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:32:25 ]
>>233
>>228でもいいんだけど、コンポーネントに直接ActionListenerをaddするんじゃなくて、
Action作って使いまわしたほうがマシだと思う。
ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。

235 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:48:19 ]
サーバサイドしかやったことないと思しき某外資系ITゼネコンのアフォSEが
JAR ファイルの中見て無名内部クラス使いすぎ云々 (品質悪い) と因縁
付けて来た事があったなー。

236 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:52:36 ]
サーバーサイドやっているとね

237 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:04:28 ]
そんなゼネコンと仕事してる時点で質が低いからどうでもいいな。
金が欲しいなら言う事聞くしかないだろ?

238 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:10:36 ]
自分ところが下請けだから下請け前提で読んじゃったんだね君。

239 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:57:47 ]
> ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。
さすがにそのくらいはやってんじゃなかろうか。
同じことを何度も書くのはそもそもアレだし。

240 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:05:42 ]
ダイアログ表示中に任意のキー押下で任意のアクションを呼び出す方法はあるでしょうか?

241 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:43:51 ]
もしかしてモーダルなダイアログの話?

242 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:46:22 ]
>>241
そうです。
エラーが発生してダイアログを出すときに、スタック情報を適当なpublic static にコピーしておいて、
ダイアログ表示中に隠し機能としてF5を押すと、
コピーしておいたスタック情報をクリップボードに張り付けるということがしたいです。

客から問い合わせがあったときに、簡単に対応したいので。

243 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:11:22 ]
InputMapとActionMap使ったら簡単なんじゃない?
JDialog dialog = new JDialog();
dialog.setModal(true);
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JPanel pn = (JPanel)dialog.getContentPane();

pn.getActionMap().put("hoge", new AbstractAction() {

@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e);
}
});
pn.getInputMap().put(KeyStroke.getKeyStroke("F5"), "hoge");

dialog.setVisible(true);



244 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:35:53 ]
>>243
ありがとうございます。

JOptionPane.getRootFrame()から何とかしてアクションマップを登録して、
JOptionPane.showMessageDialog(…);することはできないでしょうか?

245 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:39:58 ]
JOptionPane の API リファレンスにユーティリティメソッド使わないで
JDialog 参照する方法が載ってるだろう。

246 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:44:20 ]
>>245
JOptionPane.getRootFrame()から何とかして、って書いてあるから答えがかみ合ってないよ。
そんなことは知ってるけどもっと簡単な方法がないかってことだろ。

XXして
JOptionPane.getRootFrame()
で済む方法ってことでしょう。

要はその方法はないってのが正しい返しかな。

247 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:55:30 ]
超絶役に立たないレスだな。
だから JDialog 参照しろという話をしてるわけだが。

248 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 09:06:33 ]
強引なやり方としては
Toolkitを使って全てのイベントを監視する方法もある。
どのコンポーネントがフォーカスを持っていようと
F5が押されたらスタックトレースをダンプするようにもできると思う。


249 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:01:19 ]
Swingの画面を印刷するにはどうすればよいでしょうか?
ちなみに、スクロールで見えてない部分も含め印刷させることが出来るでしょうか?

WORDの差し込み印刷をSwingでやることになりまして…

250 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:18:00 ]
取ってもアフォな案件だなw
vbaをjavaから呼ぶcom作る輪

251 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 14:29:22 ]
俺vba苦手だから Apache POI に頼るー。
Apache POI だけはいつも俺の心のアニキ。

252 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 16:34:54 ]
XML で保存出来るのに今時 POI とかないわ。

253 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:17:17 ]
JEditorPane#getPrintableでRTF文書の印刷とか考えてるならやめとけー。
まずは簡単なWORD文書をディスプレイに描画させてみて、満足いく結果が得られるのか早期に検討すべし。

たぶん Aspose.Words for Java みたいな有料ライブラリが必要になるだろうよ。

>252
XMLなんか差し込み印刷したってしょうがないだろ



254 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:25:41 ]
>>253
Word XML (WordML) 形式の話をしてるんだが、まだ Office が XML で連携できてるって
気付いてない奴って多いんだよな。おまえみたいな。

255 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:43:50 ]
DB 舐めて Word ファイル作るだけにバカみたいな金払わされてる客がいたんで
(レイアウト変更等別料金)、検索結果の XML から XSL で Word ファイル作る
ツール作って XSL の書き方だけ教えてあげたらもの凄く喜ばれた。
んで別のデカい仕事貰った。

256 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:53:46 ]
>254
「Word XML (WordML) 形式の話をしてる」

「WORDの差し込み印刷をSwingでやる」の話じゃなかったんならオレが謝る。

257 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:54:12 ]
もしプロなら人の仕事を奪うのは良くないなと気づかないといけない

258 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:57:02 ]
>>256
Swing から Word XML 出力 & Desktop#print() が思い付かない時点でオhル

259 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:08:24 ]
>258

重ね重ね申し訳ない。
「Swingの画面を印刷するにはどうすればよい」の話じゃなかったんならオレが謝る。
「スクロールで見えてない部分も含め印刷させる」の話じゃなかったんならオレが謝る。

「Word XML 出力 & Desktop#print()」がSwingなのかスレ違いなのかはオレもよくしらん。

260 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:12:01 ]
バカは黙ってろよ

261 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:18:44 ]
逝ってよし

262 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:19:39 ]
ところで >249 氏はもしかするとWindowsユーザーなのだろうか

263 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:32:57 ]
Wordは最初っからどうでもいいんですが、
結局Swingの画面をjavaのコードだけで印刷って出来ないんですか?

デスクトップの機能を使ってなんとかできないですかね…

Wordの差し込み印刷はバージョンによって動作が違うし、Linuxじゃ動かないのでパスしたいんです。



264 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:50:51 ]
与えられた紙の隅から隅まで自分でお絵かきしたいなら「Java 2D API プログラマーズガイド」の7章を読む

既成コンポーネントやコンテナのprint()がどこまでまじめに印刷に対応してるかはレッツトライ

スクリーンキャプチャがしたいならjava.awt.Robotだ。

265 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:13:33 ]
awtでボタンを押すとFileDialogをsetVisible(true);するメソッドを呼び出すだけの
アプレットを作りました。

これをブラウザ(IE6)でHTMLから呼び出して、
ボタンを押してファイルダイアログを呼び出します。

この開いているファイルダイアログを放置して
呼び出し元のウィンドウをクリックすると
クリックするたびにコンソールに例外がモリモリ出ます。

↓こんなの
Exception occurred during event dispatching:

java.lang.NullPointerException: null pData
at sun.awt.windows.WComponentPeer._requestFocus(Native Method)
at sun.awt.windows.WComponentPeer.requestFocus(Unknown Source)
at java.awt.Component.requestFocusHelper(Unknown Source)

            以下略

これを出さないようにしたいのだけれど調べてもさっぱりわかりませぬ。
これってJavaのバグなのかな?
それとも何かしなきゃいけないことがあるのかな!
助けてエスパー!

266 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:19:15 ]
AWT のスッピン FileDialog なんて久しく使ってないから忘れた。

267 名前:265 mailto:sage [2010/03/11(木) 22:24:17 ]
ですよねー
ふるーいアプレットのシステムを
ポーティングするお仕事でこの問題が見つかったのですが
事象の起こし方もすごい簡単なのに
調べても調べてもちっとも出てこないので
泣きそうです

HTMLから呼び出すとモリモリなんだけど
アプレットビューワーから呼び出すと起きないのですよ

268 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:35:44 ]
"java.lang.…pData" でまんまググったら出たがこれじゃねーのか。
bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829326

269 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:38:29 ]
中身読んだら Java 7 でリサイズした時の話だった。失礼。

270 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 09:19:25 ]
>>265 を読んだ限りでは、どうもJRE自体のバグっぽいね。
あるいはブラウザとの相性が悪かったか。
実害がないなら放置していいんじゃないかな。


271 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:25:24 ]
Swing→RMIの通信をSwing→httpに変更しようと思っています。
RMIはもう使用したくないとのこどで、大幅改修はせずに移行したいとのことです。
まぁ、その辺は言いたいことはあるんですが、この不景気なもので来るもの拒まずです。工数が増える分には。

そこでまずRMIのインターフェースはあまり変えないということで、
メソッド呼び出しのリモートプロシージャの考え方を踏襲することに。

Swingにhttpクライアントを入れて"multipart/form-data"でデータを送信します。
データはRMIで使用した全ての引数でシリアライズした中身をファイルアップロードで送ります。
ポップ引数は2つで、リモートクラス名とメソッド名。シリアライズを解凍して(引数の配列)、
リモート側で(httpサーバ)メソッドインボークする感じです。

レスポンスは"text/plain"で、RMIの戻り値のシリアライズです。

このやり方はいかがなものでしょうか?
改善案や便利な方法があればお願いします。
落とし穴などもあれば。
Swing→httpは外せないってところでお願いしますm(__)m

272 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:32:33 ]
RMI-HTTP Tunneling というものがあってだな。
使ったことないけど。

273 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:04:30 ]
>>272
なんすかそれ



274 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:30:26 ]
中身はrmiのままなんだから、http通しても大差ないのにね。
まあ金貰えるなら言う通りに実装してやればおk。

275 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:42:23 ]
単に HTTP にすりゃ良いってだけなら (ファイアウォールでも通すのか?)
SOAP に置き換えりゃ良いんじゃねぇの。

276 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:43:15 ]
>>271
RMIとHTTPってレイヤが違うような…?


277 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:02:48 ]
RMIがいやだからHTTPにしたいって言うのが理解できないんだがまあそんなことはどうでもいい。
Swing関係なくね?

278 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:04:22 ]
RMI か HTTP かで心が Swing してんだろ。

279 名前:265 mailto:sage [2010/03/13(土) 01:43:58 ]
>>268-270
気にかけていただいてありがとうございます

例外の内容で調べて同じのは出てこなかったけど
「Defaultmodel.なdialogが云々でバグです!」
といったような内容のがBugDataBaseでボロボロ出てくるので
指定しなくてもモーダルだと主張しているFileDialogの
フォーカスの処理とブラウザから呼び出した際の相性に問題があるんだと思います。
(自分でmodalを指定するDialogだと同じ操作をしてもこの問題は起きません)

お客さんには事例を寄せ集めて
「我々のせいじゃないし、どうにもできないので勘弁していただきたい!」
と主張してみることにします。
ありがとうございました。

280 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:32:08 ]
他所に仕事取られる訳だな。物はいい用と思うけどね。せっかくのビジネスチャンスを(ry

281 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 10:33:40 ]
>>279は月曜日にクソッタレのフニャチンどもにこう言われるはずさ

そんな欠陥のある言語を選択したのはお前の会社のミスだろ?
それにJavaはオープンソースなんだろ?
中追ってお前のところで直せよ

そしたら>>279はExceptionを握りつぶしてこう言ってやるのさ
問題ありませんってね
HAHAHA

282 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 10:39:45 ]
おまえは書き込む前に一息置いて読み直す癖を付けろ。

283 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:08:29 ]
バグ混入させるぐらいなら、プログラマ辞めればいいのに。
明らかに向いてないというか、能力足りてないだろう。



284 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:40:43 ]
翻訳:極論振りかざすオレカコイイ!

285 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:22:24 ]
バグが混入しないと思ってる時点であほだな






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

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

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